以下内容摘自正在全面热销的最新网络设备图书“豪华四件套”之一《Cisco路由器配置与管理完全手册》(第二版)(其余三本分别是:《Cisco交换机配置与管理完全手册》(第二版)、《H3C交换机配置与管理完全手册》(第二版) 和《H3C路由器配置与管理完全手册》(第二版) )。目前在京东网、当当网、卓越网、互动出版网等书店全面热销中,购买该套装将直减30元:http://book.dangdang.com/20130730_aife、http://item.jd.com/11299332.html
EIGRP是一个平衡混合型路由协议,既有像RIP那样的距离矢量路由协议的特点:有路由跳数的限制,路由信息依靠邻居路由器通告,遵守路由水平分割和反向毒化水平分割规则,路由自动汇总;又有像OSPF那样的链路状态路由协议的特点:当路由信息发生变化时,采用增量更新的方式,保留对网络拓扑信息、同时采用距离矢量和链路状态两种算法来计算路由开销。同时,该协议又具有自己独特的特点:支持非对等开销路由上的负载均衡,采用DUAL算法在确保无路由环路的前提下,收敛迅速。因而适用于中大型网络。但前面提到的IGRP是是距离矢量路由协议。
EIGRP采用的是DUAL(Diffusing Update Algorithm,扩散更新算法)。这个算法可以确保在极短时间内无环路计算出路由结果,并且允许所有与拓扑改变相关的设备在同一时间进行同步更新。不受拓扑结构改变的路由器不会进行重新计算。这种收敛效率要远比其他已存的路由协议要高。
11.1.6 DUAL算法网络收敛原理解析示例二
本节再以一个稍微复杂的EIGRP网络收敛为例介绍UDAL的工作原理。本示例拓扑结构如图11-8的左图所示,其中Router C、Router D和Router E是当前处于收敛状态时的拓扑表。
图11-8 DUAL网络收敛原理解析示例二拓扑结构及拓扑表
从图中的拓扑表中可以看出,Router C、Router D和Router E这三台路由器至少有一个通告度量(AD)小于它们自己的有限距离(FD)的有效路由到达Router A所连接的网络(a)。其中标注为“Successor”的为当前Successor,标注为“fs”为可行后续。从中可以看出,这三台路由器中仅Router C有一个备份用的FS,即Router D,其它两个路由器均只有一个正在使用的Successor,如图11-9所示。
图11-9 收敛状态时的三台路由器上到达目的网络的Successor和FS
此时,Router C标识通过Router B的路由作为当前使用的路由,因为这条路由的AD=1,小于Router C上到达网络(a)的FD值3。Router C同时也标识通过Router D的路由作为备份使用的FS路由,因为这条路由的AD=2,小于Router C上到达网络(a)的FD值3。但是通过Router E的路由不能作为FS路由,因为这条路由的AD=3,与Router C上到达网络(a)的FD值3相等,不符合成为FS的条件。
Router D标识通过Router B的路由作为当前使用的路由,因为这条路由的AD=1,小于Router D上到达网络(a)的FD值2。但在Router D中,通过Router C的路由也不能作为FS路由,因为这条路由的AD=3,大于Router D上到达网络(a)的FD值2,不符合成为FS的条件。
Router E标识通过Router D的路由作为当前使用的路由,因为这条路由的AD=2,小于Router E上到达网络(a)的FD值3。但在Router E中,通过Router C的路由也不能作为FS路由,因为这条路由的AD=3,等于Router E上到达网络(a)的FD值3,不符合成为FS的条件。
现假设Router D与Router B之间的链路断了。从前面的Router D拓扑表可以知道,它原来只有Router B这一个Successor,没有其它FS,所以Router D需要使用DUAL计算新的路由到达网络(a)。同时从拓扑表中删除通过Router B到达网络(a)的拓扑表项,如图11-10所示。
图11-10 断开Router D与Router B之间的链后,Router D删除通过Router B的拓扑表项
此时Router D因为没有可到达网络(a)的可行路径了,所以成为活跃状态(Active),开始向它的其它两个邻居路由器Router C和Router E发送查询包,声明自己没有到达网络(a)的FS了,问它们是否有可替代的路径。当Router E收到这个来自同时为自己的Successor的Router D的查询包后,从自己的拓扑表中删除通过Router D到达网络(a)所对应的拓扑表项。如图11-11所示。
图11-11 Router D成为活跃状态,Router E删除通过Router D的拓扑表项
因为此时Router E已再也没有其它路径到达网络(a)了,所以Router E也转换为活跃状态。而当Router C收来这个来自为自己FS的Router D的查询包后,从自己的拓扑表中删除通过Router D到达网络(a)所对应的拓扑表项。但是它不会转换为活跃状态,因为它此时仍有SuccessorRouter B可以到达网络(a)。然后,Router C对Router D的查询进行响应,告诉Router D它还有一条有效的路径到达网络(a)。但此时Router E也为活跃状态了,所以它在收到来自Router D的查询包后仅转发到Router C,询问是否有替代路径到达网络(a)。如图11-12所示。
图11-12 Router E成为活跃状态,Router C删除通过Router D的拓扑表项
Router D在收到Router C发来的应答包后,在自己的拓扑表中添加Router C的拓扑表项,同时标识Router C为Successor。与此同时,Router C会对Router E发来的查询包进行响应,同样告诉它有一条路径可以达到网络(a)。这样Router E也会把Router C作为Successor,并向Router D应答,此时的从原来的3改变成了4。如图11-13所示。
图11-13 Router D添加通过Router C和Router E的拓扑表项,Router E添加通过Router C的拓扑表项
当Router D收到Router E发来的应答后(一直要等到收到所有邻居路由器发来的应答),更新拓扑表。此时它有两条可行的路径到达网络(a),一条是以Router C为当前Successor的路径,另一条是以Router E为FS的备用路径。此时的从原来的2改变成了5。如图11-14所示。
图11-14 网络重新收敛后的拓扑结构和拓扑表