相关文章链接

NAT和IPsec并存的几种模型(方案一)

NAT和IPsec并存的几种模型(方案二)

关于在传输过程中MAC地址和IP地址,变与不变indextj.gif

EIGRP协议详解(理论部分)indextj.gif

EIGRP实验--协议工作过程详解(一)indextj.gif

EIGRP实验-路由更新indextj.gif


实验目的:

验证一:如果“队列计数”的值大于0,则可能存在拥塞问题。

验证二:如果RTO到期后任未收到ACK分组,EIGRP将重传可靠分组的一个副本,直到重传16次, 或者保持定时器到期为止。(注:RTO表示发送两个连续单播之间等待的时间)

验证三:在多播流(multicastfilow)定时器到期之后,从多播切换到单播之前等待ACK的时间。


本期实验拓扑:

161548343.png

先按照拓扑图配置好接口IPEIGRP相关内容;

配置好之后我们查看一下相关信息:

关注几个时间,Hold(邻居保持时间)、Uptime(邻居从收到hello分组的保持时间)、SRTT(报文传输的平均时间)、RTO(单播重传的间隔时间)、Q(在队列中的分组时间)、Seq(序列号)

R1#show ip eigrp neighbors

IP-EIGRP neighbors for  process 20

HAddressInterfaceHold UptimeSRTTRTOQSeq

(sec)(ms)Cnt Num

1192.168.1.3Et0/014 00:18:5812876807

0192.168.1.2Et0/011  00:19:3313480407

R2#show ip eigrp neighbors

IP-EIGRP neighbors for  process 20

HAddressInterfaceHold UptimeSRTTRTOQSeq

(sec)(ms)Cnt Num

1192.168.1.3Et0/013 00:29:5413178607

0192.168.1.1Et0/01200:30:28 1047500007

R3#show ip eigrp neighbors

IP-EIGRP neighbors for  process 20

HAddressInterfaceHold UptimeSRTTRTOQSeq

(sec)(ms)Cnt Num

1192.168.1.2Et0/013 00:30:297042007

0192.168.1.1Et0/014 00:30:296740207

需要说明的是Hold这个时间,我们知道一般邻居保持时间是15秒,这边的Hold时间是15秒开始的倒计时。比如说如果hold值为14,就说明本路由器已经有1秒钟时间没有收到邻居的hello分组了,邻居一般是5秒发送一次,当收到hello包的时候,路由器将hold时间重置为15秒;如果这个数值小于8的话,那说明整个网络中有拥塞的情况发生,需要关注网络状况喽!

查看多播流定时器。当发送方以组播的方式发送出updatareply等报文时,就重置多播流计时器,并开始等待邻居的需要ack报文确认。如果因为链路拥塞,发送方没有在多播计时器倒计时结束之前收到邻居的ACK(可能是一个邻居,也可能是多个邻居),这个时候查看邻居表的时候就看到“Q”值大于0,表示有数据分组在重传队列里面了;这个时候发送方不再等待,向那些没有收到ACK的邻居发送单播数据分组;

R1#show ip eigrp interfaces e0/0

IP-EIGRP interfaces  for process 20

Xmit QueueMeanPacing TimeMulticastPending

InterfacePeersUn/ReliableSRTTUn/ReliableFlow TimerRoutes

Et0/020/01030/23960

RTO:是单播重传ERGRP分组所要等待的时间,当发送方开始以单播重传分组,如果没有在单播重传计时器结束之前收到ACK报文,那么发送方继续单播重传,直到从传16次或者是hello保持时间到期;

这个验证试验比较难做,我的做法是使用wireshark抓包软件抓取R1e/0接口,然后将R2e0/0接口shutdown掉,然后迅速在R1eigrp进程中宣告22.2.2.0/24这个网段,等到R1R2接触邻居关系的时候停止抓包

相关命令及步骤:

步骤一:

R1(config)#inter  lo 2

R1(config-if)#ip  add 22.2.2.2 255.255.25

R1(config)#router  eigrp 20

R1(config-router)#network 22.2.2.0  0.0.0.255 // 这条命令敲好了先不要按回车

步骤二:

R2(config-if)#shutdown //关闭R2e0/0接口;

然后迅速到R1中按下回车,宣告22.2.2.0/24网段;

161656945.png

其中第3个是R2向组播地址发送的最后一个hello报文,我们记下时间是2.67秒,然后再看

22个包,这个是R1R2解除了邻居关系,然后向组播地址请求有没有到达2.0.0.0/8的其他路径,我们再记录时间17.71秒,我们算一下,之间正好差了15秒,说明是因为过了hello保持时间所以才断开邻居关系的;

161745108.png

我们再来研究一下多播重传时间,首先看第9个包(9.73秒),这是R1组播地址宣告自己新增的一个网段【22.2.2.0/8,自动汇总了】,然后几乎是在同一时间,R3R1发送了ACK,但是R2因为端口被shutdown了,所以没有发送ACK报文,直到第14个包(10.68秒),多播重传计时器结束了,R1开始向R2以单播的方式发送更新报文,这期间工经历0.95秒,然后在观察第151620这几个包,他们的间隔时间分别为0.891.472.163.40秒,我们发现这个间隔时间是越来越长了;

161828641.png

161846939.png

总结:

虽然实验的结果(间隔时间)和我们预期的有所差别,但是整个过程还是正常的,相信我们也能够很好的理解了其中流程了吧。

重传保证EIGRP可靠性的重要保障,除此之外可靠性还依赖另一项技术叫DUAL(扩散更新算法),这部分内容将在下一章节介绍。