前回のメモ "EIGRPのDiffusing Computation"では、Link Downを発生させてDiffusing ComputationによるDUAL処理を実行させた。
今回は宛先へのLinkが複数ある場合(迂回経路がある場合)にサクセサを通る経路で障害が発生した時のDUAL処理のメモ。
フィージブルサクセサが存在する場合のDUAL処理
宛先へのLinkにフィージブルサクセサが存在する場合。
障害を検知してすぐにDUALによるメトリック再計算が実行され、障害を起こした運用系経路(サクセサの方)のDistance値が最大値である4294967295まで上げられて、もう一方の待機系経路(フィージブルサクセサの方)のDistance値が相対的に低くなる。
待機系経路のDistance値はそのままで、低く変えられるのではない。
そして、フィージブルサクセサだった方がサクセサに昇格し、EIGRPトポロジテーブルの更新が行われ、トラヒックが元待機系を向く。
この間、僅か2秒程度。
このDUAL処理の様子をdebugコマンドで出力させてみた。
MI-CAT4503-S5-SW-01:Catalyst4503
MI-CAT4503-S5-SW-02:Catalyst4503
MI-CAT3750-ME-SW-01:Catalyst3750Metro
MI-CAT3750-ME-SW-01〜MI-CAT4503-S5-SW-02:EIGRP AS1
今回はMI-CAT3750-ME-SW-01のインターフェースFa1/0/2にてEIGRPのPassive Interface設定を投入し、MI-CAT4503-S5-SW-01とMI-CAT3750-ME-SW-01のEIGRPネイバー関係を解消させた際のDUAL処理をdebugコマンドで出力させてみた。
まずはEIGRP Helloパケット
1.まだMI-CAT3750-ME-SW-01側にてPassive Interfaceを投入していない状態。
MI-CAT4503-S5-SW-01のルーティングテーブルを確認。宛先169.10.10.24/30にはGi3/1を通っていく事が解る。
MI-CAT4503-S5-SW-01#show ip route : : 169.200.0.0/32 is subnetted, 1 subnets D 169.200.200.1 [90/204800] via 169.10.10.2, 00:07:12, GigabitEthernet3/1 169.10.0.0/30 is subnetted, 4 subnets D 169.10.10.8 [90/76800] via 169.10.10.2, 00:07:15, GigabitEthernet3/1 C 169.10.10.0 is directly connected, GigabitEthernet3/1 D 169.10.10.24 [90/204800] via 169.10.10.2, 00:07:12, GigabitEthernet3/1 C 169.10.10.16 is directly connected, GigabitEthernet3/2 169.100.0.0/32 is subnetted, 3 subnets D 169.100.10.6 [90/281600] via 169.10.10.18, 00:07:39, GigabitEthernet3/2 D 169.100.10.3 [90/179200] via 169.10.10.2, 00:07:15, GigabitEthernet3/1 C 169.100.10.1 is directly connected, Loopback0 MI-CAT4503-S5-SW-01
2.MI-CAT4503-S5-SW-01にてEIGRPトポロジテーブルの確認。
サクセサは上行「via 169.10.10.2 (204800/179200), GigabitEthernet3/1」、
フィージブルサクセサは下行「via 169.10.10.18 (281600/153600), GigabitEthernet3/2」
となっている。
MI-CAT4503-S5-SW-01#show ip eigrp topology all-links EIGRP-IPv4 Topology Table for AS(1)/ID(169.100.10.1) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status : P 169.10.10.24/30, 1 successors, FD is 204800, serno 11 via 169.10.10.2 (204800/179200), GigabitEthernet3/1 via 169.10.10.18 (281600/153600), GigabitEthernet3/2 : CAT4503-1#
3.debug eigrp fsmコマンドでDUAL処理の経緯を出力。
併せてdebug eigrp packetsコマンドでHelloやUpdateが送受信される様子を出力。
以下は、EIGRPネイバとーの間で送受信されるHelloパケットの様子。
デフォルトの5秒間隔で、2つのネイバー(Gi3/1の対向先はMI-CAT3750-ME-SW-01、Gi3/2の対向先はCAT3750ME-2)との間でHelloが行き来している事が分かる。
MI-CAT4503-S5-SW-01#debug eigrp packet (UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY) EIGRP Packet debugging is on MI-CAT4503-S5-SW-01# MI-CAT4503-S5-SW-01#debug eigrp fsm EIGRP Finite State Machine debugging is on MI-CAT4503-S5-SW-01# May 12 06:45:51.515: EIGRP: Sending HELLO on GigabitEthernet3/1 May 12 06:45:51.515: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 May 12 06:45:51.883: EIGRP: Sending HELLO on GigabitEthernet3/2 May 12 06:45:51.883: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 May 12 06:45:53.075: EIGRP: Received HELLO on GigabitEthernet3/1 nbr 169.10.10.2 May 12 06:45:53.075: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 May 12 06:45:54.783: EIGRP: Received HELLO on GigabitEthernet3/2 nbr 169.10.10.18 May 12 06:45:54.783: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 MI-CAT4503-S5-SW-01#
4.ここで、MI-CAT3750-ME-SW-01にてEIGRPのpassive-interface Fa1/0/2コマンドを投入。
障害を検知すると、経路情報の再計算の為にDUAL処理が実行される。
DUAL処理方法としてはDiffusing ComputationとLocal Computationの2通りがある。
169.10.10.24/30への代替経路をQueryでネイバーに問い合わせしない、且つActiveステータスの付与が無いので、今回のDUAL処理方法はLocal Computationの方である。
今回はフィージブルサクセサがある為、再計算の結果として最小のDistance値を持つ経路(待機系経路)がサクセサとなる。
Distance値がFDより小さい場合はFDの値がDistance値と同じになるが、Distance値がFD値以上の場合はFD値はそのままとなる。
そして、Local Computationである為に経路情報がActiveにならない。
Local Computationの流れ
EIGRPの経路消失検知をトリガーとした、Local ComputationによるDUAL処理の流れは以下のとおり。
・ネイバーからQUERYを受信。代替の経路が無いか問い合わせを受ける。 (下記[1])
・上記[1]でEIGRPトポロジの変化を検知すると即座に、経路情報169.10.10.24/30のDistance値を最大値である4294967295にセット。 (下記[2])
・宛先169.10.10.24/30に対するフィージブルサクセサが無いか確認。 (下記[3])
・上記[3]の結果、169.10.10.2 (元サクセサ)を介して169.10.10.24/30に到達出来ない事を示す。 (下記[4])
・上記[3]の結果、169.10.10.18(元フィージブルサクセサ)を解して169.10.10.24/30に到達出来る事を示す。 (下記[5])
・受信したQUERY (上記[2]) に対し、新しいサクセサがある旨をREPLYで返答。(下記[6])
・ルーティングテーブルに新しいサクセサ(169.10.10.18)を載せる。(下記[7])
・EIGRPネイバーに対しUPDATEを送信。経路情報169.10.10.24/30のDistance値が変更になった旨の通知。 (下記[8])
・EIGRPネイバーに対しUPDATEを送信。トポロジデータベース上にて169.10.10.24/30へのインターフェースが変更になった旨の通知。 (下記[9])
Local Computationの場合、再計算の結果、Distance値が変更になった際にUPDATEが送信される。
・(時刻が06:45:58.587の行) 古いサクセサの情報を削除。 (下記[10])
[9]-[10]の間は別の経路情報に対するDiffusing Computationの出力。
MI-CAT3750-ME-SW-01# May 12 06:45:57.523: EIGRP: Received HELLO on GigabitEthernet3/1 nbr 169.10.10.2 May 12 06:45:57.523: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 May 12 06:45:58.551: EIGRP: Received QUERY on GigabitEthernet3/1 nbr 169.10.10.2 [1] May 12 06:45:58.551: AS 1, Flags 0x0:(NULL), Seq 7/0 interfaceQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 May 12 06:45:58.551: EIGRP: Enqueueing ACK on GigabitEthernet3/1 nbr 169.10.10.2 tid 0 May 12 06:45:58.551: Ack seq 7 iidbQ un/rely 0/0 peerQ un/rely 1/0 May 12 06:45:58.551: Handling TLV: 242 43 for 0 May 12 06:45:58.551: DUAL: AS(1) rcvquery: 169.10.10.24/30 via 169.10.10.2 metric 4294967295/4294967295, RD is 204800 for tid 0 [2] May 12 06:45:58.551: EIGRP-IPv4(1): Find FS for dest 169.10.10.24/30. FD is 204800, RD is 204800 on tid 0 [3] May 12 06:45:58.551: EIGRP-IPv4(1): 169.10.10.2 metric 4294967295/4294967295 [5] May 12 06:45:58.551: EIGRP-IPv4(1): 169.10.10.18 metric 281600/153600 found Dmin is 281600 [5] May 12 06:45:58.555: DUAL: AS(1) Send REPLY(r1/n1) about 169.10.10.24/30 to 169.10.10.2 for tid [6] May 12 06:45:58.555: DUAL: AS(1) RT installed 169.10.10.24/30 via 169.10.10.18 [7] May 12 06:45:58.555: DUAL: AS(1) Send update about 169.10.10.24/30. Reason: metric chg on tid 0< [8] May 12 06:45:58.555: DUAL: AS(1) Send update about 169.10.10.24/30. Reason: new if on tid 0 route: 169.10.10.24/30 </span>[9] May 12 06:45:58.555: Handling TLV: 242 43 for 0 May 12 06:45:58.555: DUAL: AS(1) rcvquery: 169.200.200.1/32 via 169.10.10.2 metric 4294967295/4294967295, RD is 204800 for tid 0 May 12 06:45:58.555: EIGRP-IPv4(1): Find FS for dest 169.200.200.1/32. FD is 204800, RD is 204800 on tid 0 May 12 06:45:58.555: EIGRP-IPv4(1): 169.10.10.2 metric 4294967295/4294967295 May 12 06:45:58.555: EIGRP-IPv4(1): 169.10.10.18 metric 409600/281600 not found Dmin is 409600 : (snip) : May 12 06:45:58.587: AS 1, Flags 0x0:(NULL), Seq 0/12 interfaceQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1 May 12 06:45:58.587: DUAL: AS(1) Removing dest 169.10.10.24/30, nexthop 169.10.10.2</span> [10] May 12 06:45:58.587: EIGRP: Enqueueing QUERY on GigabitEthernet3/1 tid 0 iidbQ un/rely 0/1 serno 13-13 May 12 06:45:58.591: EIGRP: Enqueueing UPDATE on GigabitEthernet3/1 tid 0 iidbQ un/rely 0/1 serno 14-14 May 12 06:45:58.595: EIGRP: Building Sequence TLV May 12 06:45:58.595: EIGRP: Enqueueing UPDATE on GigabitEthernet3/1 nbr 169.10.10.2 tid 0 iidbQ un/rely 0/0 peerQ un/rely 0/1 serno 14-14 May 12 06:45:58.595: EIGRP: Sending HELLO with Sequence TLV on GigabitEthernet3/1, seq 16 May 12 06:45:58.595: EIGRP: Sending HELLO on GigabitEthernet3/1 May 12 06:45:58.595: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ
以降も別の経路情報に対するDiffusing Computationの出力が続く。
5.DUAL処理の後は、上記3.と同様にHelloパケットの送受信が続く。
May 12 06:45:59.123: EIGRP: Received HELLO on GigabitEthernet3/2 nbr 169.10.10.18 May 12 06:45:59.123: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 May 12 06:46:00.323: EIGRP: Sending HELLO on GigabitEthernet3/1 May 12 06:46:00.323: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 May 12 06:46:01.367: EIGRP: Sending HELLO on GigabitEthernet3/2 May 12 06:46:01.367: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 May 12 06:46:02.323: EIGRP: Received HELLO on GigabitEthernet3/1 nbr 169.10.10.2 May 12 06:46:02.323: AS 1, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 MI-CAT4503-S5-SW-01# MI-CAT4503-S5-SW-01#undebug all All possible debugging has been turned off MI-CAT4503-S5-SW-01#
6.MI-CAT4503-S5-SW-01のルーティングテーブルを確認。
宛先169.10.10.24/30にはGi3/2を通っていく事が解る。
MI-CAT4503-S5-SW-01#show ip route : 169.200.0.0/32 is subnetted, 1 subnets D 169.200.200.1 [90/409600] via 169.10.10.18, 00:00:36, GigabitEthernet3/2 169.10.0.0/30 is subnetted, 4 subnets D 169.10.10.8 [90/76800] via 169.10.10.2, 00:08:36, GigabitEthernet3/1 C 169.10.10.0 is directly connected, GigabitEthernet3/1 D 169.10.10.24 [90/281600] via 169.10.10.18, 00:00:36, GigabitEthernet3/2 C 169.10.10.16 is directly connected, GigabitEthernet3/2 169.100.0.0/32 is subnetted, 3 subnets D 169.100.10.6 [90/281600] via 169.10.10.18, 00:09:00, GigabitEthernet3/2 D 169.100.10.3 [90/179200] via 169.10.10.2, 00:08:36, GigabitEthernet3/1 C 169.100.10.1 is directly connected, Loopback0 MI-CAT4503-S5-SW-01
7.MI-CAT4503-S5-SW-01にてEIGRPトポロジテーブルの確認。
サクセサは「via 169.10.10.18 (281600/153600), GigabitEthernet3/2」となった。
上記2.と比較すると、Distance値に変化が無い事が解る。
MI-CAT4503-S5-SW-01#sh ip eigrp topology all-links EIGRP-IPv4 Topology Table for AS(1)/ID(169.100.10.1) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status : P 169.10.10.24/30, 1 successors, FD is 204800, serno 14 via 169.10.10.18 (281600/153600), GigabitEthernet3/2 : MI-CAT4503-S5-SW-01
リンク集
https://www.amazon.co.jp/dp/1578701651 EIGRP Network Design Solutions
https://debslink.hatenadiary.jp/entry/20150415/1429107405 EIGRPのDiffusing Computation
https://debslink.hatenadiary.jp/entry/20150419/1429422783 EIGRPのDiffusing Computation メトリック値変更編
https://debslink.hatenadiary.jp/entry/20150425/1429926903 EIGRPのDiffusing Computation SIA編
https://debslink.hatenadiary.jp/entry/20150503/1430659609 EIGRPのDiffusing Computation 経路追加編
https://debslink.hatenadiary.jp/entry/20150417/1429268810 EIGRPの優先ルートの選定 offset-list編