被选为Feasible successor路由器的选择标准是就是要求可行后继路由器的AD要小于最佳路由的FD。

后继路由的FD要小于Successors的AD,才能进入候选路由表条目中。
其次,上面所说的条件是默认variance为1的时候,如果设置variance为2的时候,例如,Successors的AD为20,而后继路由的FD必须不大于20*2,当SuccessorsDOWN掉的时候才有可能启用,当然前提是没有比这个后继路由更好的选择情况下。

EIGRP Databases(EIGRP数据库)
1、邻居表neighbor table:EIGRP路由器会在启动后发送HELLO包来寻找和维持邻居关系
2、拓扑表topology table:EIGRP路由器会把从邻居那里收到的路由路径信息加载到自己的拓扑表中,形成对全网络拓扑的认知
3、路由表routing table:路由器依靠它来进行数据的转发处理,该表中的内容是通过运行算法通过对topology table进行计算得出的一条或多条successor加入路由表。

这里EIGRP与其他路由协议不同的是:它可以支持多种协议,如IPX等,它为每种协议单独维护一张路由表

EIGRP为了维护successor和feasible successor,采用了AD和FD
1、AD-advertised distance:从EIGRP的邻居到达目标网络的度量
2、FD-feasible distance:本地到邻居路由器的度量+AD
如何选择出successor和feasible successor呢?
EIGRP通过比较所有到达目标网络路径的FD,选择出最低的FD加入路由表中成为successor,次低的成为feasible successor。
因为有了feasible successor,当successor失效后,feasible successor马上可以取而代之,不用等待holddown超时,所以EIGRP可以在网络发生改变时很快速的收敛

EIGRP metric
前面在IGRP一篇中已经谈到了IGRP的度量值的衡量
其实IGRP和EIGRP的度量计算差不多,只是IGRP的度是24位的格式,而EIGRP却是32位的格式,所以是256倍。那么按照计算IGRP度量的办法计算出来一个值,然后乘以256就是EIGRP的度量啦
常用的两个衡量度量的参数:
1、带宽:10的七次方除以某条路由路径中的最低带宽值,然后乘以256
2、时延:所有接口的时延和乘以256,单位是微秒
前面IGRP中已经提到过,不可以随意的去修改权重……K值。
如果有必要,建议在经过周密的计算后,再来根据实际情况修改,在EIGRP中也是同样,而且当K值不匹配,那么他们无法形成邻居

EIGRP packet
在IGRP中谈到了三种路由:内部路由、系统路由、外部路由
在EIGRP中有5种包类型:
1、hello包:EIGRP路由器使用HELLO包来发现邻居和keep-alive
2、update包:通常采用多播(224.0.0.10)和单播来发送,发生在网络状态改变,拓扑变化,路由器加入和状态变化
3、query包:查询包—-询问包,即路由器刚启动时或者还未计算出FD时,它向邻居发送该包来查询是否有到达目的地的FD,通常用多播地址
4、reply包:query包的回应包,以单播方式回应
5、ACK包:对一些特殊包确认,是单播方式发送。Update,query,reply三种包都需要确认,而hello包不需要。
关于一个确认的问题:网络中,A有两个邻居分别是B和C,当它向B和C发送了update包后,将会等待来自B和C的ACK包(stop-and-wait),如果此时C因为有了点问题,并没有发送ACK给A,而A只收到了来自B的ACK,那么A将等待下去,等到收到C的ACK后,才会继续传送下一条update。这样做的话,非常影响效率,那么EIGRP采用了对未经过确认的多播包使用单播地址来发送解决了这个问题。

当网络中的EIGRP路由器启动后,会从每个启用了EIGRP的接口周期性的向外发送组播报文——hello,在同一个AS之内,运行EIGRP的其他路由器收到该包后,会和其建立邻居关系,并加入到各自的neighbor table中。这里,如果不在一个AS内,或者K值不匹配,它们将无法形成邻居!
EIGRP的hello周期分两种情况:
1、高速链路上:T1以上,广播型网络,点对点……这些链路中5s一次
2、低速链路上:T1以下,ISDN BRI,FR等……为60s一次

邻居的失效:每台路由器会周期性的发送hello包,来维持和其他路由器之间的邻居关系,如果某台路由器在一定时间内,还未受到来自邻居的hello包,那么将宣告邻居失效,这个等待失效的时间为hold time,该时间是hello时间的三倍!

一般建议不修改这些参数,但是如果有特殊需要,比如说在低速链路上,hello频率过高,会造成拥塞,我们可以通过命令:
Ip hello-interval eigrp {AS-num} {seconds}————修改hello时间
Ip hold-time eigrp {AS-num} {seconds}———-修改hold-time
这里如果你修改了hello时间的话,hold-time也要进行相应的改动,因为,默认hold-time是hello时间的3倍。

注:EIGRP是不会使用第二地址(secondary address次要地址)来记录邻居关系,它会使用接口的主地址!