EIGRP的全名是Enhance Interio Gateway Routing Protocol从字面就可以看出是加强型的IGRP,也就是再度改良IGRP而成EIGRP,EIGRP结合了距离向量(distance Vector)和连结――状态(Link-State)的优点以加快收敛,所使用的方法是DUAL(Diffusing Update Aigorithm),当路径更改时DUAL会传送变动的部分而不是整个路径表,而Router都有储存邻近的路径表,当路径变动时,Router可以快速地反应,EIGRP也不会周期性地传送变动讯息以节省频宽的使用,另外值得特别指出的是EIGRP具有支持多个网络层的协议,例如IP层对:IP层、IPX层对IPX层、AppleTalk的RTMP对RTMP,如下图:
EIGRP整合(Integrated)了IP、AppleTalk和IPX三种协议。
EIGRP是最典型的平衡混合路由选择协议,它融合了距离矢量和链路状态两种路由选择协、议的优点,使用散射更新算法 (DUAL),实现了很高的路由性能。
EIGRP协议的特点如下。
运行EIGRP的路由器之间形成邻居关系,并交换路由信息。相邻路由器之间通过发送和接收Hello包来保持联系,维持邻居关系。Hello包的发送间隔默认值为5s钟。
●运行EIGRP的路由器存储所有与其相邻路由器的路由表信息,以便快速适应路由变化;
●如果没有合适的路由存在,EIGRP将查询其相邻的路由器,以便发现可以替换的路由。
●采用不定期更新,即只在路由器改变计量标准或拓扑出现变化时发送部分更新信息。
●支持可变长子网掩码 (VLSM)和不连续的子网,艾持对自动路由汇总功能的设定。
●支持多种网络层协议,除IP协议外,还支持IPX、AppleTalk等协议。
●在运行EIGRP的路由器内部,有一个相邻路由器表、一个拓扑结构表和一个路由表。
●使用DUAL算法,具有很好的路由收敛特性。
●具有相同自治系统号的EIGRP和IGRP之间彼此交换路由信息。
EIGRP协议的配置与IGRP配置有相似之处,但由于它对VLSM的支持和众多的其他特性 使得在高级配置以及查看和监测命令方面与IGRP有许多不同之处,这是在配置EIGRP的实验中应注意的。
EIGRP概述
加强型内部网关路由协议(以下简称“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 才重新计算路由,选择新的后继路由器。
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公司的路由器。