一、特点
EIGRP-------增强内部网关路由协议
Cisco私有;无类别距离矢量协议;跨层封装协议,封装于网络层–协议号88
前身为IGRP(淘汰,不更新)
100%无环
收敛速度最快的协议(在中大型网络中)
支持多种被路由协议(ip、ipx、appletalk)
支持任意节点汇总
支持VLSM/CIDR
在广域网配置简单
支持非等开销负载均衡
支持加密认证
二、EIGRP的4大组件:
1、保活机制–hello
2、PDM—支持多种网络层协议
3、RTP协议—可靠协议,借鉴TCP的4种可靠传输机制–确认、重传、排序、流控(更新数据不得超过占用链路总带宽的百分之50)
4、DUAL–扩散更新、弥散更新算法--------一口进,所有口出,只给邻居传,邻居可由邻居表确认。
三、数据包:
1.HELLO,用于发现邻居和维护邻居关系,使用组播224.0.0.10每5秒发送一次。hello time 5s或60s hold time 为hello time的3倍,接口带宽小于或等于2.048M时hello time 为60s ,大于为5s;
2.更新(UPDATE),以单播(点对点网络)或组播(多路访问网络)方式可靠地发送其认为已经收敛的路由。
3.查询(QUERY),以单播(点对点网络)或组播(多路访问网络)方式可靠地向邻居查询到达某目的地路由时使用的数据包,有时也以单播方式重传。
4.应答(REPLY),以单播方式可靠地应答查询数据包。
5.确认(ACK),以单播方式发送。用来确认UPDATE、QUERY以及REPLY数据包。ACK分组是上面3种数据包可靠传输的保障。
6.Sia query卡在活动状态查询包
7.Sia reply卡在活动状态应答包
四、工作过程和结构突变
工作过程:
当启动配置完成后,进行hello的收发;
当接收到邻居的hello包后,建立邻居关系,生成邻居表;
当邻居关系建立后,邻居间使用更新包共享本地的路由表信息,共享过程中需满足水平分割规则;
各个邻居间的路由共享完成后,设备上生成拓扑表;
本地到达的最佳及备份路径装载于拓扑表中;
默认将最佳路径加载于本地的路由表中,完成收敛;
收敛完成后,仅hello包周期保活即可;没有周期更新;
结构突变:
1、新增网段
直连新增网段设备,直接使用更新包共享路由到邻居即可
2、断开网段
直连断开网段的设备向所有的邻居发送查询包,该查询包将逐一通过邻居扩散到全网;
若依然存在可达路径,那么由直连可达路径的设备返还应答包到全网,让所有路由器更新;
若查询包扩散到网络末梢,依然没有可达路径,由末梢设备返回应答包到全网,更新所有设备;
3、无法沟通
无法接收到邻居的hello包,hold time到时时,断开邻居关系,删除邻居表;
删除通过该邻居学习到的所有路由信息;
------切记:更新包、查询包、应答包均基于RTP工作;在接收到这些数据包时,本地必须进行确认,若未收到邻居的ACK,将进行重传,默认最大重传16次;若16次重传依然没有确认,将直接断开邻居;是否能够重建邻居关系,依赖hello包;
五、收敛速度快原因:
1.算法原因:DUAL算法,弥散更新
1)只有在有路由变动时才更新
2)更新的对象为邻居,且邻居可在邻居表查找
2.拓扑原因
成路径条件:备份的AD小于不等于最佳路径的FD值:即 AD<=FD
1)只有在满足条件时才处理,否则不处理
2)有备份,使得网络在出现变动时,能够及时启用备份路径,不用再次计算DUAL
六、AD、FD
AD邻居到达目标网段的距离
FD本路由器到达目标网段的距离
AD<FD------计算速度特别快;不会出现成环
AD<FD最终叠加的值为FS,可行性后继距离
非等开销负载均衡
原理:只要目标路径有否合AD<FD 次优路径,可以通过用FD*variance>次优的FD就可以实现非等开销负载均衡
r3(config)#router eigrp 90
r3(config-router)#variance 2//修改差异值为2,表示2倍关系内的备份路径将加载到路由表中
差异值:备份路径的 FD/最佳路径的 FD=向上取整
注:默认差异值为1,标示仅支持等开销负载均衡
七、metric值
K1 带宽
K2 负载
K3 延时( 叠加值)
K4 可靠性
K5 MTU
默认为10100
带宽计算为最小带宽
Metric = [K1 * BW + ((K2 * BW) / (256 – load)) + K3 * delay] * [K5 / (reliability + K4)]
使用默认的k值时,度量=带宽+延时
带宽=(10^7/整段路径最小带宽)*256
延时=(控制层面所有入口延时的总和/10)*256
256为放大因子:
1、让EIGRP协议兼容IGRP协议
2、放大参数便于比较
修改metric值:(修改延时,最低带宽)
int f0/0
delay 600–调整延时,600单位为10us
bandwith 50000–修改为50M
偏移列表修改metric:
access-list 1 permit 3.3.3.0
router eigrp 100
offset-list 1 in 15680 f0/0 --通过f0/0学到的3.3.3.0路由,metric值增加15680
修改K值
int s1/1
router eigrp 100
metric weights 0 1 0 1 0 1–第一个0为TOS,仅支持0,接下来依此为k1-k5
调整网络深度
metric maximum-hops 200
调整最大路径数目
maimum-paths 32
八、两种管理距离
EIGRP有两种管理距离
D:90 D EX:170 本地汇总:5
设置外部管理距离大于内部管理距离的主要原因是防环(水平分割)
九、邻居表
如何形成邻居表:
hallo包发现邻居,(初始化,周期发送),包中携带AS号、K值,在局域网以太网是否同一网段,加密认证,判断邻居形成条件
update包,邻居建立条件确认(不携带任何路由信息)类似tcp三次握手机制
建邻后发送带有路由信息的update包(组播)
邻居挂掉之后,此线路由PASSIVE变为ACTIVE状态,本路由器向稳定线路的邻居发送查询包
SIA机制:卡在活动状态一定导致正常邻居关系中断,此机制的作用是一旦邻居收到查询包,先向对方回SIA-update包,包中无查询结果,如果邻居未发SIA-update则认为邻居已挂。
如果遇到多个路由器相互两两建邻的情况,将会导致EIGRP收敛极慢,为此EIGRP设置STUB末节路由器,邻居不会向stub发送查询包,凡是stub路由器,默认下都只会告知自己的直连路由和汇总路由。手动可调整其他,如重发布、只接收等状态。一旦开启stub,邻居关系重建。
stub route:末梢路由器
当你把一个设备设置成stub route时,它的邻居不会发出查询query。
凡是stub路由器,在默认情况下,只会发送自己的直连和汇总路由,非默认情况下可以调整它重发布路由、静态路由、特殊情态(只接收)
R2(config)#router eigrp 90
R2(config-router)#eigrp stub
启动配置完成后,所有设备间收发hello包,建立邻居关系,生成邻居表:
H:建邻序号
Address:邻居接口IP
Interface:本地连接邻居的接口
Hold:死亡倒计时(以15s为起点,到10s翻回,5s一个hello)
Uptime:建邻时间
SRTT:平均往返时间:5min内发出更新、查询、应答后收到ACK的平均间隔时间
RTO:重传超时时间:基于重传到第几次,和SRTT自动计算所得
Q CNT :标记还有多少条路由正常重传中;
Seq num:报文的序列号,用于确认机制
十、拓扑表
当邻居关系建立后,邻居间使用更新包共享路由条目;生成拓扑表:
在拓扑表每条路径的前端存在一个字母
P:表示该条目已经收敛完成,且默认最佳路径已进入路由表
A:活动,该条目正在收敛中
当活动状态时,条目后方使用字母表示具体收敛到了哪一步
Q表示本地已经发出Query,但没有收到ACK
Qr表示已经收到ACK,但还没有收到Query
QR表示已经收到Query,但还未返回ACK
U表示已经回复ACK,之后查看Query
若应答无路径,删除该条目
若应答新路径,A转P,加载到路由表
在特殊情况下,EIGRP协议将可能卡在活动状态:
1、网络深度过深
2、错误的配置或策略导致
默认存在活动计时器,计时3min;活动计时器到时时将删除条目,同时断开邻居关系;
可能导致错误的邻居断开,使得网络不稳定;
解决方案:
1、针对网络深度过深–建议增大计时器
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
2、在IOS12以上版本中,添加卡在活动状态计时器
当活动计时器行进到一半时,本地发出卡在活动状态查询,若能收到回复,那么在活动计时器到时时,仅删除条目不断开邻居关系;
查看本地到达路由的所有学习路径:show ip eigrp topology all-links
十一、配置
EIGRP的配置:
R1(config)#router eigrp 90 #启动时需要定义AS号(理解为全网一致的进程号)
R1(config-router)#no auto-summary #关闭自动汇总
R1(config-router)#network 1.0.0.0 #主类网络宣告
R1(config-router)#net 124.1.1.1 0.0.0.0 #带通配符掩码的精确匹配宣告
EIGRP可主类宣告,也可以使用反掩码精确匹配
认证:
仅支持md5认证方式
R1(config)#key chain cc
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string cisco
R1(config)#int f0/0
R1(config-if)#ip authentication key-chain eigrp 90 cc
R1(config-if)#ip authentication mode eigrp 90 md5
手工汇总–在更新源路由器上,所有更新发出的接口上配置
1)支持 CIDR 汇总
2)在路由传播方向出方向上实施
3)自动产生指向 null0 的路由,防止黑洞可能导致的路由换路(RIP 不会产生)
4)汇总路由的AD值为5(可以重写一条静态,吓一跳或出接口随便写一个,然后后面跟个AD值,在看路由进行验证,重写的AD值不变>5 则不变,<5 路由条目则改变)
5)汇总后 metric 为最小的
6)当所有明细消失之后,汇总才会消失 汇总可以使用 leak-map 泄露某些明细路
r3(config)#int s1/1
r3(config-if)#ip summary-address eigrp 90 3.3.2.0 255.255.254.0
汇总配置的设备上将自动生成空接口防环路由
缺省路由—在边界路由器上向所有直连内网的接口上进行汇总配置,
方法一:汇总地址0.0.0.0/0;但边界路由器需要静态缺省指向ISP
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip summary-address eigrp 90 0.0.0.0 0.0.0.0
方法二:重发布
ip route 0.0.0.0 0.0.0.0 null 0–null 0为出接口
router eigrp 100
redistribute static metric 10000 100 1 255 1500 //metric 不同,则需要加 标志为DEX
方法三:network静态出接口缺省
network 0.0.0.0 0.0.0.0 宣告的,标志为D
EIGRP末节路由器
默认仅传递直连和汇总路由
分支站点设备直接配置为末梢区域;
之后分支站点发送到中心站点的hello包中存在末梢区域标记;
当中心站点链路出现故障时,中心站点不会到分支站点进行查询
r2(config)#router eigrp 90
r2config-router)#eigrp stub 本地成为末梢区域
r2(config-router)#eigrpstub (+直连 汇总 静态 leak-map 重发布
r2#show ip eigrp neighbors detail
r2#debug eigrp packets query
r3#debug eigrp packets ?