动态路由协议—EIGRP

 

EIGRP;增强内部网关路由协议;属于无类别距离矢量协议;组播更新地址224.0.0.10;跨层封装,协议号88,属于Cisco私有协议。

更新方式:增量更新---仅触发更新,没有周期更新à更新量小(DV);可靠性高(RTP);保活机制(hello机制)。

 

 

一、EIGRP的四大组件:

1.hello机制:使用hello包发现、建立、保活邻居关系

2.PDM---支持多种网络层协议模块

3.RTP---可靠传输协议:确认、排序、重传、流控(不超过参考带宽的百分之50)

4.DUAL算法---扩散(弥散)更新算法

 

二、EIGRP的五种数据包:

1.hello包---在接口带宽小于或等于2.048m时hello time为60s 

大于2.048M时hello time 为5s;hold time 为hello time 的3倍;

直连的邻居间hello包有三个参数必须完全一致,否则无法建立邻居关系

认证字段、AS号、k值;

2.更新包---路由条目:目标网络号+度量

3.查询包

4.应答包

5.ACK确认

三、EIGRP的工作过程

启动配置完成后,本地发送hello包到所有运行了EIGRP的接口;若同时可以接收到其他邻居的hello包,那么建立邻居关系,生成邻居表;

邻居表内记录本地的所有邻居,之后使用更新包更新本地的路由信息到所有邻居处;当收集到所有路由信息后,本地生成拓扑表;

拓扑表中装载着本地到达所有未知网段的最佳和备份路径;备份路径用于在最佳路径故障时,不用重新收敛,直接启用;同时备份路径也可以和最佳路径一起实现非等开销负载均衡。

默认将拓扑表中最佳路径加载到路由表;收敛完成,仅hello包周期保活。

结构突变:

1.新增网段—直连新增的设备,向所有邻居发送更新包,然后逐级收敛

2.断开网段—直连断开网段的设备,向本地所有邻居发送查询包来收敛该路径,之后该数据包逐级扩散到全网;

结果(1)查询包到达直连该网段的另一台设备处,该设备使用应答包逐级扩散到全网,过程中所有设备的拓扑表和路由表发生改变。

结果(2)查询包到达网络末节(本地所有邻居均向本地进行查询,但本地此时没有可达路径),末节回复无路径应答逐级扩散到全网,过程中所有设备的拓扑表和路由器发生改变。

注:

(1)最佳路径故障后直接启用备份路由的规则---不针对直连断开网段,因为断开网段必须使用查询和应答进行全网扩散收敛;实际该规则针对基于正在收敛路径递归所得的其他路由;----断开A网段,必须收敛A网段,那些以A网段为下一跳的路由可以启用备份路径

(2)更新包、查询包、应答包均基于RTP协议进行传输

   RTP要求只要接收这三种包,必须进行ACK确认、排序、流控;

若不能确认,必须重传(一般为单播),默认最大重传16次,若依然无确认,将断开邻居关系,依赖hello包来重新建立邻居关系。

3.无法沟通---hold time到时候,断开邻居关系,删除从该邻居学习到的所有信息;之后是否能够建邻,关注hello包。

 

DUAL算法包含的内容:

1hello保活机制

2success--成功路径--最佳路径   从本地到达目标最小度量值

Feasible success --可行成功路径--备份路径----备份路径的AD值小于不等于最佳路径的FD

FD:可行距离,本地到达目标的度量

AD:通告距离,路径上的本地下一跳设备,到达目标的度量值

FC:可行条件,成为备份路径的条件--备份路径的AD值小于且不等于最佳路径的FD

3、主路径(最佳路径)故障时,同时本地没有备份路径;那么将发送查询包到本地所有邻居--除最佳路径中的下一跳设备;邻居在接收到该查询后将向本地的其他邻居进行查询包的扩散,到达网络的末梢后,由末梢设备逐级回复应答来清除整个网络所有设备的缓存;

也可能查询包在没有到达网络的末梢时,就已经寻找到新的路径,然后逐级返回应答来实现收敛;

发出查询包的前提:本地的直连路径故障,或本地的最佳路径故障,同时本地没有备份路径

注:假设A对1网段进行了查询收敛,同时1网段又是B到2网段的备份或最佳路径,那么当A在查询收敛1网段时,将导致B对2网段进行收敛;

末梢设备----本地所有的邻居发送查询包过来,询问一个非本地直连的网段;

 

 

四、配置

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

                                                                          ---没有可达路由,删除条目

2、卡在活动状态---条目长期保持A状态;

原因:  

(1)网络深度过深

(2)错误的策略或配置导致

导致的问题:在活动计时器到时间时(默认3min),将断开邻居关系;导致整个网络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以上增添一个卡在活动状态计时器

在活动计时器进行一半时,向邻居发送卡在活动状态查询,若能收到回复,活动计时器到时时仅删除条目不断开邻居关系;

 

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值

 

4、非等开销负载均衡---将流量延最佳和备份路径按比例同时传输,来提高链路的利用率

R3(config)#interface s1/1

R3(config-if)#bandwidth 800 //修改接口的参考带宽

参考带宽,不影响设备的实际带宽;仅用于影响路由协议选路

 

Maximum metric variance 1  默认差异值为1,默认EIGRP协议仅支持等开销负载均衡;

差异值:  备份路径的FD/最佳路径的FD 结果向上取整

通过修改差异值,可以实现非等开销负载均衡

R3(config)#router eigrp 90

R3(config-router)#variance 2  修改默认的差异值

 

默认EIGRP协议将最佳路径加载到路由表中:

字母D - EIGRP, EX - EIGRP external

D  标识EIGRP协议正常学习的路由

D EX外部路由,由ASBR重发布导入路由

管理距离:D 内部90    D EX外部 170

 

度量:复合度量—集中参数混合计算

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的扩展配置:

1、状态机

刷新邻居关系;因为EIGRP为增量更新,故在修改路由条目参数后,必然需要刷新路由表来加载新的路由协议,删除原有的信息;再汇总、认证、策略……

2、被动接口---仅接收不发送路由协议信息,用于连接用户的接口,不得用于连接邻居的接口。

R3(config)#router eigrp 90

R3(config-router)#passive-interface ethernet 0/0

 

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模式,否则认证不生效

 

4、手工汇总---在更新源路由器上,所有更新发出的接口上进行配置

R3(config)#int s1/0

R3(config-if)#ip summary-address eigrp 90 3.3.0.0 255.255.248.0

在汇总源设备自动生成空接口防环路由

 

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)重发布静态

先在边界路由器上静态缺省指向ISP,然后通过重发布技术,将该条目共享到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时,同时本地所有接口均被宣告

 

 

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、干涉选路---使用偏移列表,加大控制层面流量的度量值(方法同RIP的干涉选路)

 

抓取路由

R1(config)#access-list 1 permit 3.0.0.0

 

R1(config)#router rip

R1(config-router)#offset-list    1    in   10000       serial 1/1

                                         ACL   方向 增加的度量    对应的接口

 

8、EIGRP协议的小特性

1)EIGRP的接口带宽占用率---默认仅占用参考带宽的50%;若人为将参考带宽修改的和实际物理带宽不一致,将可能出现过于占用,或过于降低传输的现象;

 

R2(config)#interface serial 1/1

R2(config-if)#ip bandwidth-percent eigrp 90 300  (占用率百分之300)

 

(2)EIGRP的查询机制

1>最佳路径故障时,同时本地没有备份路径

2>路由进入活动状态

3>发送查询包到所有的邻居,除了原连接最佳路径下一跳的路由器

4>若邻居也没有此路由信息,查询包继续扩散

5>到达末梢进行回复收敛

 

(3)复杂网络中的查询包管理

中心到站点的拓扑结构中,中心没有必要到站点进行查询

限制查询范围:

1>汇总---在中心站点传递路由给分支站点时,进行汇总配置传递;之后若中心站点的网段故障时,发出查询,由于分支仅拥有汇总条目,故只能回复不可达;但该方法会导致路由黑洞的出现;

2>EIGRP的末梢区域---分支站点配置为末梢区域,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>

(扩展命令,可以手动设置一些不传递给邻居的路由)

发布了43 篇原创文章 · 获赞 50 · 访问量 7977

猜你喜欢

转载自blog.csdn.net/weixin_43997530/article/details/88695068