EIGRP:Ciso增强型内部网关路由选择协议
EIGRP简介:
- Cisco私有;
- 无类别距离矢量协议;
- 跨层封装协议,
- 封装于网络层--协议号88;
- 组播更新:224.0.0.10 支持非等开销负载均衡
- 增量更新(部分更新)----仅触发、无周期 ---hello机制必须存在,触发更新量小(路由非拓扑),可靠性极高
EIGRP的4大组件:
保活机制--hello
PDM---支持多种网络层协议
RTP协议---可靠协议,借鉴TCP的4种可靠传输机制--确认、重传、排序、流控(更新数据不得超过占用链路总带宽的百分之50)
DUAL--扩散更新、弥散更新算法
EIGRP的数据包类型:
Hello包 : 用于邻居的发现,建立,保活 使用组播224.0.0.10每5秒发送一次。
hello time 5s或60s hold time 为hello time的3倍
接口带宽小于或等于2.048M时hello time 为60s 大于为5s;
更新包: 携带路由条目; 目标网络号+度量
查询包 :(Query)
应答包:以单播方式可靠地应答查询数据包。
确认包(ACK): 确认更新包、查询包、应答包.以单播方式发送。用来确认UPDATE、QUERY以及REPLY数据包。ACK分组是上面3种数据包可靠传输的保障。
EIGRP的工作过程:
- 当启动配置完成后,进行hello的收发;当接收到邻居的hello包后,建立邻居关系,生成邻居表;
- 当邻居关系建立后,邻居间使用更新包共享本地的路由表信息,共享过程中需满足水平分割规则;
- 各个邻居间的路由共享完成后,设备上生成拓扑表;
- 本地到达的最佳及备份路径装载于拓扑表中;
- 默认将最佳路径加载于本地的路由表中,完成收敛;
注: 收敛完成后,仅hello包周期保活即可;没有周期更新;
结构突变:
- 新增网段---直连新增网段设备,直接使用更新包共享路由到邻居即可。
- 断开网段---直连断开网段的设备向所有的邻居发送查询包,该查询包将逐一通过邻居扩散到全网;若依然存在可达路径,那么由直连可达路径的设备返还应答包到全网,让所有路由器更新;若查询包扩散到网络末梢,依然没有可达路径,由末梢设备返回应答包到全网,更新所有设备;
- 无法沟通----无法接收到邻居的hello包,hold time到时时,断开邻居关系,删除邻居表;
删除通过该邻居学习到的所有路由信息;
切记:更新包、查询包、应答包均基于RTP工作;在接收到这些数据包时,本地必须进行确认,若未收到邻居的ACK,将进行重传,默认最大重传16次;若16次重传依然没有确认,将直接断开邻居;是否能够重建邻居关系,依赖hello包;
配置:
r1(config)#router eigrp ? 启动时需要配置AS号;
<1-65535> Autonomous system number 全网一致的进程号
r1(config)#router eigrp 90
r1(config-router)#no auto-summary //DV协议建议关闭自动汇总
宣告:1、激活 2、路由
r1(config-router)#network 1.0.0.0
r1(config-router)#network 124.1.1.1 0.0.0.0
即可主类宣告,也可以使用反掩码精确匹配
启动配置完成后,所有设备间收发hello包,建立邻居关系,生成邻居表:
r2#show ip eigrp neighbors
IP-EIGRP neighbors for process 90
- H Address Interface Hold Uptime SRTT RTO Q Seq
- (sec) (ms) Cnt Num
- 2 124.1.1.4 Fa0/0 11 00:00:54 36 216 0 8
- 1 23.1.1.2 Se1/1 14 00:01:08 34 204 0 11
- 0 124.1.1.1 Fa0/0 14 00:01:19 233 1398 0 8
下一跳 出接口
SRTT平均往返时间:5min内发出更新、查询、应答后收到ACK的平均间隔时间
RTO 重传超时时间:基于重传到第几次,和SRTT自动计算所得
Q CNT :标记还有多少条路由正常重传中;
当邻居关系建立后,邻居间使用更新包共享路由条目;生成拓扑表:
r3#show ip eigrp topology //本地到达目标的最佳和备份路径;
r3#show ip eigrp topology all-links //查看本地到达路由的所有学习路径;
r3(config)#interface s1/1
r3(config-if)#bandwidth 800
修改接口的参考带宽;参考带宽不影响接口的实际传输带宽;将影响协议对接口的判定
【1】关于拓扑表中的字母
P 1.1.1.0/24, 1 successors, FD is 2300416
via 23.1.1.1 (2300416/156160), Serial1/0
via 34.1.1.2 (3842560/156160), Serial1/1
前端字母P标识该条目已经收敛完成,且最佳路径一被加载于路由表中
A 2.2.2.0/24, 1 successors, FD is Inaccessible, Q
1 replies, active never, query-origin: Local origin
Remaining replies:
via 23.1.1.2, r, Serial1/1
前端字母A标识该条目正在收敛中;后端Q部分的字母,标识具体卡在哪个阶段
Q 本地已经发出查询,但是没有收到ACK
Qr 标识已经收到ACK,当未收到应答
QR标识已经收到应答,还未回复ACK
U 标识已经回复ACK --若收到的应答中为新的的路径,那么A转P,最佳路径加载路由表
若收到的应答中为没有可达路径,删除条目
在特殊情况下,EIGRP协议将可能卡在活动状态;
- 网络深度过深
- 错误的配置或策略导致
默认存在活动计时器,计时3min;活动计时器到时时将删除条目,同时断开邻居关系;
可能导致错误的邻居断开,使得网络不稳定;
解决方案:
- 针对网络深度过深--建议增大计时器
r2(config)#router eigrp 90
r2(config-router)#timers active-time ?
<1-65535> EIGRP active-state time limit in minutes
disabled disable EIGRP time limit for active state
- 在IOS12以上版本中,添加卡在活动状态计时器
当活动计时器行进到一半时,本地发出卡在活动状态查询,若能收到回复,那么在活动计时器到时时,仅删除条目不断开邻居关系;
【2】关于拓扑表中的数字
P 1.1.1.0/24, 1 successors, FD is 2300416
via 23.1.1.1 (2300416/156160), Serial1/0
via 34.1.1.2 (3842560/156160), Serial1/1
FD AD
FD:可行距离--本地到达目标的度量值
AD:通告距离--本路径中的邻居(下一跳)到达目标的度量值
FC:可行条件---成为备份路径的条件---备份路径的AD必须小于且不等于最佳路径的FD
非等开销负载均衡:当到达同一目标地址时,若存在两条度量相似的路径时,可以让设备将流量按比例延这些路径同时传输;在EIGRP协议中,只能通过最佳和备份路径实现;
r3#show ip protocols
EIGRP maximum metric variance 1 默认差异值为1,标识仅支持等开销负载均衡
差异值=备份路径的FD/最佳路径的FD=向上取整
若修改差异值为2,那么两倍关系内的备份路径将进入路由表和最佳路径一起传输数据;
r3(config)#router eigrp 90
r3(config-router)#variance 2 修改差异值
正常更新包收敛后,协议会将拓扑中最佳路径加载于路由表内:
字母D - EIGRP, EX - EIGRP external
D 标识正常通过EIGRP协议学习产生的路由;
D EX 标识通过其他协议或其他进程学习后,通过重发布技术导入EIGRP内的路由
管理距离:
字母D标记为内部路由---管理距离为90
字母D EX标识为外部路由--管理距离为170
度量:复合度量--多种参数共同构建
Formula with default K values (K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0):默认k值
r1(config)#router eigrp 90
r1(config-router)#metric weights 0 1 1 1 1 1 修改K值
K值为权重值:全网所有设备必须一致;该参数将影响带入运算的具体数据;
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值时,度量=带宽+延时
带宽=(10^7/整段路径最小带宽)*256
延时=(控制层面所有入口延时的总和/10)*256
256为放大因子:
- 让EIGRP协议兼容IGRP协议
- 放大参数便于比较
切记:K值的修改不是用于直接干涉选路;而是所有度量值,扩大eigrp的工作半径;
Eigrp工作半径为--100跳 度量不得超过2147483647;还可以拉入其他的参数来参与运算;
真正直接影响选路的关键位---带宽、延时、负载、可靠性
备注:EIGRP邻居间hello包必须用三个参数完成一致,才可以建立邻居关系;
- K值 2、AS号 3、认证字段
- EIGRP扩展配置
- 状态机
邻居关系刷新;EIGRP为增量更新协议,若需要修改之前的更新数据时,将刷新邻居关系;先让邻居删除原有信息,然后再接收新的路由;
- 认证
先配置秘钥库
r2(config)#key chain a
r2(config-keychain)#key 1
r2(config-keychain-key)#key-string cisco123
再直连邻居的接口上调用
r2(config)#interface s1/1
r2(config-if)#ip authentication key-chain eigrp 90 a
r2(config-if)#ip authentication mode eigrp 90 md5
注:eigrp进行支持MD5认证,故在没有修改模式时认证不生效
- 汇总--在更新源路由上所有更新发出的接口上配置
r3(config)#interface s1/1
r3(config-if)#ip summary-address eigrp 90 3.3.0.0 255.255.248.0
汇总后,eigrp将自动生成空接口防环路由
- 被动接口---只接收不发送路由协议信息;仅用于连接用户的接口,不得用于连接邻居的接口
r3(config)#interface s1/1
r3(config-if)#ip summary-address eigrp 90 3.3.0.0 255.255.248.0
- 加快收敛 若hello time 为5s时不建议加快收敛;若为60s可以进行修改;
r3(config)#interface s1/1
r3(config-if)#ip hello-interval eigrp 90 5
r3(config-if)#ip hold-time eigrp 90 15
邻居间建议一致
- 缺省路由
【1】在边界路由器上先配置一条静态缺省指向ISP;然后再在边界路由上所有连接内网的接口上进行手工汇总--汇总地址为0.0.0.0/0
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip summary-address eigrp 90 0.0.0.0 0.0.0.0
【2】在边界路由器上先配置一条静态缺省指向ISP;然后使用重发布技术,将这条静态缺省路由共享到EIGRP域内
r1(config)#router eigrp 90
r1(config-router)#redistribute static
- 干涉选路 ---偏移列表;在控制层面流量的进或出的接口上,抓取路由信息,然后增大其中的度量值,最终影响选路;
r1(config)#access-list 1 permit 4.4.4.0 抓取网络号
r1(config)#router eigrp 90
r1(config-router)#offset-list 1 in 21 fastEthernet 0/0
ACL编号 方向 增加的数值 对应的接口