Chapter6 Enhanced IGRP(EIGRP) and Open Shortest Path First(OSPF)
EIGRP Features and Operation
EIGRP 是 1 种无分类(classless),增强的距离向量路由协议,和 IGRP 类似,EIGRP 也使用 AS,
但是和 IGRP 不同的是,EIGRP 在它的路由更新信息中要包含子网掩码的信息.这样,在我们设
计的网络的时候,就允许我们使用 VLSM 和 summarization.EIGRP 有时候也算是混合型路由
协议,因为它同时具有了距离向量路和链路状态的一些特征:比如它不像 OSPF 那样发送链路
状态包而发送传统的距离向量更新;EIGRP 也有链路状态协议的特征比如它在相邻 router 启
动的时候同步路由表,然后只在拓扑结构发生变化的时候发送 1 些更新.这样就使得EIGRP 能
够很好的在 1 个大型网络中工作.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.如下图: