驗證EIGRP重傳機制
本地路由器在規定時間內沒有收到鄰居的ack確認信息,需要重傳。在組播發送數據包的時候,該數據包的單播拷貝會放進一個重傳隊列中進行排隊,一旦這個數據包發送失敗,即沒有收到鄰居的ack確認,那麼這個拷貝會被再次發送出去,而觸發這個動作的時限就是RTO。如果重傳16次沒有收到確認,這個鄰居就宣佈無效。
在R2上限制EIGRP報文,觀察RTP--EIGRP的16次單播重傳。
首先,R2上查看鄰居表:
做如下配置:
R2(config)#ip access-list extended BLOCK_EIGRP
R2(config-ext-nacl)#deny eigrp any any
R2(config-ext-nacl)#permit ip any any
R2(config-ext-nacl)#exit
R2(config)#int s1/0
R2(config-if)#ip access-group BLOCK_EIGRP in
在R1上開debug eigrp transmit,貼出output:
R1向R2(12.1.1.2)發送單播hello包,5s一次。
此時R2中鄰居表中已經沒有了R1,但R1的鄰居表仍然有R2。因爲R1仍能收到R2發送的EIGRP hello數據包,而R2在s1/0口對EIGRP報文做了入方向的block。
同時,R1的鄰居表中,隊列計數異常(不爲零):
在該輸出中,SRTT=1(由於建鄰居出了問題,沒有計算出SRTT),而且注意RTO=5000ms(正常值爲SRTT的6倍)。
經過16次重傳,出來一下log,鄰居12.1.1.2已經down掉: