加强型内部网关路由协议(以下简称“EIGRP”)是Cisco公司开发的距离矢量路由协议,支持IP、IPX等多种网络层协议。由于TCP/IP是当今网络中最常用的协议,故本文只讨论IP网络环境中的EIGRP。
EIGRP是一个平衡混合型路由协议(Cisco公司创造的术语),既有传统的距离矢量协议的特点:路由信息依靠邻居路由器通告,遵守路由水平分割和反向毒化规则,路由自动归纳,配置简单,又有传统的链路状态路由协议的特点:没有路由跳数的限制,当路由信息发生变化时,采用增量更新的方式,保留对所有可能路由(网络的拓扑结构)的了解、支持变长子网掩码、路由手动归纳。该协议同时又具有自己独特的特点:支持非等成本路由上的负载均衡,采用差分更新算法(DUAL)在确保无路由环路的前提下,收敛迅速。因而适用于中大型网络。
EIGRP的术语和概念
1.在EIGRP中,有五种类型的数据包:
HELLO:以组播的方式发送,用于发现邻居路由器,并维持邻居关系。
更新(update):当路由器收到某个邻居路由器的第一个HELLO包时,以单点传送方式回送一个包含它所知道的路由信息的更新包。当路由信息发生变化时,以组播的方式发送一个只包含变化信息的更新包。注意,两个更新包的内容不一样。
查询(query):当一条链路失效,路由器重新进行路由计算但在拓扑表中没有可行的后继路由时,路由器就以组播的方式向它的邻居发送一个查询包,以询问它们是否有一条到目的地的可行后继路由。
答复(reply):以单点的方式回传给查询方,对查询数据包进行应答。
确认(ACK):以单点的方式传送,用来确认更新、查询、答复数据包,以确保更新、查询、答复传输的可靠性。
2.可行距离(feasible distance):到达一个目的地的最短路由的度量值。
3.后继 ( successor):后继是一个直接连接的邻居路由器,通过它具有到达目的地的最短路由。通过后继路由器将包转发到目的地。
4.通告距离(advertise distance):相邻路由器所通告的相邻路由器自己到达某个目的地的最短路由的度量值。
5.可行后继 (feasible successor):可行后继是一个邻居路由器,通过它可以到达目的地,不使用这个路由器是因为通过它到达目的地的路由的度量值比其他路由器高,但它的通告距离小于可行距离,因而被保存在拓扑表中,用做备择路由。
6.可行条件 (feasible conditon) :上述四个术语,构成了可行条件,是EIGRP路由器更新路由表和拓扑表的依据。可行条件可以有效地阻止路由环路,实现路由的快速收敛。
7.活跃状态 (active state):当路由器失去了到达一个目的地的路由,并且没有可行后继可利用时,该路由进入活跃状态,是一条不可用的路由。当一条路由处于活跃状态时,路由器向所有邻居发送查询来寻找另外一条到达该目的地的路由。
8.被动状态 (passive state):当路由器失去了一条路由的后继而有一个可行后继,或者再找到一个后继时,该路由进入被动状态,是一条可用的路由。
EIGRP的运行
初始运行EIGRP的路由器都要经历发现邻居、了解网络、选择路由的过程,在这个过程中同时建立三张独立的表:列有相邻路由器的邻居表、描述网络结构的拓扑表、路由表,并在运行中网络发生变化时更新这三张表。
1.建立相邻关系
运行EIGRP的路由器自开始运行起,就不断地用组播地址从参与EIGRP的各个接口向外发送HELLO包。当路由器收到某个邻居路由器的第一个HELLO包时,以单点传送方式回送一个更新包,在得到对方路由器对更新包的确认后,这时双方建立起邻居关系。
2.发现网络拓扑,选择最短路由
当路由器动态地发现了一个新邻居时,也获得了来自这个新邻居所通告的路由信息,路由器将获得的路由更新信息首先与拓扑表中所记录的信息进行比较,符合可行条件的路由被放入拓扑表,再将拓扑表中通过后继路由器的路由加入路由表,通过可行后继路由器的路由如果在所配置的非等成本路由负载均衡的范围内,则也加入路由表,否则,保存在拓扑表中作为备择路由。如果路由器通过不同的路由协议学到了到同一目的地的多条路由,则比较路由的管理距离,管理距离最小的路由为最优路由。
3.路由查询、更新
当路由信息没有变化时,EIGRP邻居间只是通过发送HELLO包,来维持邻居关系,以减少对网络带宽的占用。在发现一个邻居丢失、一条链路不可用时,EIGRP立即会从拓扑表中寻找可行后继路由器,启用备择路由。如果拓扑表中没有后继路由器,由于EIGRP 依靠它的邻居来提供路由信息,在将该路由置为活跃状态后,向所有邻居发送查询数据包。
如果某个邻居有一条到达目的地的路由,那么它将对这个查询进行答复,并且不再扩散这个查询,否则,它将进一步地向它自己的每个邻居查询,只有所有查询都得到答复后,EIGRP 才重新计算路由,选择新的后继路由器。