前面我们对EIGRP路由协议进行了简单的介绍,通过文章,我想大家也对这个概念有了掌握。现在我们再来对它的运行情况做个分析。那么首先说一下运行。初始运行EIGRP路由协议的路由器都要经历发现邻居、了解网络、选择路由的过程,在这个过程中同时建立三张独立的表:列有相邻路由器的邻居表、描述网络结构的拓扑表、路由表,并在运行中网络发生变化时更新这三张表。
1.建立相邻关系
运行EIGRP路由协议的路由器自开始运行起,就不断地用组播地址从参与EIGRP路由协议的各个接口向外发送HELLO包。当路由器收到某个邻居路由器的***个HELLO包时,以单点传送方式回送一个更新包,在得到对方路由器对更新包的确认后,这时双方建立起邻居关系。
2.发现网络拓扑,选择最短路由
当路由器动态地发现了一个新邻居时,也获得了来自这个新邻居所通告的路由信息,路由器将获得的路由更新信息首先与拓扑表中所记录的信息进行比较,符合可行条件的路由被放入拓扑表,再将拓扑表中通过后继路由器的路由加入路由表,通过可行后继路由器的路由如果在所配置的非等成本路由负载均衡的范围内,则也加入路由表,否则,保存在拓扑表中作为备择路由。如果路由器通过不同的路由协议学到了到同一目的地的多条路由,则比较路由的管理距离,管理距离最小的路由为***路由。
3.路由查询、更新
当路由信息没有变化时,EIGRP邻居间只是通过发送HELLO包,来维持邻居关系,以减少对网络带宽的占用。在发现一个邻居丢失、一条链路不可用时,EIGRP立即会从拓扑表中寻找可行后继路由器,启用备择路由。如果拓扑表中没有后继路由器,由于EIGRP 依靠它的邻居来提供路由信息,在将该路由置为活跃状态后,向所有邻居发送查询数据包。
如果某个邻居有一条到达目的地的路由,那么它将对这个查询进行答复,并且不再扩散这个查询,否则,它将进一步地向它自己的每个邻居查询,只有所有查询都得到答复后,EIGRP路由协议才重新计算路由,选择新的后继路由器。
4.EIGRP运行的验证
在下图所示的网络拓扑中,路由器进行了基本的EIGRP配置,所有路由器都属于EIGRP自治系统1,未配置其他路由协议,我们用运行EIGRP的相关命令获得的有关信息来验证EIGRP的运行。
我们以路由器R2为例来验证EIGRP路由协议是如何了解网络、选择路由的。
对于目的地192.168.1.0、172.16.1.4,路由器R2都分别收到了它的两个邻居路由器R3(10.1.1.3)和R4(172.16.1.2)通告的路由。到目的地192.168.1.0的最短路由是通过R3,可行距离是20563200,但是R4的通告距离(281600)小于可行距离,符合可行条件,因而R4是该路由的可行后继路由器。到目的地172.16.1.4的最短路由是通过R3,可行距离是20537600,通过R4的通告距离(20537600)等于(注意:不小于)可行距离,不符合可行条件,因而R4不能作为该路由的可行后继路由器。
EIGRP在缺省情况下,是等成本路由上的负载均衡,因而在路由表中到目的地 192.168.1.0的路由只有通过路由器R3(10.1.1.3)一条,备择路由(R4)保存在拓扑表中。因为是通过内部EIGRP学到的路由,故路由的管理距离为90。如果配置了非等成本负载均衡,备择路由也将被加入路由表。
***要强调的是,由于EIGRP路由协议是Cisco公司私有的路由协议,因而本文所探讨的内容都是基于Cisco公司的路由器。