web-dev-qa-db-ja.com

GREおよびOSPF / BGPを使用したLinux / Vyattaフェイルオーバー

シナリオでのルーティングフェイルオーバーに奇妙な問題があります:ospfまたはbgpを介してこのフェイルオーバーを実行しようとしていますが、どちらもトンネルで同じ奇妙な動作が発生します:192.7.0.0 TUNの場合、R1へのデフォルトルートを提供します-メインサイト(すべてのトラフィックが必要です) )。

        172.16.0.1(10.3.3.1)            10.3.3.0/30                      172.16.0.2(10.3.3.2)
        +-------------------------------->TUN0<--------------------------------------------+
        |                                                                                  |
        |                 +--------+                                                       |
        |                 |        |EXTIP1                                                 |
        |    +------------+  VPN1  +--------->IPSEC<------------+                          |
        |    |            |        |                            |                          |
        |    v            +--------+                            |                          |
       ++------+                                                |                          |
       |       |                                                |--------+        +--------++
LAN +--->|  R1   |                                                +        |            |         |
192.0.0.0/24       |                                          EXTIP3|  VPN7  +------->|  R7     <--+LAN
       ++------+                                                +        |        |         |192.7.0.0/24
        |    ^                                                  |--------+        +--------++
        |    |                                                  |                          |
        |    |                                                  |                          |
        |    |                                                  |                          |
        |    |            +--------+                            |                          |
        |    |            |        |                            |                          |
        |    +------------+ VPN2   |EXTIP2                      |                          |
        |                 |        +------------->IPSEC<--------+                          |
        |                 +--------+                                                       |
        |                                                                                  |
        |                                                                                  |
        |                                     PREFFERED PATCH                              |
        +------------------------------------>TUN1<----------------------------------------+
        172.16.0.3(10.3.3.5)                10.3.3.4/30                  172.16.0.4(10.3.3.6)

最初の起動では、すべてが正常に機能しています。メインリンクTUN1がダウンすると、フェイルオーバーが発生し、数秒(ospf)または数分(bgp)後にリンクが収束し、TUN0を介したネットワークフローは正常になります。しかし、TUN1が戻ってくると、フローが混乱し、ルーターは構成に応じてパスを変更します(TUN1は常に提供されるパスです)が、ネットワークフローは進行しません。小さなパケットで192.7.0.0 <-> 192.0.0.0にpingを実行できますが、たとえばVNC、HTTP、またはその他のアプリは機能しなくなります。 TUN1が戻ってきたときに発見しました。コマンドを使用して、トンネルのリンクを手動でリセットします。

Sudo ip link set tun0 down
Sudo ip link set tun1 down
Sudo ip link set tun1 up
few seconds pause
Sudo ip link set tun0 up

すべてが正常に戻ったので、私の質問は次のとおりです。

これはフェイルオーバーの実装について間違った考えですか?

これはバグですか?

これは機能ですか?

答えてくれてありがとう

R1のVyatta6.4 8.04 R7VPNのVyatta6.4 5.31 [1 | 2 | 7]

更新:192.0.0.0からTUN0でmrouteを実行しました

mturoute.exe 192.7.0.162
* ICMP Fragmentation is not permitted. *
* Speed optimization is enabled. *
* Maximum payload is 10000 bytes. *
- ICMP payload of 1472 bytes is too big.
+ ICMP payload of 92 bytes succeeded.
+ ICMP payload of 782 bytes succeeded.
+ ICMP payload of 1127 bytes succeeded.
+ ICMP payload of 1299 bytes succeeded.
- ICMP payload of 1385 bytes is too big.
+ ICMP payload of 1342 bytes succeeded.
- ICMP payload of 1363 bytes is too big.
+ ICMP payload of 1352 bytes succeeded.
+ ICMP payload of 1357 bytes succeeded.
- ICMP payload of 1360 bytes is too big.
+ ICMP payload of 1358 bytes succeeded.
- ICMP payload of 1359 bytes is too big.
Path MTU: 1386 bytes.

フェイルオーバー後TUN0-> TUN1も192.0.0.0から

mturoute.exe 192.7.0.162
* ICMP Fragmentation is not permitted. *
* Speed optimization is enabled. *
* Maximum payload is 10000 bytes. *
- ICMP payload of 1472 bytes is too big.
+ ICMP payload of 92 bytes succeeded.
...- ICMP payload of 782 bytes failed. (IP_REQ_TIMED_OUT)
+ ICMP payload of 437 bytes succeeded.
.- ICMP payload of 609 bytes failed. (IP_REQ_TIMED_OUT)
.- ICMP payload of 523 bytes failed. (IP_REQ_TIMED_OUT)
+ ICMP payload of 480 bytes succeeded.
.- ICMP payload of 501 bytes failed. (IP_REQ_TIMED_OUT)
+ ICMP payload of 490 bytes succeeded.
+ ICMP payload of 495 bytes succeeded.
.- ICMP payload of 498 bytes failed. (IP_REQ_TIMED_OUT)
+ ICMP payload of 496 bytes succeeded.
.- ICMP payload of 497 bytes failed. (IP_REQ_TIMED_OUT)
Path MTU: 524 bytes.

理由がわかりません。

update#2

EXTIP1、EXTIP2、EXTIP3は40MビットF/OですEXTIP2とEXTIP3は同じISPからのものです

1
orzeh

これはpmtudに関連しているようで、R7(net.ipv4.ip_no_pmtu_disc = 1)でpmtudを無効にした後は、問題なく動作しているようです。これは、トンネルが崩壊した後のアバットです http://utcc.utoronto.ca/~cks/space/blog/linux/IPSecPacketDropProblemII

便利なipコマンド:

ip route show table cache
0
orzeh