您的位置:首页 > 其它

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

2013-05-03 09:50 441 查看
实验目的:
了解五种报文的格式及工作过程;初步学习,不妥当的地方还请大牛指教!




Hello:
我们现在R1路由器上面开启EIGRP进程,R2上暂时不开启,然后使用wireshark进行抓包分析:





由此可见,当将接口IP所在网段宣告到EIGRP进程中,该接口就会不断的发送hello报文。hello报文是每个5秒钟发一次的(线路速率大于T1,是5秒发一次,小于T1是60秒一次);先来了解一下EIGRP包头:




首先看IP层信息,值得我们注意的是TTL值(Time to live:2)等于2,表示这个hello包只能在本链路有效,不可跨越路由器;protocol:EIGRP(88),88表示EIGRP的协议号;目标IP是一个组播地址:224.0.0.10;




下面我们看hello包的具体内容:




我们主要关注一下参数:
Opcode:hell0/Ack(5) 表示类型为hello;更具体类型如下:




Autonomous System:20 as号为20;此值必须匹配;
K1~K5:分别为1,0,1,0,0;只在hello报文中存在,用于验证邻居,此值必须匹配;
Hold time:15 邻居保持时间为15秒,是hello间隔的3倍;
还包括路由器软件版本及EIGRP的版本号;

下面我们开启R2上的EIGRP进程,宣告S1/0所在的网段;



敲完回车之后,在1秒中内迅速出现11个EIGRP分组报文,我们来看看每个都是干什么用的:





第一个是,R2向组播地址发送hello报文,开始寻找邻居;
第二个是,R1向组播地址发送hello报文,开始寻找邻居;注:hello报文无须ACK确认;
第三个是,R1发送给R2的更新报文,我们看看与hello报文有什么不同;



首先update报文要比hello报文简洁的多,只表示标识号为1(update);checksum;并且将INIT置位1,表示自己已经是INIT状态了;序列号为5;ACK置为0,等待确认;AS号还是20;
第五个是,R2发送给R1的更新报文,与第三个类似,不同的是将ACK置为5,表示对第三个报文的确认;




第六个是,R1向R2发送路由跟新条目,R1将自身的序列号加1变为6,并且确认收到了R2发送的序列号为5的EIGRP分组;拓扑信息中包含有10.0.0.0/8的路由条目;延迟为128000;带宽为256;




第七个是,R2向R1发送的路由更新条目,R2将自身的序列号加1变为6,并且确认收到了R2发送的序列号为6的EIGRP分组;拓扑信息中包含有172.16.1.4/30的路由条目;延迟为512000;带宽为1657856;




以此在进行一次交换信息,然后最后一个报文表示了R1确认R2发送的报文:这边操作码为5,且ACK不为零的报文为ACK报文,否则为hello报文;确认之后将自身序列号置为0,表示收敛完毕;



下面我们来看一下二者的邻居表:





再查看路由表:




本文出自 “见证成长” 博客,请务必保留此出处http://nanjingfm.blog.51cto.com/2121842/1192041
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: