EIGRP
增强型内部网关路由协议,Cisco 私有的路由协议,基于低级距离矢量路由协议IGRP开发的高级距离矢量路由协议。
只有触发更新,没有周期更新。
一、特点:
1. 高级距离矢量路由协议(它发的更新包里面都是具体的明细路由)
2. 快速收敛
3. 100%无环路的无类路由(带有掩码的)
4. 配置简单
5. 逐步更新(只发送更新的路由信息)
6. 在开销相等和不想等的路径上实现负载均衡(支持等价的和不等价的负载均衡)(唯一一个支持不等价负载均衡的路由协议)
7. 网络设计灵活
8. 用组播地址和单播地址代替广播地址(组播地址是224.0.0.10,rip v2是224.0.0.9)
9. 支持VLSM(可变长子网掩码划分)和不连续的子网
10. 在internet网络中的任意点手动汇总
11. 支持多种网络层协议(ipv4、ipv6、ipx老旧)
二、关键技术点:
*邻居发现/恢复机制
-在邻居间使用HELLO报文
1.EIGRP的路由器,主动建立与其邻居的关系。
2.建立邻接使用hello报文发送每5或60秒
3.如果邻居错过了连续3个hello报文(15秒)的路由将被视为无效
4.默认值=15秒或180秒
当带宽小于T1=1.544M的链路,报文是每隔60秒发一次。而大于T1=1.544M的链路是每隔5秒发一次。
5
*可靠的传输协议(RTP)
-确保EIGRP报文可靠,有序地传送到所有邻居
(因为EIGRP传输的报文前面是用IP来封装包头的,但是IP是不可靠的协议,但是EIGRP有一个ACK的确认包,
所以可以保证数据传输的可靠性。)
*DUAL(扩散更新算法)有限状态机
-为去往每个目标选择最小开销,无环路的路径
*协议无关模块(PDMs)
-EIGRP支持为IP、Apple Talk、IPX等协议计算路由
三、EIGRP维护
EIGRP维护三张表,而前面讲的RIP其实是维护两张表,但值讲了一张路由表,而另外一个是数据库。
EIGRP的三张表:
1. IP EIGRP Neighbor Table 邻居表(所有直连路由器并且运行了EIGRP路由协议的邻居的信息以及已经形成邻居关系的邻居的信息)
2. IP EIGRP Topology Table 拓扑表 (从所有邻居学到的所有的路由信息会放到拓扑表里面,然后会用DUAL算法,算出最佳路由放到路由表里面。)
3. The IP Routing Table 路由表
4. EIGRP 实际上还有一个备份路由,而备份路由是放到拓扑表里面的数据库的,所以为什么EIGRP收敛速度快,是因为当路由表不可用的时候,它会自己从拓扑表里面提取备份路由出来使用。
四、ADVS FD
*通告距离(AD)
-通告距离,也称为报告距离,下一跳路由器到目的地的度量值。
*可行距离(FD)是本地路由器到达目的地的度量值。
AD和FD是用来算最佳路由使用的。
如果是同一条路由,就看谁的FD值下,谁就是最佳路由。
所以这个图里面的最佳路由是2000的FD值这一条。
*后继者和可行后继
后继者表示为最佳路由,可行后继表示为备份路由。
可以看出最后的最佳路由就是C路由的这一条。那么平时传数据都是走的C路由。其他的B和D都是不用的。
但是EIGRP还会选择一条备份路由。但是要面一个条件,即:备份路由的AD值要小于最佳路由的FD值。
所以选最佳路由看的FD值,选备份路由看的是AD值。那由此可见,上图的备份路由肯定是B的那条路由了,因为B路由的AD值是10小于C路由,而D路由的AD值是25大于C路由。而为了满足“备份路由的前提条件“当然就只能是B路由作为备份路由了。
备份路由是放在数据库里面的,当最佳路由不可用的时候,就提取备份路由出来使用。
五、EIGRP的报文类型:
1.Hello 用来发现网络中其他运行EIGRP的路由器 15秒
2.更新包Update 用来传达已知目的网段的路由信息 (包含路由表里面的路由信息)
3.查询包Query 用来从邻居获得特别的路由信息(当最佳路由失效的时候,数据库又没有备份路由,就会发查询包给邻居,询问是否有备份路由。)
4.回应包Reply 用来回应请求 (当邻居收到查询包的时候,不管有没有,它都要给出一个回应)
5.Acknowledgement用来确认任何接收到的EIGRP报文(包括UPDATE\QUERY\REPLY都是需要ACK来确认的。)
六:EIGRP的邻居建立的过程:
秒继续发hello包来维护邻居关系。
七、EIGRP的度量值(Metric)计算
那其实上面所说的FD值就是Metric值。
*EIGRP使用一个复合度量,可根据一下指标:
-K1带宽使用最小的带宽(BW)
【从源到达目的地经过所有路由的一个最小带宽。比如:
A-------T1=1.544m---------B--------- T1=1.544m ------------C--------64KBPS----------D
那么A到D经过的三条链路的带宽,选最小的一个就是64kbps。作为度量值的参考值。】
-K2可靠性 是衡量一个链路将失败的可能性(取小)
-K3延迟延迟是衡量一个包需要穿越路由的时间
【数据经过一个路由器到下一个路由的时间,而延迟这里取的是数据经过所有链路的延迟之和来作为度量值的参考。A-------Delay2000---------B---------Delay2000------------C--------Delay2000----------D,那么数据从A到D的最后延迟就是Delay6000。】
-K4负载 反映了多少流量是使用链接(取大)
-K5MTU 最大传输单元,默认情况下是1500的默认值。
*默认情况下使用,只有带宽和延迟, 还有对应的五个K值(K1=1\K2=0\K3=1\K4=0\K5=0),因为默认情况下,带宽和延迟的K值都是1,是可乘的,而其他的都是0,不可乘,因为任何数乘以0都等于0,所以默认情况下值看带宽和延迟。当然这个K值是可以更改的,如果将K值更改为1,那就就可以计算进去了,比如将k2的值更改为1,那么可靠性就会被计算进去。(但是注意改K值,要不然都改,要不然就都不改。因为K值如果不一致的话,邻居是不能建立的。)
*注:这往往是不正确的指出,EIGRP的还可以使用路径中最小的MTU。事实上,MTU是包含在EIGRP路由更新,但实际上并没有使用Metric计算。
EIGRP的度量值Metric计算公式为:
Metric=256*(107/带宽(取小)+延迟(取和)/10)
【其实所有链路带宽中最小的一个链路带宽。】
【其实是所有入接口的延迟之和。】
带宽的单位要记得换算成KB。
八、EIGRP的配置:
启用和通告EIGRP:
RouterX(config)#router eigrpautonomous-sytem 这个autonomous-sytem就是AS号,所有EIGRP的路由AS号必须一致,因为只能在一个AS内来运行EIGRP协议。比如100.
RouterX(config-router)#network network-number
For example:
RouterX(config)#routereigrp 100
RouterX(config-router)#network172.16.0.0 0.0.255.255 后面还可以跟一个反掩码
RouterX(config-router)#passive-interfacef0/1 表示让这个f0/1接口不收发EIGRP报文
反掩码:就是正掩码取反。
正的:172.16.1.0 255.255.255.0 当然其实路由器也可以实现在敲入正掩码的情况下帮助自动取反,show run可看。
反的: 0.0.0.255
反掩码的作用:可以确定或指定是哪个网段来运行EIGRP
如果上图中运行RIP路由协议,那么通告的时候,只用 network 10.0.0.0 ,那三个接口都会运行RIP的,但是我只想让10.1.1.0/24这个网段运行RIP,其他两个接口不跑RIP,这样可以么?在这种清情况下当然是不可以的。
但如果换成EIGRP协议的话,就可以的,因为运行EIGRP可以在通告的时候,后面跟一条反掩码,来指定只让10.1.1.0/24这个网段来运行EIGRP的路由协议。即:network 10.1.1.0 0.0.0.255,其中0代表完全匹配,而255代表任意匹配。也就是说前三位必须是10.1.1的才可以运行EIGRP路由协议,而后面的最后一位0是取255以内的任意值就可以。
查看邻居表:
R2#show ip eigrpneighbors
“H”表示建立邻居的先后顺序,0代表先第一个建立邻居,以后的其次。
“Hold(sec)”表示15秒倒计时,如果倒计时归0了,那么这个邻居就down了。意味着15秒都没有收到邻居的hello包。
“Uptime” 跟现有邻居已经建立邻居的更新时间
“SRTT”平均回程时间
“RTO”重传前等待时间。如果发了更新包,而没有被确认,如果这个时间超时了,还没有确认,那就重传16次.
“Ω” 队列,正常情况应该是没有数字的,如果有数字表示有数据包出现拥塞了。
“Seq” 序列号,表示从邻居学到路由的数量。
查看拓扑表:
R2#show ip eigrptopology
这里面都是所有学习到的路由信息。
查看路由表:
R#show ip route
EIGRP也会在主网边界自动汇总路由。
“Nu110”是用来防止环路的。
*那这里会出现和RIP v1同样的情况,所以也需要在主网边界将自动路由汇总关闭掉。否则会出现同样的问题。
EIGRP的管理距离值内部是90,外部的是170,而后面的metric值是30720.
查看接口带宽和延迟:
R3#show interface f0/1
Reliability: 可靠性 Txload:本地发送 Rxload:本地接收
查看当前路由信息:
R3#show ip protocols
EIGRP maximu hopcount:EIGRP的最大跳数默认为100 其实最大应该是255跳
EIGRP maximu metric variance 1:是做不等价负载均衡的
Redistributing:eigrp 100 表示重分布
Automatic network summarization it not ineffect. 主网边界路由自动汇总没有生效
Maximum path:4 等价负载均衡默认是4跳,其实最大可以达到16跳。