メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

EIGRPのLocal Computation

前回のメモ "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編