动态路由协议—EIGRP
目录
一、概述
二、EIGRP的四大组件
三、EIGRP的五种数据包
四、EIGRP的工作过程
五、DUAL算法
六、配置
6.1 基本配置
6.2 问题:卡在活动状态
6.3 拓扑表中的数字
6.4 非等开销负载均衡
6.5 度量
七、EIGRP的扩展配置
7.1 状态机
7.2 被动接口
7.3 认证
7.4 手工汇总
7.5 缺省路由
7.6 修改计时器
7.7 干涉选路
八、EIGRP协议的小特性
一、概述
EIGRP被视为一种无类别距离向量型协议;它采用跨层封装技术,并使用编号为88的协议;该协议属于Cisco内部特有的规范性协议。其采用增量式更新策略,在此模式下仅进行必要的数据包更新操作而无需定期发送数据包;小规模的数据报(DV)能够有效减少每次传输的数据量从而提升传输效率;该协议具有较高的可靠传输能力能够确保网络运行的稳定性;保持存活机制确保了网络中路由器之间的通信不会中断。

二、EIGRP的四大组件
1. Hello机制:通过Hello包实现邻居关系的探测与维持。
2. PDM能够涵盖多种网络层协议模块。
3. RTP为可靠传输协议,在接收数据块时会进行确认,并按时间顺序排列数据块;若数据块丢失则会进行重传;系统还会实施流量控制,在不超过参考带宽50%的情况下执行该功能。
4. DUAL算法是一种扩散更新算法。
三、EIGRP的五种数据包
- 1.hello数据包 ---在接口带宽小于或等于2.048M时 hello数据传输时间为60秒;当带宽超过2.048M时 hello数据传输时间为5秒; hold时间段为 hello时间段的三倍;直连相邻节点之间必须共享认证字段、AS号码和k值参数才能建立邻居关系。
- 2.更新信息 ---路由信息中包含的目标网络号和度量值。
- 3.查询响应 ---未提供具体内容。
- 4.应答确认 ---未提供具体内容。
- 5.ACK确认 ---系统已成功接收前一个报文。
四、EIGRP的工作过程
- 配置完成之后,在本地向所有运行EIGRP协议的接口发送一个hello报文;如果能够接收到来自其他相邻节点发送的hello报文,则创建互连关系并生成互连列表;
- 记录当前节点的所有相邻节点信息后,在广播更新数据的基础上整合来自各相邻节点的信息并构建网络拓扑结构图;
- 拓扑图上标注出本机至未知网络段的最佳连接及备用连接信息;这些备用连接在主通道失效时无需重新计算最优路径即可启用,并可与主通道一起实现非等开销下的负载均衡;
- 在网络自组成功完成后的维护期仅需 hello 包周期性维持存活状态即可。
结构突变:
1.新增网段:直连新增的设备,向所有邻居发送更新包,然后逐级收敛。
网格段断开时,相关设备会向本地所有相邻节点发起查询数据包的发送请求.随后的数据包逐渐传播至整个网络空间.
结果:
- 查询包抵达直连该网络段的另一台设备处,在这台设备上触发响应包层层向下传播至整个网络,在此过程中其中的所有设备的拓扑表与路由表均发生变化。
- 查询包抵达网络末端节点(每个本地邻居都会发起本地范围内的查询请求),但此时本地节点却无法通过任何通道实现通信;当收到无路径响应后时会触发此响应信号层层向下传播至整个网络,在此过程中所有节点的路由器发生变化。
注:
(1) 最佳路径故障后直接启用备份路由的规则---不针对直连断开网段,因为断开网段必须使用查询和应答进行全网扩散收敛;实际该规则针对基于正在收敛路径递归所得的其他路由;----断开A网段,必须收敛A网段,那些以A网段为下一跳的路由可以启用备份路径
(2) 更新包、查询包、应答包均基于RTP协议进行传输
RTP要求只要接收这三种包,必须进行ACK确认、排序、流控;若不能确认,必须重传(一般为单播),默认最大重传16次,若依然无确认,将断开邻居关系,依赖hello包来重新建立邻居关系。
(3) 无法沟通---hold time到时候,断开邻居关系,删除从该邻居学习到的所有信息;之后是否能够建邻,关注hello包。
五、DUAL算法
1、Hello Keepalive机制
2、成功的关键路径(即最佳关键路径)是从本地到达目标最小度量值。
3、可行成功的可接受性条件(相当于备份性条件)是其通告距离(AD)必须严格小于且不等于最佳路线的可行距离(FD)。
注:
- FD:可行距离——本地节点到目标节点的距离
- AD:通告距离——经过某条路由后下一跳设备到目标节点的距离
- FC:可行性条件——成为可接受性条件的前提是——可接受性条件下的通告距离必须严格小于且不等于最佳路线的可行距离
3、 当主路径发生故障且本地未提供备用路径时,则必须向本地所有邻居(除最佳路径中的下一跳设备)发送查询包;这些邻居接收到该查询后会立即向本地其他邻居传播该查询包;当信息传播至网络边缘后,由边缘设备逐级返回应答以清除整个网络缓存;如果在未到达边缘之前就已经找到了新的路径,则也会直接返回应答以实现收敛;发出此类型查询的前提条件是:本地存在直连路径故障或最佳路径已失效且缺乏备用通道。
注: 假设A设备已对1网段进行了收敛响应(其中1网段又是B设备通往2网段的最佳或备份路径),那么当A完成对1网段的处理时(即1网段已被清空),B设备也会相应地发起对2网段的收敛操作。这里所说的"末梢设备"是指那些能够通过非本地直连到达外部网络的所有本地邻居。
六、配置
6.1 基本配置
R1(config)#router eigrp 90 //启动时需要配置AS号,理解为全网一致的进程号;
R1(config-router)#no auto-summary //DV协议建议关闭自动汇总
宣告的作用:
1、激活协议(针对邻居间的直连接口)
2、传递路由(连接用户的接口,环回类的虚拟接口)
R1(config-router)#network 1.1.1.1 0.0.0.0
R1(config-router)#network 10.0.0.0
EIGRP可以使用反掩码精确匹配,也可以直接宣告主类;
启动配置完成后,邻居间组播使用hello包建立邻居关系,生成邻居表:
R3#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(90)
H Address Interface Hold Uptime SRTT RTO Q Cnt Seq Num
(sec) (ms)
1 34.1.1.2 Se1/1 12 00:00:02 15 100 0 6
0 23.1.1.1 Se1/0 13 00:00:16 15 100 0 10
邻居ip(下一跳) 直连接口(出接口)
SRTT:平均往返时间---路由更新的延时
RTO:重传超时时间---基于SRTT和重传的具体次数计算所得
Q CNT:收敛包数---若为1,标识有一条路由正在收敛中;
邻居关系建立后,所有邻居间使用更新包,共享路由信息;生成拓扑表:
R3#show ip eigrp topology
P 1.1.1.0/24, 2 successors, FD is 2323456
via 23.1.1.1 (2323456/409600), Serial1/0
via 34.1.1.2 (2323456/409600), Serial1/1
1、拓扑表中字母
条目前端使用字母P标识该条目已经收敛完全,且最佳路由已经进入路由表;
A 2.2.2.0/24, 1 successors, FD is Infinity, Q
1 replies, active 00:00:02, query-origin: Local origin
Remaining replies:
via 23.1.1.2, r, Serial1/1
条目前端使用字母A标识活动中,证明该条目正在收敛中,不会出现在路由表内;当条目进行收敛后,条目的后端存在一个字母来标识目前收敛到的具体阶段。
Q :本地已经发出查询包,但还未收到ACK
Qr:本地已经接收到了对端的确认,但还未收到对端的应答
QR:本地收到应答,还未进行ACK
U:本地已经确认,之后基于条目内容进行判断:获取新路径,A转P,没有可达路由,删除条目
6.2 问题:卡在活动状态
条目长期保持A状态:
原因:
- 网络深度过深
- 错误的策略或配置导致
该问题源于活动计时器在达到预设的时间阈值(默认为3分钟)时触发断开与现有邻居关系的行为。这种操作会导致整个网络中的EIGRP协议邻居关系发生全面刷新,并引发通讯不稳定性。具体而言,在活动计时器到时间事件触发后,在此时间段内会切断与现有邻居的关系连接。这种行为不仅会影响单个设备与相邻设备之间的通信连接状态,并且可能导致整个网络中的通信路径发生变化。特别是在大规模网络环境中,这种操作可能会引发一系列连锁反应性的影响。因此,在进行此类操作前必须充分评估其潜在影响并采取适当的安全措施以避免可能出现的问题。
解决方案:
(1)针对网络过深---延长计时器
R2(config)#router eigrp 90
R2(config-router)#timers active-time ?
<1-65535> active state time limit in minutes
disabled disable time limit for active state
R2(config-router)#timers active-time 5
(2)EIGRP在IOS12.1以上增添一个卡在活动状态计时器
在活动计时器进行一半时,向邻居发送卡在活动状态查询,若能收到回复,活动计时器到时时仅删除条目不断开邻居关系;
6.3 拓扑表中的数字
P 1.1.1.0/24, 2 successors, FD is 2323456
via 23.1.1.1 (2323456/409600), Serial1/0
via 34.1.1.2 (2323456/409600), Serial1/1
FD AD
FD:可行距离—本地通过该路径到达目标的度量值
AD:通告距离—该路径上的邻居(下一跳)达到目标的度量值
FC:可行条件---成为备份路径的条件:备份路径的AD小于且不等于最佳路径的FD值
6.4 非等开销负载均衡
(1)将流量延最佳和备份路径按比例同时传输,来提高链路的利用率
R3(config)#interface s1/1
R3(config-if)#bandwidth 800 //修改接口的参考带宽
参考带宽,不影响设备的实际带宽;仅用于影响路由协议选路
(2)Maximum metric variance 1 默认差异值为1,默认EIGRP协议仅支持等开销负载均衡;
差异值:备份路径的FD/最佳路径的FD 结果向上取整
通过修改差异值,可以实现非等开销负载均衡
R3(config)#router eigrp 90
R3(config-router)#variance 2 //修改默认的差异值
默认EIGRP协议将最佳路径加载到路由表中:
(3)字母D - EIGRP, EX - EIGRP external
D 标识EIGRP协议正常学习的路由
D EX外部路由,由ASBR重发布导入路由
管理距离:D 内部90 D EX外部 170
6.5 度量
EIGRP使用的是复合度量:集中参数混合计算
默认K值:(K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0):
K5为0时:
Metric = [K1 * BW + ((K2 * BW) / (256 – load)) + K3 * delay]
当K5大于0时:
Metric = [K1 * BW + ((K2 * BW) / (256 – load)) + K3 * delay] * [K5 / (reliability + K4)]:
K值为权重值,其意义在于决定公式中哪些参数参与运算;
默认K值下:度量=带宽+延时
带宽=(10^7/整段路径最小带宽)*256
延时=(控制层面所有入口延时的总和/10)*256
注:256为放大因子—放大数值便于比较,兼容IGRP协议;
修改K值时,全网所有设备需要修改一致;k值仅决定哪个参数参与运算,并不能直接干涉选路;故若需要干涉选路,使用路由策略或者修改运算参数(如带宽、延时、可靠性等);另修改K值还可以扩大eigrp协议的工作半径;EIGRP协议除100跳以外,还存在最大度量值2147483647;
R3(config-router)#metric weights 0 1 0 1 0 0 //修改k值;
七、EIGRP的扩展配置
7.1 状态机
因为EIGRP采用增量式更新机制,在修改相关路由参数后必须刷新相关路由表以导入新协议并清除旧数据;随后需汇总新旧数据进行验证并实施相应的策略评估
7.2 被动接口
仅用于接收不发送路由协议信息的接口用于连接用户节点而不得作为邻居之间通信的接口使用
R3(config)#router eigrp 90
R3(config-router)#passive-interface ethernet 0/0
7.3 认证
EIGRP协议仅支持MD5认证
R2(config)#key chain ccna
R2(config-keychain)#key 1
R2(config-keychain-key)#key-string cisco123
R2(config-keychain-key)#exit
R2(config-keychain)#exit
R2(config)#interface s1/1
R2(config-if)#ip authentication key-chain eigrp 90 ccna
R2(config-if)#ip authentication mode eigrp 90 md5
注:必须修改为MD5模式,否则认证不生效
7.4 手工汇总
在更新源路由器上,所有更新发出的接口上进行配置
R3(config)#int s1/0
R3(config-if)#ip summary-address eigrp 90 3.3.0.0 255.255.248.0
在汇总源设备自动生成空接口防环路由
7.5 缺省路由
(1)在边界路由器上,连接内网的接口上进行汇总配置:汇总地址0.0.0.0/0
R1(config)#interface ethernet 0/0
R1(config-if)#ip summary-address eigrp 90 0.0.0.0 0.0.0.0
注:此时需要手工在边界路由器上缺省指向ISP
(2)重发布静态
将边界路由器上的默认 routes 配置为指向 ISP 并通过 route-assisted 机制实现该 routes 的传播至 EIGRP 网络中
R1(config)#router eigrp 90
R1(config-router)#redistribute static
(3)说明做法:首先,在边界路由器上静态设置为连接至ISP网络;接着,在EIGRP协议中声明默认路由
R1(config)#router eigrp 90
R1(config-router)#network 0.0.0.0
注:宣告0.0.0.0时,同时本地所有接口均被宣告
7.6 修改计时器
R1(config)#interface s1/1
R1 (config-if)#ip hello-interval eigrp 90 5
R1(config-if)#ip hold-time eigrp 90 15
7.7 干涉选路
使用偏移列表,加大控制层面流量的度量值(方法同RIP的干涉选路)
抓取路由
R1(config)#access-list 1 permit 3.0.0.0
R1(config)#router eigrp
R1(config-router)#offset-list 1 in 10000 serial 1/1
ACL 方向 增加的度量 对应的接口
八、EIGRP协议的小特性
1、EIGRP的接口带宽占用率
默认仅占用了参考带宽的一半;如果有人错误地调整了参考带宽与实际物理带宽不再匹配,则可能导致资源过度占用或传输效率下降的情况出现。
R2(config)#interface serial 1/1
R2(config-if)#ip bandwidth-percent eigrp 90 300 (占用率百分之300)
2、EIGRP的查询机制
当最佳路径出现故障时:
同时本地也没有备用路径。
路由器进入了活跃状态。
查询包被发送给所有邻居 router,并且不包括与当前 router 一跳之内的 router。
如果邻居也未收到该路由信息,则查询包会继续向外传播。
当查询包到达最末端的节点时:完成回复收敛过程。
3、复杂网络中的查询包管理
在中心与站点之间的拓扑结构中,在本地节点之间无需将中心节点延伸至所有站点节点进行查询,请确保将范围限定在本地节点之间。
- 汇总--当中心站点向分支站点传输路由信息时,系统会完成路径规划信息的汇总与发送;随后若发现中心站点所在的网络段出现故障,系统会发起查询请求,但由于分支节点仅掌握该节点范围内的汇总数据,因此只能返回该路径不可用的结果;然而这种处理方式可能会导致所谓的"路由黑洞"现象出现。
- 根据EIGRP协议的规定,位于端到端路径规划中的末端部分(即末梢区域)并不会发送查询包出去
R3(config)#router eigrp 90
R3(config-router)#eigrp stub
R3(config-router)#eigrp stub ?
connected Do advertise connected routes
leak-map Allow dynamic prefixes based on the leak-map
receive-only Set receive only neighbor
redistributed Do advertise redistributed routes
static Do advertise static routes
summary Do advertise summary routes
<cr>
(扩展命令,可以手动设置一些不传递给邻居的路由)
