<EIGRP(Enhanced Interior Gateway Routing Protocol )>增强的内部网关路由协议EIGRP的特点:·EIGRP是Cisco私有的路由协议,采用DUAL(扩散更新算法)。
·EIGRP属于IGP,是Hybrid协议,基于IP Pro 88。
·组播、单播更新,组播地址224.0.0.10·支持等价/不等价的负载均衡。
·支持VLSM,手工汇总。
·支持多种网络协议(IP/IPX)。
EIGRP为各种协议都维护的3张表:1)Neighbor Table:保存直连的邻居的IP地址,确保直接邻居之间能够双向通信。
2)Topology Table:拓扑表中存放着前往目标地址的所有路由。
3)Routing Table:从拓扑表中选择到达目标地址的最佳路由放入路由表。
DUAL算法:扩散更新算法,也叫弥散更新算法AD(通告距离)-------------邻居通告的到达目的的MetricFD(可行距离)-------------本路由器到达目的的Metricsuccessor路由 -------------具有最优Metric值的路由Feasible successor路由-----符合条件的次优路由次优路由成为Feasible Successor的条件:也叫可行性条件FD of Best Route > AD of Second best Route(Successor)为什么AD<FD? //主要为了防环EIGRP中,路由器会从拓朴表中选出去往特定目的地的最优路由,也称为successor路由,放入路由表,一旦最优路由down掉,EIGRP会马上从拓朴表中找出feasibel successor路由,将其升级为最优路由,并放入路由表,而不用经过计算,这样提高了收敛的速度。
如果当前路由表中的successor路由down掉后,在拓朴表中又没有备份的路由,EIGRP会向所有直连的邻居发出查询包,进行扩散查询。
RTP(Reliable Transport Protocol)可靠传输协议用来管理EIGRP报文的发送和接收,实现可靠传输。
所谓可靠传输是指发送有保障的而且报文是有序发送的。
EIGRP中的常用报文:Hello:用于邻居的发现和恢复。
发现、建立、维持邻居关系(Multicast)Update:传递路由更新,仅包含需要的路由条目,当为指定的一台路由器发更新时使用Unicast(P-TO-P) ,当为多台路由器发更新时使用Multicast.(MA) Query:当找不到Feasible Successor时,发送查询报文(Unicast)Reply:回应查询报文。
(Unicast)ACK:用来确认Update/Query/Reply (Unicast)Reliable packets :Update/Query/ReplyUnreliable packets :Hello/ACK·Hello Address = 224.0.0.10·Hello Timer5S:≥T1 (1.544Mbps)也有一个随机时间差防止更新同步60S:<T1·Hold Timer = 3 * Hello Timer·形成邻居关系的必要条件1、双方K Value一致。
2、AS Num一致。
3、authentication必须一致。
·即使双方的Hello Timer & Hold Timer不一致,也可形成邻居关系。
·SRTT(Smooth Round-Trip Time)平均往返时间:从发送3种可靠包,到对方回应ACK的时间。
(ms)·RTO(Retransmission TimeOut):重传超时的定时器。
·Queue count 队列数还在排队等待发送的报文数16次重传机制:在EGIRP中,如果一台路由器向邻居发送了一个可靠的报文,是需要邻居回应一个ACK报文的,如果邻居没有回ACK,则会向邻居重传16次,如果邻居还没有回应,就会重置邻居关系。
EIGRP的Metric值计算:EIGRP的metric值的计算,最多可以用到五个参数,实际上通常只用到两个。
公式:EIGRP Metric = 256*(107/BW+DLY/10)小数情况,不四舍五入,直接取整注意:1、带宽取路由传递路径上的最小带宽值2、延迟是取路由来的方向的入接口的延迟总和几种常用接口的带宽和延迟:Interface BW(kbps)DLY(μsec)Ethernet 10000 1000FAST 100000 100G0 1000000000 10Serial 1544 20000Loopback 8000000 5000在完整的计算公式中,每一个参数还要乘上自已的权值:K1=带宽bandwidth(源和目的之间的最小带宽) 1K2=负载loading(源和目的之间的最大负载)0K3=延迟delay(源和目的之间的延迟总和) 1K4=可靠性reliability(源和目的之间的最低可靠性)0K5=MTU(源和目的之间的最小MTU)0<EIGRP>基本配置R2(config)#router eigrp 90R2(config-router)#network 12.1.1.0 0.0.0.255//反掩码的 0 —精确匹配1 —忽略不计R2(config-router)#network 2.2.0.0 255.255.0.0 (正/反掩码皆可)R2#show ip protocolsR2#show ip eigrp interfacesR1#show ip eigrp neighborsR1#show ip eigrp trafficR1#show ip eigrp topology //只能显示successor和feasible successorR1#show ip eigrp topology all-links //可显示拓扑表中的所有条目测试不同AS NUM能不能建起邻居。
测试Hello/Hold Timer不一致能不能建起邻居。
·修改Hello/Hold TimerR1(config-if)#ip hello-interval eigrp 90 60R1(config-if)#ip hold-time eigrp 90 180 //记住,hold-time时间是给邻居用的show ip eigrp interface detail s1/0 //查看接口的hello时间·修改K值R3(config)#router eigrp 90R3(config-router)#metric weights 0 1 1 1 0 0--------------------------------------------------------------------<自动汇总>EIGRP在默认是开启auto-summary的,这意味着路由在跨越不同网络边界时,会自动汇总成主类。
router eigrp 90no auto-summary //本命令关闭自动汇总<手工汇总>int s1/0ip summary-address eigrp 90 20.1.4.0 255.255.252.0 //只能在路由流向的出接口作手工汇总本地路由器会产生一条特殊路由,这条特殊EIGRP汇总路由的AD值是5D 20.1.4.0/22 is a summary, 00:00:02, Null0汇总的特点:1、本地必须有明细路由,才会从做汇总的接口发出汇总路由。
2、直到明细的最后一条路由消失,汇总才会消失。
3、汇总路由的metric值会取最小的metric值4、会在做汇总的路由器上产生一条特殊的指向空接口的路由,这条指向NULL0接口的路由是用来防环的D 2.0.0.0/8 is a summary, 00:02:30, Null0例如:show ip route 172.16.0.0 255.255.0.0 可以看到指向Null0接口的特殊汇总路由的管理距离5、自动汇总仅将本地的路由汇总成主类,对于收到的路由不做汇总,直接发出。
<等价负载均衡>·EIGRP可做等价负载均衡,也可做不等价负载均衡。
默认只做等价的。
·EIGRP默认支持4条路径的负载均衡,最大支持16条。
show ip protocols //可查看EIGRP的负载均衡路径数router eigrp 90maximum-paths 6(最多16条)//本命令改动负载均衡的路径数如果多条路由的metric不相等,可以通过修改Metric值来实现等价负载均衡,有以下两种方法:1、<修改EIGRP接口带宽或延迟>·通过修改接口的带宽或延迟,可以达到改动路由metric值的目地。
·在路由流向的入口改。
·改延迟时,是以10为单位来修改。
比如说想把接口延迟改成2000usec 则要:int e0/0delay 200 //输入的值默认会*10,是以10为单位来改的show interface s1/0 使用这条命令可以看到接口的带宽和延迟例一:如上图所示:运行EIGRP后,R2可以学到两条3.3.3.0的路由,一条从R3学到,另一条从R1学到。
show ip eigrp topology detail-linksP 3.3.3.0/24, 1 successors, FD is 409600, serno 6via 23.1.1.3 (409600/128256), Ethernet0/0via 12.1.1.1 (2809856/2297856), Serial1/0如果想实现等价负载均衡,可以通过修改E0/0接口的延迟来实现2809856=256*(107/BW+DLY/10)2809856=256*(107/10000+ x+5000/10)int e0/0delay 9476 //将接口延迟改为94760μSshow ip route3.0.0.0/24 is subnetted, 1 subnetsD 3.3.3.0 [90/2809856] via 23.1.1.3, 00:00:08, Ethernet0/0[90/2809856] via 12.1.1.1, 00:00:08, Serial1/02、<偏移列表>用这个玩意也可将不同路由的metric值改为一样,用来实现负载均衡access-list 1 permit 1.1.1.0router eigrp 90offset-list 1 in 3 Serial 1 //本命令只能在原有基础上增加metric 值(原有Metric + 3)router eigrp 90offset-list 0 in 3 ethernet 0 //从E0接口进来的所有路由的metric值都加3(0代表所有网络)例二:如上图所示:运行EIGRP后,R2可以学到两条3.3.3.0的路由,一条从R3学到,另一条从R1学到。