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

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

EIGRPのDiffusing Computation メトリック値変更編

前回のメモに続いて、再度EIGRPのDiffusing Computationの確認。
EIGRPネイバーの消失時にはEIGRP HelloのHold Timeを待たずにDUAL処理が実行され、EIGRPトポロジテーブルの更新及びEIGRPネイバ関係の再構築が行われる。
これらの処理は、ネイバー消失時だけでなく以下の事象が発生した時にも実行される。

・自機にて経路の消失
・自機にて経路の追加
・経路消失や経路追加をトリガーとしたUpdateを受信
・自機にてDelay値やBandwidth値の変更
・メトリック値(Delay値やBandwidth値)の変更をトリガーとしたUpdateを受信
・サクセサからQueryを受信

今回は、EIGRPネイバではなく他経路にてDelay値を変更し、DUAL処理を実行させてみた。
再計算対象の経路に対しActiveのステータスが付与され、ネイバーへ代替経路をQueryで問い合わせをする。実行されたDUALはDiffusing Computationを呼び出し利用出来なくなった経路の削除処理を開始する。
Diffusing Computationとは何ぞや?に関しては以下の記事を参照。
https://debslink.hatenadiary.jp/entry/20150415/1429107405 EIGRPのDiffusing Computation


当方の環境
構成(クリックすると拡大表示)

MI-CAT6503-SP2-SW-01:Catalyst6503
MI-CAT3750-ME-SW-03:Catalyst3750Metro
MI-CAT3750-ME-SW-03のFa1/0/3にてdelay値を200に変更。
MI-CAT6503-SP2-SW-01がMI-CAT3750-ME-SW-03から受信したUpdateをDUAL処理する様子を見てみた。


1.EIGRPネイバ関係を確認。
MI-CAT3750-ME-SW-03に対し、2本ネイバー関係を持っている事がわかる。

MI-CAT6503-SP2-SW-01#show ip eigrp nei
IP-EIGRP neighbors for process 1
H Address     Interface   Hold Uptime  SRTT RTO Q Seq
                    (sec)   (ms)   Cnt Num
1 10.200.1.6     Gi3/2     7 00:04:22 9 200  0 9
0 10.200.1.2     Gi3/1     8 00:04:33 6 200  0 10
MI-CAT6503-SP2-SW-01#


2.MI-CAT6503-SP2-SW-01のルーティングテーブルを確認。
宛先NW 10.200.2.0/24に対し、2本の等コストの経路を持っている事がわかる。

MI-CAT6503-SP2-SW-01#show ip route
:
(snip)
:
  10.0.0.0/8 is variably subnetted, 5 subnets, 3 masks
D    10.1.1.2/32 [90/133120] via 10.200.1.2, 00:04:28, GigabitEthernet3/1
           [90/133120] via 10.200.1.6, 00:04:28, GigabitEthernet3/2
C   10.1.1.1/32 is directly connected, Loopback0
D    10.200.2.0/24 [90/261120] via 10.200.1.2, 00:04:28, GigabitEthernet3/1
            [90/261120] via 10.200.1.6, 00:04:28, GigabitEthernet3/2
C   10.200.1.0/30 is directly connected, GigabitEthernet3/1
C   10.200.1.4/30 is directly connected, GigabitEthernet3/2
MI-CAT6503-SP2-SW-01#


3.MI-CAT6503-SP2-SW-01のEIGRPトポロジテーブルを確認「2 successors」の出力のとおり、サクセサは2つある事がわかる。
10.200.2.0/24の経路に対し、FD(Feasible Distance)値は261120、AD(Advertised Distance、Reported Distanceとも言う)値は258560、MI-CAT6503-SP2-SW-01自信から宛先NWへのメトリック値は261120である事がわかる。


EIGRPのメトリック値に関して、ここでおさらい。
Feasible Distance値:最後にDUAL処理が実行された際に算出された、自機〜宛先NWの最小メトリック値。
Advertised Distance値:ネイバ〜宛先NWのメトリック値。
Router's own Distance値:AD値 + 自機のメトリック値(自機〜宛先NWのメトリック値)。FD値と同じ。

MI-CAT6503-SP2-SW-01#show ip eigrp topology all-links 
IP-EIGRP Topology Table for AS(1)/ID(10.1.1.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
    r - reply Status, s - sia Status 

P 10.1.1.2/32, 2 successors, FD is 133120, serno 8
    via 10.200.1.6 (133120/128256), GigabitEthernet3/2
    via 10.200.1.2 (133120/128256), GigabitEthernet3/1
P 10.1.1.1/32, 1 successors, FD is 128256, serno 1
    via Connected, Loopback0
P 10.200.2.0/24, 2 successors, FD is 261120, serno 7
    via 10.200.1.6 (261120/258560), GigabitEthernet3/2
    via 10.200.1.2 (261120/258560), GigabitEthernet3/1
P 10.200.1.0/30, 1 successors, FD is 5120, serno 2
    via Connected, GigabitEthernet3/1
    via 10.200.1.6 (7680/5120), GigabitEthernet3/2
P 10.200.1.4/30, 1 successors, FD is 5120, serno 5
    via Connected, GigabitEthernet3/2
    via 10.200.1.2 (7680/5120), GigabitEthernet3/1
MI-CAT6503-SP2-SW-01#


他経路のメトリック変更によるのDUAL処理
4.ここで、debug eigrp fsmコマンドを実行しデバッグ開始

MI-CAT6503-SP2-SW-01#debug eigrp fsm 
EIGRP FSM Events/Actions debugging is on
MI-CAT6503-SP2-SW-01#debug eigrp packet
MI-CAT6503-SP2-SW-01#


5.MI-CAT3750-ME-SW-03側にて、Fa1/0/3のdelay値を10から200に変更。

MI-CAT3750-ME-SW-03#conf t
MI-CAT3750-ME-SW-03(config)#interface fa1/0/3
MI-CAT3750-ME-SW-03(config-if)#delay 200
MI-CAT3750-ME-SW-03(config-if)#
MI-CAT3750-ME-SW-03(config-if)#exit
MI-CAT3750-ME-SW-03#


6.上記にてMI-CAT3750-ME-SW-03側でdelay値を変更した瞬間、MI-CAT6503-SP2-SW-01側でDUAL処理実行の様子が出力された。

MI-CAT6503-SP2-SW-01#
00:34:05: DUAL: rcvupdate: 10.200.2.0/24 via 10.200.1.2 metric 309760/307200 [1]
00:34:05: DUAL: Find FS for dest 10.200.2.0/24. FD is 261120, RD is 261120
00:34:05: DUAL:    10.200.1.6 metric 261120/258560
00:34:05: DUAL:    10.200.1.2 metric 309760/307200 found Dmin is 261120
00:34:05: DUAL: RT installed 10.200.2.0/24 via 10.200.1.6
00:34:05: DUAL: Send update about 10.200.2.0/24.  Reason: lost if
00:34:05: EIGRP: Received UPDATE on GigabitEthernet3/1 nbr 10.200.1.2
00:34:05:  AS 1, Flags 0x0, Seq 18/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
00:34:05: EIGRP: Enqueueing ACK on GigabitEthernet3/1 nbr 10.200.1.2
00:34:05:  Ack seq 18 iidbQ un/rely 0/0 peerQ un/rely 1/0
00:34:05: DUAL: rcvupdate: 10.200.2.0/24 via 10.200.1.6 metric 309760/307200 [1]
00:34:05: DUAL: Find FS for dest 10.200.2.0/24. FD is 261120, RD is 261120
00:34:05: DUAL:    10.200.1.6 metric 309760/307200
00:34:05: DUAL:    10.200.1.2 metric 309760/307200 not found Dmin is 309760
00:34:05: DUAL: Peer total/stub 2/0 template/full-stub 2/0
00:34:05: DUAL: Dest 10.200.2.0/24 entering active state. [2]
00:34:05: DUAL: Set reply-status table. Count is 2. [3]
00:34:05: DUAL: Not doing split horizon
00:34:05: EIGRP: Sending ACK on GigabitEthernet3/2 nbr 10.200.1.6
00:34:05:  AS 1, Flags 0x0, Seq 0/17 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 1/0
00:34:05: EIGRP: Sending ACK on GigabitEthernet3/1 nbr 10.200.1.2
00:34:05:  AS 1, Flags 0x0, Seq 0/18 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 1/0
00:34:05: EIGRP: Enqueueing QUERY on GigabitEthernet3/2 iidbQ un/rely 0/1 serno 18-18
00:34:05: EIGRP: Enqueueing QUERY on GigabitEthernet3/1 iidbQ un/rely 0/1 serno 18-18
00:34:05: EIGRP: Sending QUERY on GigabitEthernet3/2 [4]
00:34:05:  AS 1, Flags 0x0, Seq 18/0 idbQ 0/0 iidbQ un/rely 0/0 serno 18-18
00:34:05: EIGRP: Sending QUERY on GigabitEthernet3/1 [4]
00:34:05:  AS 1, Flags 0x0, Seq 19/0 idbQ 0/0 iidbQ un/rely 0/0 serno 18-18
00:34:05: EIGRP: Received ACK on GigabitEthernet3/2 nbr 10.200.1.6
00:34:05:  AS 1, Flags 0x0, Seq 0/18 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1
00:34:05: EIGRP: GigabitEthernet3/2 multicast flow blocking cleared
00:34:05: EIGRP: Received ACK on GigabitEthernet3/1 nbr 10.200.1.2
00:34:05:  AS 1, Flags 0x0, Seq 0/19 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1
00:34:05: EIGRP: GigabitEthernet3/1 multicast flow blocking cleared
00:34:05: EIGRP: Received REPLY on GigabitEthernet3/2 nbr 10.200.1.6 [5]
00:34:05:  AS 1, Flags 0x0, Seq 19/18 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
00:34:05: EIGRP: Enqueueing ACK on GigabitEthernet3/2 nbr 10.200.1.6
00:34:05:  Ack seq 19 iidbQ un/rely 0/0 peerQ un/rely 1/0
00:34:05: DUAL: rcvreply: 10.200.2.0/24 via 10.200.1.2 metric 309760/307200 [5]
00:34:05: DUAL: reply count is 2
00:34:05: DUAL: Clearing handle 0, count now 1
00:34:05: DUAL: rcvreply: 10.200.2.0/24 via 10.200.1.6 metric 309760/307200 [5]
00:34:05: DUAL: reply count is 1
00:34:05: DUAL: Clearing handle 1, count now 0
00:34:05: EIGRP: Received REPLY on GigabitEthernet3/1 nbr 10.200.1.2</span> [5]
00:34:05:  AS 1, Flags 0x0, Seq 20/19 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
00:34:05: EIGRP: Enqueueing ACK on GigabitEthernet3/1 nbr 10.200.1.2
00:34:05:  Ack seq 20 iidbQ un/rely 0/0 peerQ un/rely 1/0
00:34:05: DUAL: Freeing reply status table
00:34:05: DUAL: Find FS for dest 10.200.2.0/24. FD is 4294967295, RD is 309760 found
00:34:05: DUAL: RT installed 10.200.2.0/24 via 10.200.1.6 [6]
00:34:05: DUAL: RT installed 10.200.2.0/24 via 10.200.1.2 [6]
00:34:05: DUAL: Send update about 10.200.2.0/24.  Reason: new if
00:34:05: EIGRP: Sending ACK on GigabitEthernet3/2 nbr 10.200.1.6
00:34:05:  AS 1, Flags 0x0, Seq 0/19 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 1/0
00:34:05: EIGRP: Sending ACK on GigabitEthernet3/1 nbr 10.200.1.2
00:34:05:  AS 1, Flags 0x0, Seq 0/20 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 1/0
00:34:05: EIGRP: Enqueueing UPDATE on GigabitEthernet3/1 iidbQ un/rely 0/1 serno 19-19
00:34:05: EIGRP: Enqueueing UPDATE on GigabitEthernet3/2 iidbQ un/rely 0/1 serno 19-19
00:34:05: EIGRP: Sending UPDATE on GigabitEthernet3/1 [7]
00:34:05:  AS 1, Flags 0x0, Seq 20/0 idbQ 0/0 iidbQ un/rely 0/0 serno 19-19
00:34:05: EIGRP: Sending UPDATE on GigabitEthernet3/2 [7]
00:34:05:  AS 1, Flags 0x0, Seq 21/0 idbQ 0/0 iidbQ un/rely 0/0 serno 19-19
00:34:05: EIGRP: Received ACK on GigabitEthernet3/1 nbr 10.200.1.2
00:34:05:  AS 1, Flags 0x0, Seq 0/20 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1
MI-CAT6503-SP2-SW-01#


上記の一連の処理は1秒の間で実行された事がわかる。
・ネイバーMI-CAT3750-ME-SW-03より、経路情報10.200.2.0/24のUpdateを受信。(上記[1])
・フィージブルサクセサが無い為に、10.200.2.0/24にActiveのステータスを付与。 (上記[2])
・Reply Statusを初期化し、10.200.2.0/24への最適な経路情報を待つ。 (上記[3])
・Queryを送信し、10.200.2.0/24への最適な経路情報を催促。 (上記[4])
・10.200.2.0/24の経路情報を受信。受信した経路情報は現状では最適なものである。メトリック値が更新された内容になっている。(上記[5])
・受信した経路情報をトポロジテーブルに反映。 (上記[6])
・上記[6]で更新されたトポロジテーブルの内容をUpdateで送信。(上記[7])



7.この状態で、MI-CAT6503-SP2-SW-01のEIGRPトポロジテーブルを確認。
FD値やAD値などメトリック値が更新された内容になっている事がわかる。

MI-CAT6503-SP2-SW-01#sh ip eigrp topology all-links 
IP-EIGRP Topology Table for AS(1)/ID(10.1.1.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
    r - reply Status, s - sia Status 

P 10.1.1.2/32, 2 successors, FD is 133120, serno 8
    via 10.200.1.6 (133120/128256), GigabitEthernet3/2
    via 10.200.1.2 (133120/128256), GigabitEthernet3/1
P 10.1.1.1/32, 1 successors, FD is 128256, serno 1
    via Connected, Loopback0
P 10.200.2.0/24, 2 successors, FD is 309760, serno 11
    via 10.200.1.2 (309760/307200), GigabitEthernet3/1
    via 10.200.1.6 (309760/307200), GigabitEthernet3/2
P 10.200.1.0/30, 1 successors, FD is 5120, serno 2
    via Connected, GigabitEthernet3/1
    via 10.200.1.6 (7680/5120), GigabitEthernet3/2
P 10.200.1.4/30, 1 successors, FD is 5120, serno 5
    via Connected, GigabitEthernet3/2
    via 10.200.1.2 (7680/5120), GigabitEthernet3/1
MI-CAT6503-SP2-SW-01#


リンク集
https://www.amazon.co.jp/dp/1578701651 EIGRP Network Design Solutions
https://debslink.hatenadiary.jp/entry/20150416/1429195527 EIGRPのLocal Computation
https://debslink.hatenadiary.jp/entry/20150415/1429107405 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編