CCNP路由实验之四动态路由协议之EIGRP
动态路由协议可以自动的发现远程网络,只要网络拓扑结构发生了变化,路由器就会相互交换路由信息,不仅能够自动获知新增加的网络,还可以在当前网络连接失败时找出备用路径。根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有RIP、EIGRP、OSPF;外部网关协议主要用于多个自治域之间的路由选择,常用的是BGP和BGP-4。在一个路由器中,可同时配置静态路由和一种或多种动态路由。它们各自维护的路由表都提供给转发程序,但这些路由表的表项间可能会发生冲突。这种冲突可通过配置各路由表的优先级来解决。通常静态路由具有默认的最高优先级,当其它路由表表项与它矛盾时,均按静态路由转发。
EIGRP介绍:
EIGRP全名是Enhance Interio Gateway Routing Protocol其实质就是加强型的IGRP,EIGRP是Cisco公司私有的路由协议.EIGRP是一个平衡混合型路由协议,既有传统的距离矢量协议的特点:路由信息依靠邻居路由器通告,遵守路由水平分割和反向毒化规则,路由自动归纳,配置简单,又有传统的链路状态路由协议的特点:没有路由跳数的限制,当路由信息发生变化时,采用增量更新的方式,保留对所有可能路由(网络的拓扑结构)的了解、支持变长子网掩码、路由手动归纳。该协议同时又具有自己独特的特点:支持非等成本路由上的负载均衡,采用差分更新算法(DUAL)在确保无路由环路的前提下,当路径更改时DUAL会传送变动的部分而不是整个路径表,而Router都有储存邻近的路径表,当路径变动时,Router可以快速地反应,EIGRP也不会周期性地传送变动讯息以节省频宽的,并实现快速收敛EIGRP还具有支持多个网络层的协议IP、AppleTalk和IPX三种协议。EIGRP的默认管理距离是90
EIGRP协议的特点如下。
运行EIGRP的路由器之间形成邻居关系,并交换路由信息。相邻路由器之间通过发送和接收Hello包来保持联系,维持邻居关系。Hello包的发送间隔默认值为5s钟。
运行EIGRP的路由器存储所有与其相邻路由器的路由表信息,以便快速适应路由变化;
存储整个网络拓扑结构的信息,以便快速适应网络变化;
假如没有合适的路由存在,EIGRP将查询其相邻的路由器,以便发现可以替换的路由。
采用触发更新,即只在路由器改变计量标准或拓扑出现变化时发送部分更新信息。
支持可变长子网掩码 (VLSM)和不连续的子网,EIGRP是一种无类路由协议,它将通告每个目标网络的子网掩码,支持不连续子网和VLSM
支持多种网络层协议,除IP协议外,还支持IPX、AppleTalk等协议。
对每一种网络协议,EIGRP都维持独立的邻居表、拓扑表和路由表;
EIGRP采用DUAL来实现快速收敛。运行EIGRP的路由器存储了邻居的路由表,因此能够快速适应网络中的变化。如果本地路由表中没用合适的路由且拓扑表中没用合适的备用路由,EIGRP将查询邻居以发现替代路由。查询将不断传播,直到找到替代路由或确定不存在替代路由使用DUAL算法,具有很好的路由收敛特性。
具有相同自治系统号的EIGRP和IGRP之间彼此可以交换路由信息。
使用多播和单播,EIGRP在路由器之间通信时使用多播和单播而不是广播,因此终端站不受路由更新和查询的影响。EIGRP使用的多播地址是224.0.0.10
无缝连接数据链路层协议和拓扑结构,EIGRP不要求对OSI参考模型的二层协议做特别的配置.不像OSPF对不同的二层协议要做不同配置,比如以太网和帧中继,EIGRP能够有效的工作在LAN和WAN中,而且EIGRP保证网络及不会产生环路(loop-free);而且配置起来很简单;支持VLSM;它使用组播和单播,不使用广播,这样做节约了带宽;它使用和IGRP一样的度量值算法,但是EIGRP度量值是32位的;
支持等价和非等价的负载均衡;
使用可靠传输协议(RTP)保证路由信息传输的可靠性。
EIGRP协议的配置与IGRP配置有相似之处,但由于它对VLSM的支持和众多的其他特性 使得在高级配置以及查看和监测命令方面与IGRP有许多不同之处,这是在配置EIGRP的实验中应注重的。
EIGRP计算方法
EIGRP选择一条主路由(最佳路由)和一条备份路由放在topology table(EIGRP到目的地支持最多6条链路).它支持几种路由类型:内部,外部(非EIGRP)和汇总路由.EIGRP使用混合度量值.
EIGRP Metric的5个标准
带宽(bandwidth),10的7次方除以源和目标之间最低的带宽乘以256(10的7次方除以以Kbit/s为单位的最小带宽,然后加上延迟之和除以10,最后乘于256)
延迟(delay),接口的累积延迟乘以256,单位是10微秒
可靠性(reliability),根据keepalive而定的源和目的之间最不可靠的可靠度的值
负载(loading),根据包速率和接口配置带宽而定的源和目的之间最不差的负载的值
最大传输单元(MTU),路径中最小的MTU.MTU包含在EIGRP的路由更新里,但是一般不参与EIGRP度的运算
EIGRP Metric的计算,一般情况下,K5=0;EIGRP度量值的计算公式为:256*{K1(10^7/带宽)+K2(10^7/带宽)/(256-负载)+K3(延迟)},由于默认情况下,K1和K3是1,其他的K值都是0.,所以通常情况下,度量值=256×(10^7/最小带宽+累积延时),如果修改K值,使K5不等于0,则 Metric 计算式变成:256*[K1(10^7/带宽)+K2(10^7/带宽)/(256-负载)+K3(延迟)]*[K5 / (可靠性+K4)],计算出的Metric值不是整数时自动取整,比如计算结果为8501.39,显示值将为8501。通过配置权重(K值),可以修改EIGRP度量值计算方式。可以再EIGRP配置模式使用命令:Metric weightTosK1 K2 K3 K4 K5来修改K值,Tos只有一个有效值0,否则将被忽略。EIGRP要求两台路由器的K值必须相同才能成为邻居。另外,K2,K4,,K5最好不要设置,因为这些参数设置为非零之后,会导致计算度量值时会考虑接口的负载和可靠性,而负载和可靠性会随时间变化,这将导致EIGRP重新泛洪拓扑数据,还可能导致路由器不断地选择不同的路由,由此导致网络不稳定。
EIGRP的数据包
EIGRP使用多种类型的packet,这些packet通过IP头部信息里的协议号88来标识:在EIGRP协议中,总共会使用5种类型的数据包,分别为Hello、Update、 Query、Reply、Ack,下面介绍各种数据包的功能与用途:
Hello是用来发现和维护EIGRP邻居关系的,目标地址为224.0.0.10,Hello包在邻居收到后不需要确认。
Update发给邻居的路由表,通过单播发送Update数据包,邻居收到后必须回复确认消息。
Query当路由信息丢失并没有备用路由时,使用Query数据包向邻居查询,邻居必须回复确认。
Reply是对邻居Query数据包的回复,也需要邻居回复确认。
Ack是对收到的数据包的确认,告诉邻居自己已经收到数据包了,收到Ack后,不需要再对Ack做回复,因为这是没有意义的,并且可能造成死循环。
由以上可以看出,5种数据包中,Update、Query、Reply在对方收到后,都需要回复确认,这些数据包是可靠的,回复是发送Ack;而Hello和Ack,是不需要回复的,因此被认为不可靠。
EIGRP中的几个关键词
邻接(adjacency),在刚启动的时候,路由器使用Hello包来发现邻居并标识自己用于邻居的识别.当邻居被发现以后,EIGRP会在它们之间形成一种邻接关系.邻接是指在这2个邻居之间形成一条交换路由信息的虚链路(virtual link).当邻接关系形成以后,它们之间就可以相互发送路由update,这些update包括路由器它所知道的所有的链路及其metric.对于每个路由,路由器都会基于它邻居宣告的距离(distance)和到达那个邻居的链路的cost来计算出一个距离。
可行距离(feasible distance):到达一个目的地的最短路由的度量值。
后继 (successor):后继是一个直接连接的邻居路由器,通过它具有到达目的地的最短路由。通过后继路由器将包转发到目的地。
通告距离(advertise distance):相邻路由器所通告的相邻路由器自己到达某个目的地的最短路由的度量值。
可行条件 (feasible conditon):上述四个术语,构成了可行条件,是EIGRP路由器更新路由表和拓扑表的依据。可行条件可以有效地阻止路由环路,实现路由的快速收敛。邻居宣告到达目标网络的的距离小于本地路由器到达目标网络的FD, AD < FD即 FC=ture.
可行后继 (feasible successor):如果一个邻居宣告到达目标网络的距离满足FC,那么这个邻居就成为FS,因而被保存在拓扑表中,用做备份路由。比如路由器到达目标网络172.16.5.0的FD为380672,而他邻居所宣告到达目标网络的距离为355072,这个邻居路由器满足FC,它就成为FS;如果邻居路由器宣告到达目标网络的距离为380928,即不满足FC,那么这个邻居路由器就不能成为FS,FS和FC是避免环路的核心技术,FS也是downstream router(下游路由器),因为从FS到达目标网络的距离比本地路由器到达目标网络的FD要小,存在一个或多个FS的目标网络被记录在拓扑表中。
活跃状态 (active state):当路由器失去了到达一个目的地的路由,并且没有可行后继可利用时,该路由进入活跃状态,是一条不可用的路由。当一条路由处于活跃状态时,路由器向所有邻居发送查询来寻找另外一条到达该目的地的路由。
被动状态 (passive state):当路由器失去了一条路由,而有一个可行后继,或者再找到一个后继时,该路由进入被动状态,是一条可用的路由。
拓扑表包括以下内容:目标网络的FD、所有的FD、每一个FS所宣告的到达目标网络的距离、本地路由器计算出的,经过每个FS到达目标网络的距离,即基于FS所宣告到达目标网络的距离和本地路由器到达那个FS的链路的cost、发现FS的网络相连的接口.
邻居表(Neighbor Table),每个路由器的RAM中都保存有关于邻居的地址和接口信息的表
恢复协议
EIGRP的Update包是非周期性发送的,
1.Hello包在一般的网络中(比如点到点,point-to-point)是每5秒组播1次(要随机减去1个很小的时间防止同步);
2.在多点(multipoint)X.25,帧中继(Frame Relay,FR)和ATM接口(比如ATM SVC)和ISDN PRI接口上,Hello包的发送间隔是60秒.
在所有的情况中,Hello包是不需要确认的.可以在接口配置模式下修改该接口的Hello包默认的发送间隔,命令为ip hello-interval eigrp.当一个路由器收到从邻居发来的Hello包的时候,这个Hello包包含了一个holdowntime,这个holdown time告诉这个路由器等待后续Hello包的最大时间.如果在超出这个holdown time之前没有收到后续Hello包,那么这个邻居就会被宣告为不可达,并通知DUAL这个邻居已丢失.默认hold time是3倍于Hello包发送间隔的,更高链路--默认Hello间隔和保持时间是5s和15s T1或低于T1链路--分别是60s和180s可以在接口配置模式下修改这个默认的holdown time,命令为ip hold-time eigrp.
EIGRP邻居信息都记录在邻居表(neighbor table)中,使用show ip eigrpneighbors命令查看IP EIGRP的邻居.
环路解决
EIGRP对于环路的防止考虑两方面:
1.水平分割(Split Horizon),永远不会在同一个接口下通告一条该接口学到的路由信息
2.路由的毒性逆转(Poison reverse),接收路由信息的接口,再从该接口通告出刚才学到的路由为不可达
触发条件:当两台路由器进行邻居初始化时,他们会互相以最大的metric值通告回刚才学到的路由信息(路由中毒)当拓扑发生改变时,会临时关闭水平分割和毒性逆转,重新学习拓扑发送查询请求时,会引起水平分割,比如当一个路由器查询一条未知网段去向时,他会向每一个邻居发送查询,处于该网段的继承者(successor)会返回查询给该路由器,而该路由器会反馈一个查询结果给其他邻居,不会再次告诉那个继承者要走这个网段应该要经过自己
优缺点
(1)EIGRP路由协议主要优点
精确路由计算和多路由支持。EIGRP协议继承了IGRP协议的最大的优点是矢量路由权。EIGRP协议在路由计算中要对网络带宽、网络时延、信道占用率和信道可信度等因素作全面的综合考虑,所以EIGRP的路由计算更为准确,更能反映网络的实际情况。同时EIGRP协议支持多路由,使路由器可以按照不同的路径进行负载分担。
较少带宽占用。使用EIGRP协议的对等路由器之间周期性的发送很小的hello报文,以此来保证从前发送报文的有效性。路由的发送使用增量发送方法,即每次只发送发生变化的路由。发送的路由更新报文采用可靠传输,如果没有收到确认信息则重新发送,直至确认。EIGRP还可以对发送的EIGRP报文进行控制,减少EIGRP报文对接口带宽的占用率,从而避免连续大量发送路由报文而影响正常数据业务的事情发生。
快速收敛。路由计算的无环路和路由的收敛速度是路由计算的重要指标。EIGRP协议由于使用了DUAL算法,使得EIGRP协议在路由计算中不可能有环路路由产生,同时路由计算的收敛时间也有很好的保证。因为,DUAL算法使得EIGRP在路由计算时,只会对发生变化的路由进行重新计算;对一条路由,也只有此路由影响的路由器才会介入路由的重新计算。
MD5认证。为确保路由获得的正确性,运行EIGRP协议进程的路由器之间可以配置MD5认证,对不符合认证的报文丢弃不理,从而确保路由获得的安全。
路由聚合。EIGRP协议可以通过配置,对所有的EIGRP路由进行任意掩码长度的路由聚合,从而减少路由信息传输,节省带宽。
实现负载分担。去往同一目的的路由表项,可根据接口的速率、连接质量和可靠性等属性,自动生成路由优先级,报文发送时可根据这些信息自动匹配接口的流量,达到几个接口负载分担的目的。
配置简单。使用EIGRP协议组建网络,路由器配置非常简单,它没有复杂的区域设置,也无需针对不同网络接口类型实施不同的配置方法。使用EIGRP协议只需使用router eigrp命令在路由器上启动EIGRP路由进程,然后再使用network命令使能网络范围内的接口即可。
(2)EIGRP路由协议主要缺点
没有区域概念。EIGRP没有区域的概念,而OSPF在大规模网络的情况下,可以通过划分区域来规划和限制网络规模。所以EIGRP适用于网络规模相对较小的网络,这也是矢量-距离路由算法(RIP协议就是使用这种算法)的局限所在。
定时发送HELLO报文。运行EIGRP的路由器之间必须通过定时发送HELLO报文来维持邻居关系,这种邻居关系即使在拨号网络上,也需要定时发送HELLO报文,这样在按需拨号的网络上,无法定位这是有用的业务报文还是EIGRP发送的定时探询报文,从而可能误触发按需拨号网络发起连接,尤其在备份网络上,引起不必要的麻烦。所以,一般运行EIGRP的路由器,在拨号备份端口还需配置Dialer list和Dialer group,以便过滤不必要的报文,或者运行TRIP协议,这样做增加路由器运行的开销。而OSPF可以提供对拨号网络按需拨号的支持,只用一种路由协议就可以满足各种专线或拨号网络应用的需求。
基于分布式的DUAL算法。EIGRP的无环路计算和收敛速度是基于分布式的DUAL算法的,这种算法实际上是将不确定的路由信息散播(向邻居发query报文),得到所有邻居的确认后(reply报文)再收敛的过程,邻居在不确定该路由信息可靠性的情况下又会重复这种散播,因此某些情况下可能会出现该路由信息一直处于活动状态(这种路由被称为活动路由栈),并且,如果在活动路由的这次DUAL计算过程中,出现到该路由的后继(successor)的测量发生变化的情况,就会进入多重计算,这些都会影响DUAL算法的收敛速度。而OSPF算法则没有这种问题,所以从收敛速度上看,虽然整体相近,但在某种特殊情况下,EIGRP还有不理想的情况。
EIGRP是Cisco公司的私有协议。Cisco公司是该协议的发明者和唯一具备该协议解释和修改权的厂商。如果要支持EIGRP协议需向Cisco公司购买相应版权,并且Cisco公司修改该协议没有义务通知任何其他厂家和使用该协议的用户。
拓扑图:
实验一:EIGRP基本配置
R1配置:
R1#en
R1#conf t
R1(config)#int e0/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int l0
R1(config-if)#ip add 1.1.0.1 255.255.255.0
R1(config-if)#int l1
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#int l2
R1(config-if)#ip add 1.1.2.1 255.255.255.0
R1(config-if)#exit
R1(config)#router eigrp 1 //启动eigpr进程,同时定义一个自治系统号为1
R1(config-router)#net 1.1.0.0 255.255.255.0
R1(config-router)#net 1.1.1.0 255.255.255.0
R1(config-router)#net 1.1.2.0 255.255.255.0
R1(config-router)#net 192.168.1.0 255.255.255.0
R1(config-router)#
R2配置:
R2#en
R2#conf t
R2(config)#hostname R2
R2(config)#int e0/0
R2(config-if)#ip add192.168.1.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int e0/1
R2(config-if)#ip add172.168.10.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int l0
R2(config-if)#ip add2.2.2.2 255.255.255.0
R2(config-if)#int l1
R2(config-if)#ip add8.8.8.8 255.255.255.0 //此环回口不宣告进EIGRP,模拟互联网
R2(config-if)#exit
R2(config)#router eigrp 2
R2(config-router)#net192.168.1.0 255.255.255.0
R2(config-router)#net172.168.10.0 255.255.255.0
R2(config-router)#no au
R2(config-router)#end
R3配置:
R3#en
R3#conf t
R3(config)#int e0/1
R3(config-if)#ip add 172.168.10.1255.255.255.0
R3(config-if)#no sh
R3(config-if)#int l0
R3(config-if)#ip add 3.3.3.3255.255.255.0
R3(config-if)#int l1
R3(config-if)#ip add 1.1.3.1255.255.255.0
R3(config-if)#int l2
R3(config-if)#ip add 1.1.4.1255.255.255.0
R3(config-if)#exit
R3(config)#router eigrp 1
R3(config-router)#net 172.168.10.0255.255.255.0
R3(config-router)#net 3.3.3.0255.255.255.0
R3(config-router)#net 1.1.4.0 255.255.255.0
R3(config-router)#net 1.1.3.0255.255.255.0
R3(config-router)#end
检查全网互通性,查看各路由器路由表信息和eigrp信息
EIGRP的自治系统号要匹配,否则无法学习到路由信息.命令如下:
R2(config)#no router eigrp 2
R2(config-router)#no net 192.168.1.0 255.255.255.0
R2(config-router)#no net 172.168.10.0 255.255.255.0
R2(config-router)#exit
R2(config)#router eigrp 1
R2(config-router)#net 192.168.1.0 255.255.255.0
R2(config-router)#net 172.168.10.0 255.255.255.0
R2(config-router)#end
2、EIGRP默认情况下在网络边界启动自动汇总,当你的网络中有不连续子网时,那么就要no auto-summary关闭自动汇总功能以支持无类路由协议,再用手工进行汇总,减少路由表大小,加快收敛速度。
R1(config)#router eigrp 1
R1(config-router)#no au
R1(config-router)#exit
R1(config)#int e0/0
R1(config-if)#ipsummary-address eigrp 1 1.1.0.0 255.255.252.0
R3(config)#router eigrp 1
R3(config-router)#no au
R3(config-router)#exit
R3(config)#int e0/1
R3(config-if)#ipsummary-address eigrp 1 1.1.0.0 255.255.248.0
3、EIGRP使用触发性更新,即网络发生变化时 (在R2上关闭一个接口,然后再打开观察)
R1(config-if)#debug eigrp packet//调试EIGRP协议
R2(config-if)#int e0/1
R2(config-if)#sh
R2(config-if)#no sh
4、注入默认路由(将R2的l0环回口当作出口,发布默认路由给R1、R3),由于EIGRP不会产生0.0.0.0的默认路由,而是借用带有D*的路由的下一跳作为缺省路由。需要在发布默认路由的R2上启用auto-summary或手工汇总
R2(config)#router eigrp 1
R2(config-router)#au
R2(config-router)#exit
R2(config)#ip default-network 2.2.2.0 //默认路由
5、EIGRP的被动接口可防止没有邻居的接口发送和接收路由更新信息(对R1和R3配置)
R1(config-if)#debug eigrp packet//调试EIGRP里所有环回口发送和接收hello包
R1(config-if)#router eigrp 1
R1(config-if)#passive-interface l0//配置L0为被动接口不发送和接收hello包
R1(config-if)#passive-interface l1
R1(config-if)#passive-interface l2
6、EIGRP的认证保证路由安全,注意EIGRP只支持密文的认证。EIGRP认证时,路由器发送最低ID的key,并且携带ID,只有ID和Key的值完全相同才能认证成功,key chain的名字只有本地有效,key chain名字不同不影响认证。
R1(config)#key chain cisco
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string cisco
R1(config-keychain-key)#exit
R1(config)#int e0/0
R1(config)#ip authentication mode eigrp 1 md5
R1(config)#ip authentication key-chain eigrp 1 cisco
R2(config)#key chain cisco
R2 (config-keychain)#key 1
R2 (config-keychain-key)#key-string cisco
R2 (config-keychain-key)#exit
R2 (config)#int range e0/0-1
R2 (config)#ip authentication mode eigrp 1 md5
R2 (config)#ip authentication key-chain eigrp 1 cisco
R3(config)#key chain cisco
R3 (config-keychain)#key 1
R3 (config-keychain-key)#key-string cisco
R3 (config-keychain-key)#exit
R3 (config)#int range e0/1
R3 (config)#ip authentication mode eigrp 1 md5
R3 (config)#ip authentication key-chain eigrp 1 cisco
7、使用STUB限制query消息。当某条路由掉失,并且没有可行后继时,掉失的那条路由处于active状态,EIGRP就会发送query消息给所有邻居,除了原先的后继者如果邻居也没有这条路由的信息,query消息将被发送到邻居的邻居。那么在EIGRP重新计算新的后继者之前,它必须获得所有邻居对query消息的reply。默认情况下。如果某个邻居在3分钟内没有对query消息作出reply,那么这条路由将stuck in active(SIA).并且路由器将重启与这个邻居的邻居关系。如果在大型的网络中发生这种状况,将会产生大量的查询及回复包。所以要使用Stub参数来限制EIGRP查询范围。
注释:eigrp stub connected 用于stub路由器只发布直连路由信息
eigrp receive-only 用于stub路由器只接收EIGRP路由更新,但不发送
eigrp stub staitc 用于stub路由器只重发布静态路由
eigrp stub summary 用于stub路由器只重发布汇总路由
在没有配置stub的情况下R1和R3路由器关闭loopback 0口。查看R1和R3将向R2 发送query信息。
R1(config)#int l0
R1(config-if)#shutdown
R3(config)#int l0
R3(config-if)#shutdown
R2#debug eigrp packets query
在R2上配置stub,此时R2将不接收R1和R3的query信息
R2(config-router)#router eigrp 1
R2(3config-router)#eigrp stub #默认STUB后面的参数是connected和summary
R2#debug eigrp packets query
8、EIGRP非等价负载均衡(图二)。路由协议都支持等价负载均衡,但是eigrp还支持非等价负载均衡,当多条链路度量不等时,也可以进行负载,充分利用链路。EIGRP非负载均衡的条件:
一、必须是FS
二、主路径的FD*X>FS必须大于FS的FD
R1配置:
R1#en
R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 192.168.12.1 255.255.255.0
R1(config-if)#no sh
R1(config)#int f0/1
R1(config-if)#ip add 192.168.13.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int l0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#router eigrp 1 //启动eigpr进程,同时定义一个自治系统号为1
R1(config-router)#net 192.168.12.0 255.255.255.0
R1(config-router)#net 1.1.1.0 255.255.255.0
R1(config-router)#net 192.168.13.0 255.255.255.0
R1(config-router)#no auto
R2配置:
R2#en
R2#conf t
R2(config)#hostname R2
R2(config)#int f0/0
R2(config-if)#ip add 192.168.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int f0/1
R2(config-if)#ip add 192.168.23.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int l0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#exit
R2(config)#router eigrp 1
R2(config-router)#net 192.168.12.0 255.255.255.0
R2(config-router)#net 192.168.23.0 255.255.255.0
R2(config-router)#net 2.2.2.0 255.255.255.0
R2(config-router)#no auto
R2(config-router)#end
R3配置:
R3#en
R3#conf t
R3(config)#int f0/0
R3(config-if)#ip add 192.168.23.3 255.255.255.0
R3(config-if)#no sh
R3(config)#int f0/1
R3(config-if)#ip add 192.168.13.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#int l0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#exit
R3(config)#router eigrp 1
R3(config-router)#net 192.168.23.0 255.255.255.0
R3(config-router)#net 192.168.13.0 255.255.255.0
R3(config-router)#net 3.3.3.0 255.255.255.0
R3(config-router)#no auto
完成配置后,在R1查看路由表和EIGRP拓扑表是否有了两条到达R3的3.3.3.0网络的路由。
R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, FastEthernet0/0
1.0.0.0/24 is subnetted, 1 subnets
C 1.1.1.0 is directly connected, Loopback0
C 192.168.13.0/24 is directly connected, FastEthernet0/1
2.0.0.0/24 is subnetted, 1 subnets
D 2.2.2.0 [90/409600] via 192.168.12.2, 00:00:51, FastEthernet0/0
3.0.0.0/24 is subnetted, 1 subnets
D 3.3.3.0 [90/409600] via 192.168.13.3, 00:02:51, FastEthernet0/1
D 192.168.23.0/24 [90/307200] via 192.168.13.3, 00:03:05, FastEthernet0/1
[90/307200] via 192.168.12.2, 00:03:06, FastEthernet0/0
R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 1.1.1.0/24, 1 successors, FD is 128256
via Connected, Loopback0
P 2.2.2.0/24, 1 successors, FD is 409600
via 192.168.12.2 (409600/128256), FastEthernet0/0
P 3.3.3.0/24, 1 successors, FD is 409600
via 192.168.13.3 (409600/128256), FastEthernet0/1
P 192.168.12.0/24, 1 successors, FD is 281600
via Connected, FastEthernet0/0
P 192.168.13.0/24, 1 successors, FD is 281600
via Connected, FastEthernet0/1
P 192.168.23.0/24, 2 successors, FD is 307200
via 192.168.12.2 (307200/281600), FastEthernet0/0
via 192.168.13.3 (307200/281600), FastEthernet0/1
R1#show ip eigrp topology all-links
IP-EIGRP Topology Table for AS(1)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 1.1.1.0/24, 1 successors, FD is 128256, serno 3
via Connected, Loopback0
P 2.2.2.0/24, 1 successors, FD is 409600, serno 12
via 192.168.12.2 (409600/128256), FastEthernet0/0
via 192.168.13.3 (435200/409600), FastEthernet0/1
P 3.3.3.0/24, 1 successors, FD is 409600, serno 8
via 192.168.13.3 (409600/128256), FastEthernet0/1
via 192.168.12.2 (435200/409600), FastEthernet0/0
P 192.168.12.0/24, 1 successors, FD is 281600, serno 1
via Connected, FastEthernet0/0
P 192.168.13.0/24, 1 successors, FD is 281600, serno 2
via Connected, FastEthernet0/1
P 192.168.23.0/24, 2 successors, FD is 307200, serno 6
via 192.168.12.2 (307200/281600), FastEthernet0/0
via 192.168.13.3 (307200/281600), FastEthernet0/1
通过以上的三命令发现R1只有一条通往R3的3.3.3.0网络的路由,但是确实存在两条路径可走,另一条之所以没有在路由表中出现,是因为从R2走的路径AD=FD(409600=409600),也就是说不满足成为FS(可行后继)的条件AD<FD。那么此时,我们手动修改R2的带宽和延迟使之满足AD<FD
R2(config-if)#int fa0/1
R2(config-if)#bandwith 100000
R2(config-if)#delay 10
R2(config-if)#exit
再查看R1的eigrp的拓扑表:
R1#sh ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 1.1.1.0/24, 1 successors, FD is 128256
via Connected, Loopback0
P 2.2.2.0/24, 1 successors, FD is 409600
via 192.168.12.2 (409600/128256), FastEthernet0/0
P 3.3.3.0/24, 1 successors, FD is 409600
via 192.168.13.3 (409600/128256), FastEthernet0/1
via 192.168.12.2 (412160/156160), FastEthernet0/0
P 192.168.12.0/24, 1 successors, FD is 281600
via Connected, FastEthernet0/0
P 192.168.13.0/24, 1 successors, FD is 281600
via Connected, FastEthernet0/1
P 192.168.23.0/24, 1 successors, FD is 284160
via 192.168.12.2 (284160/28160), FastEthernet0/0
via 192.168.13.3 (307200/281600), FastEthernet0/1
此时发现R2满足了FS的条件,接着就可以在R1上配置EIGRP非负载均衡值(VARANCE)。非等价负载均衡的流量分配方式是:选择度量最小的路径(最佳路径),选择负载均衡路径(FS)。用后者的metric值除以前者的metric值作为VARINCE,即412160/409600=2(有小数就进位,不可舍位)。
R1(config)#router eigrp 1
R1(config-router)#variance 2
再此查看R1的路由表:
R1#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, FastEthernet0/0
1.0.0.0/24 is subnetted, 1 subnets
C 1.1.1.0 is directly connected, Loopback0
C 192.168.13.0/24 is directly connected, FastEthernet0/1
2.0.0.0/24 is subnetted, 1 subnets
D 2.2.2.0 [90/409600] via 192.168.12.2, 00:00:46, FastEthernet0/0
3.0.0.0/24 is subnetted, 1 subnets
D 3.3.3.0 [90/409600] via 192.168.13.3, 00:00:46, FastEthernet0/1
[90/412160] via 192.168.12.2, 00:00:46, FastEthernet0/0
D 192.168.23.0/24 [90/307200] via 192.168.13.3, 00:00:48, FastEthernet0/1
[90/284160] via 192.168.12.2, 00:00:48, FastEthernet0/0
至此EIGRP负载均衡配置成功,下面测试:
R1#tracer 3.3.3.3 source 1.1.1.1
Type escape sequence to abort.
Tracing the route to 3.3.3.3
1 192.168.13.3 36 msec
192.168.12.2 44 msec
192.168.13.3 16 msec
R1#tracer 3.3.3.3 source 1.1.1.1
Type escape sequence to abort.
Tracing the route to 3.3.3.3
1 192.168.12.2 32 msec
192.168.13.3 32 msec
192.168.12.2 20 msec