EIGRP Features and Operation
EIGRP是1种无分类(classless),增强的距离向量路由协议,和IGRP类似,EIGRP也使用AS,但是和IGRP不同的是,EIGRP在它的路由更新信息中要包含子网掩码的信息.这样,在我们设计的网络的时候,就允许我们使用VLSM和summarization.EIGRP有时候也算是混合型路由协议,因为它同时具有了距离向量路和链路状态的一些特征:比如它不像OSPF那样发送链路状态包而发送传统的距离向量更新;EIGRP也有链路状态协议的特征比如它在相邻router启动的时候同步路由表,然后只在拓扑结构发生变化的时候发送1些更新.这样就使得EIGRP能够很好的在
1个大型网络中工作.EIGRP支持的跳数多达255.EIGRP的主要特点如下:
1.通过PDMs(Protocol-Dependent Module)来支持IP,IPX和AppleTalk
2.有效的邻router的发现
3.通过可靠传输协议(Reliable Transport Protocol,RTP)进行通讯
4.通过扩散更新算法(Diffusing Update Algorithm,DUAL)来选择最佳路径
Protocol-Dependent Module
EIGRP的1大特点是它可以支持几种网络层协议:IP,IPX和AppleTalk等.能像EIGRP那样支持数种网络层协议的还有Intermediate System-to-Intermediate System(IS-IS)协议,但是这个协议只支持IP和Connectionless Network Service(CLNS).EIGRP通过PDMs来支持不同的网络层协议.每个EIGRP的PDM保持1个单独的路由信息表来装载某种协议(比如IP)的路由信息.也就是有IP/EIGRP表,IPX/EIGRP的表和AppleTalk/EIGRP表
Neighbor Discovery
在运行了EIGRP的router彼此进行交换信息之前,它们首先必须成为邻居(neighbor).建立邻居关系必须满足以下3个条件:
1.Hello信息或接受收ACK
2.AS号匹配
3.K值
链路状态协议趋向于使用Hello信息来建立邻居关系,它不会像距离向量那样周期性的发送路由更新.为了保持邻居关系,运行了EIGRP的router必须持续从邻居那里收到Hellos
如果不在1个AS内,router之间是不会共享路由信息的,也不会建立邻居关系.这样做的优点是在大型网络中可以减少特定某个AS内路由信息的传播
当EIGRP发现新邻居的时候,就开始通告整个路由表给别的router,当所有的router都知道新成员的加入,学习到新的路径以后,从那开始,路由表中有变动的部分才会传播给别的router.当router接收到邻居的更新以后,把它们保存在本地数据库表里
看下几个术语:
1.可行距离(feasible distance):到达一个目的地的最短路由的度
2.后继(successor):后继是一个直接连接的邻居router,通过它具有到达目的地的最短路由.通过后继router将包转发到目的地
3.通告距离(reported distance):相邻router所通告的相邻router自己到达某个目的地的最短路由的度
4.可行后继(feasible successor):可行后继是一个邻居router,通过它可以到达目的地,不使用这个router是因为通过它到达目的地的路由的度比其他router高,但它的通告距离小于可行距离,因而被保存在拓扑表中,用做备择路由
Reliable Transport Protocol(RTP)
EIGRP使用一种叫做RTP的私有协议,来管理使用了EIGRP的router之间的通信,如RTP的名字,可靠(reliable)即为这个协议的关键.RTP负责EIGRP数据包到所有邻居的有保证和按顺序的传输.它支持多目组播或单点传送数据包的混合传输/出于对效率的考虑.只有某些E IGRP数据包被保证可靠传输.RTP确保在相邻router间正在进行的通信能够被维持.因此,它为邻居维护了一张重传表.该表指示还没有被邻居确认的数据包.未确认的可靠数据包最多可以被重传1 6次或直到保持时间超时,以它们当中时间更长的那个为限.EIGRP所使用的多目组播地址是224.0.0.10
Diffusing Update Algorithm(DUAL)
EIGRP使用DUAL来选择和保持到远端的最佳路径.它能使router判决某邻居通告的一个路径是否处于循环状态,并允许router找到替代路径而无须等待来自其他router的更新.这样做有助于加快网络的汇聚.这个算法顾及以下几点:
1.备份的路由线路
2.支持VLSM
3.动态路由恢复
4.没有发现线路的话发送查询寻找新路线
Using EIGRP to Support Large Networks
EIGRP在大型网络中能够工作的很好,包含了很多优点比如:
1.在1个单独的router上可以支持多个AS
2.支持VLSM和summarization
3.路由发现和保持
Multiple AS
只有AS号相同的router才能共享路由信息.把大型网络分成不同的AS,可以有效的加快汇聚.EIGRP的AD为90,而外部EIGRP(external EIGRP)的AD为170
VLSM Support and Summarization
之前说过EIGRP支持VLSM,也支持不连续子网.什么是不连续子网?,如下图:
如图可以看到,2个子网172.16.10.0/24和172.16.20.0/24由10.3.1.0/24来连接,但是routerA和B认为它们只有网络172.16.0.0
EIGRP支持在任何运行EIGRP的router上summary的手动创建,这样可以减少路由表的体积.EIGRP自动把网络summarize到等级边界,如上图:
Route Discovery and Maintenance
类似一些链路状态的协议,EIGRP通过Hello信息来发现邻居;而它又和距离向量类似,使用传闻路由的机制,即不主动去发现,而是听从别人的信息.EIGRP使用一系列的表来存储信息:
1.邻居表,记录了邻居的一些信息
2.拓扑表,记录了网络中的拓扑状态
3.路由表,根据这个来做路由决定
EIGRP Metrics
EIGRP使用混合度,包含到4个方面:
1.带宽
2.延迟(delay)
3.负载(load)
4.可靠性(reliability)
5.最大传输单元(maximum transmission unix,MTU)
默认情况下EIGRP使用带宽和延迟来决定最佳路径
Configuration EIGRP
配置EIGRP,首先在全局配置模式下使用router eigrp [AS号]命令.接下来再使用network命令定义直接相连的网络.仍然可以像配置IGRP那样使用passive-interface命令来禁止某个接口接收或发送Hello信息.并且记住EIGRP的AD是90
来看1个配置实例,如图:
Router Network Address Interface Address
RouterA 192.168.10.0 fa0/0 192.168.10.1
192.168.20.0 s0/0 192.168.20.1
RouterB 192.168.20.0 s0/0 192.168.20.2
192.168.40.0 s0/1 192.168.40.1
192.168.30.0 fa0/0 192.168.30.1
RouterC 192.168.40.0 s0/0 192.168.40.2
192.168.50.0 fa0/0 192.168.50.1
配置RouterA:
RouterA(config)#router eigrp 10
RouterA(config-router)#network 192.168.10.0
RouterA(config-router)#network 192.168.20.0
RouterA(config-router)#^Z
RouterA#
记住配置EIGRP和配置IGRP十分类似,唯一不同的是EIGRP是无分类路由(classless routing)
配置RouterB:
RouterB(config)#router eigrp 10
RouterB(config-router)#network 192.168.20.0
RouterB(config-router)#network 192.168.30.0
RouterB(config-router)#network 192.168.40.0
RouterB(config-router)#^Z
RouterB#
配置RouterC:
RouterC(config)#router eigrp 10
RouterC(config-router)#network 192.168.40.0
RouterC(config-router)#network 192.168.50.0
RouterC(config-router)#^Z
RouterC#
这样配置看上去好象没什么问题,EIGRP的AD比之前配置的RIPv1和IGRP的低,但是有个问题就是:增加了CPU的负担,而且占用了额外的带宽
还有1点要注意的是自动summarization,router默认会向分级边界进行summarize.如下图:
A的配置如下:
A(config)#router eigrp 100
A(config-router)#netw 172.16.0.0
A(config-router)#netw 10.0.0.0
A(config-router)#no auto-summary
B的配置如下:
B(config)#router eigrp 100
B(config-router)#netw 172.16.0.0
B(config-router)#netw 10.0.0.0
B(config-router)#no auto-summary
使用no auto-summary命令后,运行了EIGRP的router就不会相互进行通告
Verifying EIGRP
在刚才配置好的情况下使用show ip route命令查看路由信息,如下:
RouterA#sh ip route
D 192.168.30.0/24 [90/2172416] via 192.168.20.2, 00:04:36, Serial0/0
注意字母D代表DUAL,即代表EIGRP,AD为90
show ip route eigrp命令只显示路由表中的EIGRP选项
show ip eigrp neighbors:显示所有的EIGRP邻居
show ip eigrp topology:显示EIGRP拓扑表条目,如下:
RouterC#sh ip eigrp topology
P 192.168.40.0/24, 1 successors, FD is 21469856
Via Connected, Serial0
注意前面的P代表passive状态,这样的状态是正常的如果看见的是A即active状态而不是P,说明router失去了到这个网络的路径并且在寻找替代路径