验证EIGRP重传机制

wKioL1fua-zB5pPRAAAUWMiwQqo931.jpg

本地路由器在规定时间内没有收到邻居的ack确认信息,需要重传。在组播发送数据包的时候,该数据包的单播拷贝会放进一个重传队列中进行排队,一旦这个数据包发送失败,即没有收到邻居的ack确认,那么这个拷贝会被再次发送出去,而触发这个动作的时限就是RTO。如果重传16次没有收到确认,这个邻居就宣布无效。

在R2上限制EIGRP报文,观察RTP--EIGRP的16次单播重传。

首先,R2上查看邻居表:

wKiom1fua_uDbipjAABVKQ__aCw072.jpg

做如下配置:

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:

wKiom1fubBfiidDIAADpCfygixs455.jpg

R1向R2(12.1.1.2)发送单播hello包,5s一次。

此时R2中邻居表中已经没有了R1,但R1的邻居表仍然有R2。因为R1仍能收到R2发送的EIGRP hello数据包,而R2在s1/0口对EIGRP报文做了入方向的block。

同时,R1的邻居表中,队列计数异常(不为零):

wKiom1fubCrisrFTAABSdjAhqas436.jpg

在该输出中,SRTT=1(由于建邻居出了问题,没有计算出SRTT),而且注意RTO=5000ms(正常值为SRTT的6倍)。

经过16次重传,出来一下log,邻居12.1.1.2已经down掉:

wKiom1fubDmDIo6qAADEWZafufQ700.jpg