EIGRP(增强型内部网关路由协议)

一、特征及优点

1、快速收敛: 采用DUAL算法实现快速汇聚(扩散更新算法)

2、部分更新:仅在路径和度量值发生变化时才发送更新,只包含变化的链路信息,非这个路由表

3、支持多种网络层协议:IPv4、IPv6、IPX……

4、使用组播与单播代替广播传路由:组播地址224.0.0.10

5、支持可变长子网掩码VLSM:无类路由协议,支持不连续的子网

6、100%无环路协议

7、支持等价与不等价负载均衡

8、支持手工汇总

 

Tips:

EIGRP路由进程是一项传输层功能,传输EIGRP信息的IP分组在其IP报头中使用协议号为88;

默认情况下,自动进行路由汇总,在配置时需要输入no auto-summary;

EIGRP的四种重要技术:邻居发现协议、可靠传输协议(RTP),Dual有限状态机;

EIGRP本质是距离矢量型(DV)协议,特点为水平分割。

 

二、EIGRP的工作原理

1、运行时使用三张表

邻居表:包含每个邻居的地址及前往该邻居的接口。

拓扑表:包含每个目的地的所有路由的拓扑表,邻居通告的前往每个目的地的度量值AD,以及经由该邻居前往目的地的度量值FD。拓扑表中的路由处于2种状态之一:

主动:路由被重新计算,寻找新的后继;

被动:没有重新计算(正常状态)

路由表:包含前往目的地的最佳路由(后继路由)的路由表。对前往特定网络的所有路由的FD进行比较,选择最小的路由并加入路由表。

 

2、EIGRP的五种分组

Hello:用于发现邻居,以组播方式发送。

Update:包含路由变更信息,只发送给受影响的路由器。发现新路由并汇聚完毕后以多播方式发送更新。为同步拓扑表,在启动时以单播方式将更新发送给邻居。(可靠包)

Querry:没有去往目标网络的主路由和备份路由,或者路由失效时,向所有邻居发送查询分组。(可靠包)

Reply:应答,响应查询分组,单播。(可靠包)

Ack:确认包,对更新、查询和应答做确认。

Hello包发送间隔:

≤T1或更低的NBMA接口上为60s,Hold-time大约为180s

>T1或LAN和其他串口上为5s,Hold-time大约为15s

修改hello时间命令:ip hello-interval eigrp [AS] * seconds

修改hold-time时间:ip hold-time eigrp [AS] * seconds

Hello时间被修改后,保持时间不会自动调整,必须手动修改。

 

3、EIGRP邻居关系

即使Hello时间和hold-time时间值不一致,也能形成邻居关系。

建立邻居的必要条件:AS号一致;K值一致;认证一致

查看邻居表:show ip eigrp neighbor    该命令的输出,有如下参数

SRTT:平均往返时间,从发送3种可靠包到对方回应ACK的时间(ms)

RTO:重传超时

QCnt:等待发送的EIGRP分组,正常情况下为0,否则接口可能有拥塞

 

4、邻居建立过程

CCNP理论之EIGRP协议(一)_第1张图片

①.A启用EIGRP的后,周期性发送hello包,用以建立邻居

②.B收到A的hello包认为A是自己的邻居,就给A发送hello和更新

③.A返回ACK,并把收到的路由更新放入拓扑表中

④.A又给B发送更新(双方第一次更新为完整更新)

⑤.B返回ACK
⑥.收敛

只有当拓扑发生变化时才有Querry和Reply包;

针对3种可靠包,最大重传16次,如16次还没收到ACK则重置邻居关系;

以后只当网络结构变化,才做触发增量更新,否则只有hello包。

 

5、DUAL(扩散更新算法)

通告距离(AD):邻居路由器前往特定网络的度量值

可行距离(FD):当前路由器前往特定网络的度量值

后继路由(Successor):路由器对其拓扑表中前往特定网络的所有路由的FD进行比较,并将FD最小的路由加入到路由表中,该路由为后继路由

可行后继(Feasible Successor,FS):提供备用路由的路由器。其条件是下一跳路由器前往特定网络的AD必须小于当前后继路由的FD,即AD

当路由无效后,在拓扑表中查找FS,如果有,就将FS提升为后继路由,如果没有,则进入主动状态重新计算路由。

 

6、EIGRP度量值计算

使用5个度量值,即K值,用show ip protocols可查看

K1,带宽(Bandwidth):源和目的之间的最小带宽。K1=1

K2,负载(Loading):源和目的之间链路的最大负载。K2=0

K3,延迟(Delay):路径上接口的累积延迟,源和目的的延迟总和。K3=1

K4,可靠性(Reliablity):源和目的之间的最低可靠性。K4=0

K5,最大传输单元(MTU):路径中的最小MTU。K5=0

度量值=带宽+延迟         cost=(10^7/最小带宽+Delay)*256

小数部分全部忽略取整,不能四舍五入。