リンクダウン発生時のEIGRPの挙動を知りたかった話
はじめに
EIGRPをしゃべっている機器がリンクダウンした時、
・リンクダウンしたらすぐにQueryを送信するか
・リンクダウンしてもHoldタイマーが0になってから送信するか
どちらか調べてみました。(結論は後者でした)
図でいうと、RT#1の右のポートを物理的に抜線したとき、RT#1はL3SWにすぐに経路が切替わるパケットを送るか、しばらく経過してから経路が切替わるパケットを送るか。を調べました。
使用機器
■RT#1,RT#2
機種:C891FJ-K9
IOSVersion:15.3(3)M6
■L3SW、L2SW ※ホスト名はSWですがルーターです
機種:Cisco 1812-J
IOSVersion:12.4(15)T7
EIGRPの5種類のパケット
・Hello:ネイバー検知とネイバー確率後のキープアライブ用
・Update:新しいルート検出時や収束完了時に送信
・Query:ルート情報をネイバーに問い合わせる際に使用
・Reply:Queryの応答
・Ack:Update/Query/Replyへの確認応答
今回、RT#1視点では、RT#2をnexthopとしていた経路が消える。
そのため、RT#1はL3SWにQueryにて経路の情報を問い合わせる。
L3SWはその経路情報を知らない+RT#1から教わっていたので、これらの経路を削除する。
EIGRPのタイマー
デフォルトは下記の通り。
・Helloインターバル:5秒 ※狭帯域では60秒
・ホールドタイム:15秒 ※狭帯域では180秒
調べたいこと
今回調べたかったのは、RT#1のL2SW側ポートを物理的に抜線したら、
・RT#1はすぐにQueryをL3SWに送信するか
・ホールドタイムが切れた15秒後にQueryを送信するか
正常時の挙動確認
WireShaerkでの確認
L3SWのキャプチャを見ると対向の1.1.1.1からは4.3秒~4.6秒ごとにHelloパケットを受信していることが分かる。(5秒丁度ではない理由は不明)
なおパケットの中を見てみると、
Hold Time: 15
とみることができる。
showコマンドでの確認
show ip eigrp neighborsを連続で実行すると、Holdタイムが14→13→12→11→10→14→…となることが分かる。
これからHelloパケットを5秒間隔、Holdタイムが15であることが分かる。
異常時の状態確認
3596秒のHelloパケットを見てすぐにケーブル抜線
約14秒後にQueryを受信し、AckとReplyを送信、その後Ackを受信している。
L3SWはRT#1からQueryパケットで172.16.31.0/24、172.16.32.0/24、10.0.0.2/32のルート情報を問い合わされている。
L3SWはこれらのセグメントのネクストホップがRT#1だったのに、このようなQueryを受信したので、対象のセグメントを削除する。
結論
RT#1はRT#2向けのホールドタイマー(添付のshow ip eigrp neighborでいう10.0.254.2向けのHoldタイマー)が切れた後に、QueryをL3SWに送信する。
「showコマンドでの確認」記載のログから、ホールドタイムは15秒からカウントダウンし、Helloパケットを受信したら15秒に戻ることが分かる。
そのため、下記の考えから、リンクダウン発生後10~15秒後にQueryを送信することが分かる。
■最長パターン
Helloパケット受信後ホールドタイムが15秒に。
その直後にリンクダウン発生
ホールドタイム残り10秒でHelloパケット受信できず(1回目)
ホールドタイム残り5秒にHelloパケット受信できず(2回目)
ホールドタイム残り0秒にHelloパケット受信できず(3回目) ←ここで断を検知
となるので、リンクダウン後15秒でルート切替
■最短パターン
Helloパケット受信後ホールドタイムが15秒に。
ホールドタイム残り5秒の直前にリンクダウン発生
ホールドタイム残り5秒にHelloパケット受信できず(1回目)
ホールドタイム残り10秒にHelloパケット受信できず(2回目)
ホールドタイム残り15秒にHelloパケット受信できず(3回目) ←ここで断を検知
となるので、リンクダウン後10秒でルート切替
参考
この記事が気に入ったらサポートをしてみませんか?