总结
- EIGRP的4大组件(保活机制,PDM,RTP,DUAL)
- EIGRP的数据包(Hello包,更新包,查询包,应答包,ACK包)
- EIGRP的工作过程
- DUAL算法包含的内容
hello保活机制
Success最佳路径
Feasible success备份路径
FD可行距离
AD通告距离
FC可行条件 - 配置
拓扑表每条信息中字母的含义
卡在活动状态
非等开销负载均衡 - 扩展配置
状态机
手工汇总
手工认证
被动接口
缺省路由
在边界路由器上所有连接内网的接口上进行汇总配置
重发布静态路由
宣告缺省路由
default-network做法 - EIGRP协议的小特性
EIGRP的接口带宽占用率
EIGRP的查询机制
末梢管理
EIGRP:增强内部网关路由协议
无类别距离矢量IGP协议;
增量更新(Partial updates)-----仅触发更新,无周期更新-----更新量小(距离矢量DV),可靠性高(可靠传输协议RTP),良好的保活机制(hello),优点:收敛快
复合度量-----多个参数构建一个度量来进行选路
【1】 EIGRP的4大组件
- 保活机制-----hello,5s或60s的hello time,3倍的hold time;
接口带宽小于或等于2.048M为60s hello time;大于2.048M为5s hello time; - PDM-----支持多种网络层协议
- RTP可靠传输协议-----借鉴TCP的4种可靠传输机制-----确认、重传、排序、流控(不会超过接口带宽的50%,50%占比)
- DUAL-----扩散更新(弥散更新算法)
【2】EIGRP的数据包
Hello包-----用于邻居的发现、建立、周期保活邻居关系
更新包update-----邻居间共享路由条目 === 目标网络号+度量值
查询包-----增量更新-----结构的变化
应答包-----增量更新-----结构的变化
Ack包-----确认
【3】EIGRP的工作过程
- 启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表;
- 邻居关系建立后,邻居间使用更新包共享路由信息,生成拓扑表;-----装载最佳和备份路径。
默认将最佳路径加载到路由表;收敛完成,hello包周期保活即可;
结构突变:
1)新增网段-----直连新增网段的设备,向所有邻居发送更新包,然后逐级收敛。
2)断开网段-----直连断开网段的设备,向本地所有邻居发送查询包来收敛该路径;
若该直连网段同时为本地到达某个目标的最佳路径,且没有备份路径,那么也进行查询收敛;
若存在备份路径,那么仅收敛直连网段路由,启用备份路径来访问其他网段;
3)无法沟通-----hold time 到时间时,断开邻居关系,删除所有通过该邻居学习的信息;
能否重新建立邻居关系,关注hello包;
注:查询包、应答包、更新包-----均基于RTP工作-----必须被ACK确认,排序,流控;若没有ack或数据校验将重传,默认最大重传16次;16次后依然没有确认,将直接断开邻居关系,能否重建关系关注hello包
【4】 DUAL算法包含的内容
- hello保活机制
- success-----成功路径(最佳路径),从本地到达目标最小度量值。
Feasible success-----可行成功路径-----备份路径-----备份路径的AD值小于不等于最佳路径的FD值。
FD:可行距离,本地到达目标的度量。
AD:通告距离,路径上的本地下一跳设备,到达目标的度量值。
FC:可行条件,成为备份路径的条件-----备份路径的AD值小于不等于最佳路径的FD值。
CBA是最佳路径,CDBA是备份路径
- 主路径(最佳路径)故障时,同时本地没有备份路径;那么将发送查询包到本地所有邻居-----除最佳路径中的下一跳设备;邻居在接收到该查询后将向本地的其他邻居进行查询包的扩散,到达网络的末梢后,由末梢设备逐级回复应答来清除整个网络所有设备的缓存;
也可能查询包在没有到达网络的末梢时,就已经寻找到新的路径,然后逐级返回应答来实现收敛;
发出查询包的前提:本地的直连路径故障,或本地的最佳路径故障,同时本地没有备份路径
注:假设A对1网段进行了查询收敛,同时1网段又是B到2网段的备份或最佳路径,那么当A在查询收敛1网段时,将导致B对2网段进行收敛;
末梢设备-----本地所有的邻居发送查询包过来,询问一个非本地直连的网段;
【5】配置
r1(config)#router eigrp 90 启动时需要定义AS号;理解为全网一致的进程号;
r1(config-router)#no auto-summary 关闭自动汇总
可以直接宣告主类,也可以使用反掩码进行精确的匹配
r1(config-router)#network 1.0.0.0
r1(config-router)#network 124.1.1.1 0.0.0.0
启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表;
Hello包中邻居间必须完全一致的3个参数:
a. AS号
b. 认证字段key chain
c. K值
r3#show ip eigrp neighbors 查看邻居表
IP-EIGRP neighbors for process 90
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 34.1.1.2 Se1/1 12 00:00:26 43 258 0 9
0 23.1.1.1 Se1/0 12 00:00:35 208 1248 0 13
顺序 邻居接口IP 本地连接邻居的接口 序列号
SRTT-----平均往返时间-----本地发送更新、查询、应答包到达邻居后返回ACK的平均延时
RTO-----重传间隔时间-----根据SRTT和重传的次数计算的重传间隔时间,没有收到ack会收到重传,最多重传16次
Q,CNT-----最好为0,若为1,表示有一条路由正在重传中,表明网络还没收敛好
当邻居关系建立后,邻居间使用更新包进行路由共享,收敛后生成拓扑表:
r3(config)#interface s1/1
r3(config-if)#bandwidth 800 修改参考带宽-----不影响实际传输带宽,仅干涉到路由协议的计算
r3#show ip eigrp topology 查看拓扑表
P 1.1.1.0/24, 1 successors, FD is 2300416
1个successors代表一条最佳路径,其度量(FD)为2300416
via 23.1.1.1 (2300416/156160), Serial1/0 最佳路径
via 34.1.1.2 (3842560/156160), Serial1/1 备份路径
FD AD 备份路径:AD小于且不等于FD
r3#show ip eigrp topology all-links 查看所有路径,包括非备份路径
1. 在拓扑表每条信息的前端存在一个字母P
P 表示该条目已经收敛完成,且默认最佳路径已进入路由表
A 活动(Active)-----表示该条目正在收敛中
P 1.1.1.0/24, 1 successors, FD is 4354560
via 23.1.1.2 (4354560/3842560), Serial1/1
A 2.2.2.0/24, 1 successors, FD is Inaccessible, Q
1 replies, active 00:00:03, query-origin: Local origin
Remaining replies:
via 23.1.1.2, r, Serial1/1
当活动状态时,条目后方使用字母表示具体收敛到了哪一步
Q 表示本地已经发出查询包,没有收到ACK
Qr 表示已经收到ACK,但还没有收到应答包
QR表示已经收到应答包,还未返回ACK确认
U表示已经回复ACK,之后查看应答包;
若应答无路径-----删除该条目
若应答新路径,A转P,加载到路由表
2. 卡在活动状态
若本地进入活动状态后,收不到对端的ACK,那么16次重传后断开邻居关系;
若本地进入活动状态后,收不到应答-----卡在活动状态
导致的原因:
(1) 网络拓扑过于复杂,网络的深度过深
(2) 错误的策略或配置导致
默认3min活动计时,超过该时间,删除条目同时断开邻居关系;导致网络重新刷新收敛,破坏网络稳定性。
解决:
(1)针对过于复杂的网络,可以加大计时器
r2(config)#router eigrp 90
r2(config-router)#timers active-time ?
<1-65535> EIGRP active-state time limit in minutes
(2)12系列IOS开始添加卡在活动状态计时器
当活动计时器进行到一半时,向邻居发出卡在活动状态查询,若收到回复,那么活动计时器到时的时候,仅删除信息,不断开邻居关系;
3. 非等开销负载均衡-----当到达目标网段时,存在最佳和备份路径;
可以让设备将流量按比例沿最佳和备份路径同时传输
r3#show ip protocols
EIGRP maximum metric variance 1
默认eigrp协议的差异值为1;
差异值=备份路径的FD/最佳路径的FD=结果向上求整
修改差异值实现非等开销负载均衡
r3(config-router)#variance 2
r3#show ip route 1.1.1.0 255.255.255.0 查看完整路由信息
默认EIGRP协议将最佳路径加载于路由表中:
字母D-----EIGRP, EX-----EIGRP external
D表示本地通过EIGRP协议所得路由;D EX表示其他协议学习的路由通过重发布技术共享产生
管理距离为90、170;内部90,外部170(重发布进来的路由)
复合度量:多参数运算所得
Formula with default K values (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值下 度量=带宽+延时
带宽=(10^7/整段路径最小带宽)* 256
延时=(整段路径控制层面入口延时总和/10)* 256
256为放大因子-----兼容igrp协议 变大数值便于比较
修改k值的意义:
通过修改k值,可以引入其他的参数来计算度量,缩小度量值,扩大工作半径-----eigrp的工作半径为100跳,最大度量值为2147483647;全网设备k值必须完全一致,否则建立不了邻居关系;
r1(config-router)#metric weights 0 1 1 1 1 1 K1-K5
注:干涉选路需要修改参数-----带宽、延时、负载、可靠性
【6】扩展配置
1)状态机-----邻居关系被刷新
触发状态机的原因-----希望邻居删除原有的路由信息,学习新的被修改的信息-----例:汇总、认证、策略等
2)手工汇总-----在更新源路由器上,所有更新发出的接口上配置
r3(config)#int s1/1
r3(config-if)#ip summary-address eigrp 90 3.3.2.0 255.255.254.0
汇总配置的设备上将自动生成空接口防环路由
3)手工认证-----eigrp仅支持MD5认证
r2(config)#key chain ccna
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 ccna
r2(config-if)#ip authentication mode eigrp 90 md5 必须修改认证模式为MD5
4)被动接口-----仅接收不发送路由协议信息-----配置在连接用户的接口,不得配置在连接邻居的接口
r3(config)#router eigrp 90
r3(config-router)#passive-interface fastEthernet 0/0
5)缺省路由
a. 在边界路由器上所有连接内网的接口上进行汇总配置-----汇总地址为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
边界还需要手工静态缺省指向ISP
b. 重发布静态路由
先在边界路由器上静态缺省指向ISP,然后再将该路由重发布到eigrp协议
r1(config)#ip route 0.0.0.0 0.0.0.0 x.x.x.x
r1(config)#router eigrp 90
r1(config-router)#redistribute static
c. 宣告缺省路由
先在边界路由器上静态缺省指向ISP,然后再将该路由宣告到eigrp协议
r1(config)#ip route 0.0.0.0 0.0.0.0 x.x.x.x
r1(config)#router eigrp 90
r1(config-router)#network 0.0.0.0
不建议该配置,因为宣告了本地所有的接口
d. default-network做法-----建议边界路由器外网接口为主类网段地址时
1)边界路由器上配置
r1(config)#ip default-network 12.0.0.0(宣告边界路由器连接ISP的接口地址的主类段)
2)eigrp协议中宣告该主类
r1(config)#router eigrp 90
r1(config-router)#network 12.0.0.0
3)该路由器上必须存在宣告的主类网段路由
r1(config)#ip route 12.0.0.0 255.0.0.0 null 0
【7】 EIGRP协议的小特性
1. EIGRP的接口带宽占用率-----EIGRP协议在工作时,仅最大占用接口参考带宽的百分之50
故可能接口的参考带宽大于或小于实际带宽;可以修改参考带宽来实际匹配;
有时考虑协议需要基于参考带宽选路,不建议修改参考带宽;此时可以修改eigrp协议的带宽占用百分比。
r2(config)#interface s1/1
r2(config-if)#ip bandwidth-percent eigrp 90 200
2. EIGRP的查询机制
1)最佳路径故障时,同时本地没有备份路径-----发出查询包
2)本地直连路由断开时发送查询包
3)一旦发出查询包,该路由在本地路由表中消失,在拓扑表中标记收敛-----A标识
4)若收到一个查询包,但本地没有查询的路由,将向本地的其他邻居进行扩散
5)查询包到达末梢设备时,只能回复应答
3. 末梢管理
复杂网络中的查询包管理-----中心到站点拓扑;中心没有必要到站点进行查询
限制查询范围就是最好的处理方法:
1)汇总-----减少明细路由故障时导致的查询,可以在中心连接分支站点的接口上进行汇总;路由配置-----查询明细路由时,分支站点仅存在汇总路由,只能回复不可达;
注意该配置应该尽量避免路由黑洞
2)EIGRP末梢区域配置-----分支站点设备直接配置为末梢区域;
之后分支站点发送到中心站点的hello包中存在末梢区域标记;
当中心站点链路出现故障时,中心站点不会到分支站点进行查询
r3(config)#router eigrp 90
r3(config-router)#eigrp stub 本地成为末梢区域
r2#show ip eigrp neighbors detail
r2#debug eigrp packets query
r3#debug eigrp packets ?
将一台路由器设置为末梢路由器时,默认执行以下命令
router eigrp 90
eigrp stub connected summary 本地成为末梢区域,但邻居需要传递直连和汇总路由过来
r3(config)#router eigrp 90
r3(config-router)#eigrp stub ?
connected Do advertise connected routes
receive-only Set IP-EIGRP as receive only neighbor
redistributed Do advertise redistributed routes
static Do advertise static routes
summary Do advertise summary routes