【转】Eigrp试验---Hello包

EIGRP Packets
  EIGRP的5种包的类型,如下:
  1.hello包:路由器使用hello包来发现邻居,采用多播的方式
  2.update包:采用单播或多播的方式发送.更新发生在路由器启动,拓扑或度发生变化,和路由状态的迁移(主动到被动)
  3.query包:当路由器开始进行路由计算和没有FD的时候,它就发送给邻居一个可靠的查询包来询问是否有到达目的地的FD.查询包通常以多播的方式发送
  4.reply包:以单播的方式发回给发出查询包的路由起,作为应答
  5.acknowledge(ACK)包:ACK包是采用单播的hello包,包含非0的确认数字.update包,query包和reply包均是可靠发送,所以它们都需要确认;而hello包和ACK包就不需要确认
EIGRP Hello Packets
  当你在路由器的接口配置了EIGRP以后,路由器会周期性的以组多播的方式向外发送hello包.多播地址是224.0.0.10.当和它在1个AS里的其他运行了EIGRP的路由器接收到hello包以后,就会和它形成邻居关系.不在1个AS里,而且度的计算方式不一样(即K值不同),是不会形成邻居关系的
  
  EIGRP Timers
  hello包在不同的介质上发送间隔是不一样的,如下:
  1.在以下介质中是以每5秒进行发送:广播型介质,比如以太网,令牌环(Token Ring)和分布式光纤接口(FDDI);在点到点类型的串行链路中比如PPP和HDLC,还有帧中继和ATM;带宽大于T1线路的多点线路,比如交换式多兆位数据服务(SMDS),帧中继,ATM和ISDN PRI
  2.在以下类型中间隔时间是60秒:带宽小于T1线路的多点线路,比如ISDN BRI,帧中继,SMDS,ATM和X.25当配置EIGRP的时候,EIGRP进程动态发现和它直接相连的运行了EIGRP的路由器.每个路由器在它自己的neighbor table中都保持的有邻居的信息,包括到达邻居路由器的地址和接口.还保持的有hold time.hold time是3倍于hello time
  
  EIGRP在低速链路上发送hello包的频率较低,因为hello包会占用额外的带宽.不过可以在接口配置模式对默认时间进行修改,使用ip hello-interval eigrp {AS-number} {seconds}命令;修改hold time的时间的命令也是在接口配置模式,使用ip hold-time eigrp {AS-number} {seconds}命令.当你修改了hello包的时间间隔以后,hold time是不会自动修改的(之前hold time=hello time*3)所以要人工进行修改
  
  EIGRP Adjacency Establishment Conditions
  即使两个路由器的hello time和hold time相互之间不匹配,它们仍然有可能成为邻居.hello包包含了hold time的信息和保持跟踪每个EIGRP邻居路由器的hold time如果EIGRP路由器在hold time超出之前没有收到EIGRP包,路由器就会察觉拓扑的变化.路由器删除邻居路由器的相关信息,包括从邻居那里认可的topology table条目.假如FD可用的话,EIGRP进程将进行重新收敛

EIGRP不会基于次要地址(secondary address)建立邻居关系,因为EIGRP使用接口的主地址

设计试验R1----R2,启用EIGRP,然后我们修改R1接口S0/0下的参数:R1(config-if)#ip hello-interval eigrp 90 20 然后在R2上:R2# show ip eigrp neighbors
IP-EIGRP neighbors for process 90
H   Address                 Interface       Hold Uptime   SRTT   RTO Q Seq
                                            (sec)         (ms)       Cnt Num
1   192.1.12.1              Se0/0              1 00:00:15 144   864 0 453
0   192.1.23.3              Se0/1             12 00:00:16   99   594 0 230
R2# show ip eigrp neighbors
IP-EIGRP neighbors for process 90
H   Address                 Interface       Hold Uptime   SRTT   RTO Q Seq
                                            (sec)         (ms)       Cnt Num
1   192.1.12.1              Se0/0              0 00:00:16 144   864 0 453
0   192.1.23.3              Se0/1             11 00:00:17   99   594 0 230
R2# show ip eigrp neighbors
IP-EIGRP neighbors for process 90
H   Address                 Interface       Hold Uptime   SRTT   RTO Q Seq
                                            (sec)         (ms)       Cnt Num
0   192.1.23.3              Se0/1             14 00:00:17 105   630 0 233
R2# show ip eigrp neighbors
IP-EIGRP neighbors for process 90
H   Address                 Interface       Hold Uptime   SRTT   RTO Q Seq
                                            (sec)         (ms)       Cnt Num
1   192.1.12.1              Se0/0             14 00:00:00 138   828 1 457
0   192.1.23.3              Se0/1             14 00:00:18 105   630 0 233
*Mar 1 01:04:09.907: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 90: Neighbor 192.1.12.1 (Serial0/0) is down: holding time expired
*Mar 1 01:04:10.803: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 90: Neighbor 192.1.12.1 (Serial0/0) is up: new adjacency
我们会清晰的在R2上看到路由翻滚现象。如何解决呢?我们在R2上去修改hold-time却解决不了现象的产生。我们只有在R1上去修改s0/0的hold-time为hold-interval时间的3倍。解决邻居的抖动翻滚现象。

R1(config-if)#ip hello-interval eigrp 90 20

R1(config-if)#ip hold-time eigrp 90 60

我们通过试验来验证到上面的理论:当你修改了hello包的时间间隔以后,hold time是不会自动修改的(之前hold time=hello time*3)所以要人工进行修改。而我们在R2上所show到的hold uptime 实际是R1发来的hello所带信息确定的。 以下从R2show到信息足以验证:20秒接到R1的hello包,而hold-time是60秒
R2# show ip eigrp neighbors
IP-EIGRP neighbors for process 90
H   Address                 Interface       Hold Uptime   SRTT   RTO Q Seq
                                            (sec)         (ms)       Cnt Num
1   192.1.12.1              Se0/0             41 00:08:36 204 1836 0 506
0   192.1.23.3              Se0/1             14 00:10:22 163   978 0 260
R2# show ip eigrp neighbors
IP-EIGRP neighbors for process 90
H   Address                 Interface       Hold Uptime   SRTT   RTO Q Seq
                                            (sec)         (ms)       Cnt Num
1   192.1.12.1              Se0/0             59 00:08:36 204 1836 0 506
0   192.1.23.3              Se0/1             14 00:10:22 163   978 0 260
我们可以用命令查看接口下hello发送的时间:
R1#show ip eigrp int detail
IP-EIGRP interfaces for process 90

                        Xmit Queue   Mean   Pacing Time   Multicast    Pending
Interface        Peers Un/Reliable SRTT   Un/Reliable   Flow Timer   Routes
Se0/0              1        0/0       186       0/15         831           0
Hello interval is 20 sec
Next xmit serial <none>
Un/reliable mcasts: 0/0 Un/reliable ucasts: 142/379
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 375
Retransmissions sent: 1 Out-of-sequence rcvd: 130
Authentication mode is not set
Use unicast
试验总结:hold timer : defaults to 3x hello interval
在hold timer 超时后,没有收到邻居的 hello packets , 将认为邻居 dead,从邻居表中 clear。
EIGRP 的邻居并不要求 Hello time / hold timer 一致,但是必须保证 hello time < 对方的 hold timer . 否则会引发邻居晃动。
hello interval < 邻居 Hold timer , 邻居关系正常
hello interval > 邻居 Hold timer + 1 hello interval , 邻居关系可能正常,也可能晃动

你可能感兴趣的:(【转】Eigrp试验---Hello包)