CCNP路由实验之四 动态路由协议之EIGRP

2023-05-16

                         CCNP路由实验之四动态路由协议之EIGRP


 动态路由协议可以自动的发现远程网络,只要网络拓扑结构发生了变化,路由器就会相互交换路由信息,不仅能够自动获知新增加的网络,还可以在当前网络连接失败时找出备用路径。根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有RIPEIGRPOSPF外部网关协议主要用于多个自治域之间的路由选择,常用的是BGPBGP-4在一个路由器中,可同时配置静态路由和一种或多种动态路由。它们各自维护的路由表都提供给转发程序,但这些路由表的表项间可能会发生冲突。这种冲突可通过配置各路由表的优先级来解决。通常静态路由具有默认的最高优先级,当其它路由表表项与它矛盾时,均按静态路由转发。

EIGRP介绍:

EIGRP全名是Enhance Interio Gateway Routing Protocol其实质就是加强型的IGRPEIGRP是Cisco公司私有的路由协议.EIGRP是一个平衡混合型路由协议,既有传统的距离矢量协议的特点:路由信息依靠邻居路由器通告,遵守路由水平分割和反向毒化规则,路由自动归纳,配置简单,又有传统的链路状态路由协议的特点:没有路由跳数的限制,当路由信息发生变化时,采用增量更新的方式,保留对所有可能路由(网络的拓扑结构)的了解、支持变长子网掩码、路由手动归纳。该协议同时又具有自己独特的特点:支持非等成本路由上的负载均衡,采用差分更新算法(DUAL)在确保无路由环路的前提下,当路径更改时DUAL会传送变动的部分而不是整个路径表,而Router都有储存邻近的路径表,当路径变动时,Router可以快速地反应,EIGRP也不会周期性地传送变动讯息以节省频宽的,并实现快速收敛EIGRP还具有支持多个网络层的协议IPAppleTalkIPX三种协议。EIGRP的默认管理距离是90

EIGRP协议的特点如下。

运行EIGRP的路由器之间形成邻居关系,并交换路由信息。相邻路由器之间通过发送和接收Hello包来保持联系,维持邻居关系。Hello包的发送间隔默认值为5s钟。

  1. 运行EIGRP的路由器存储所有与其相邻路由器的路由表信息,以便快速适应路由变化;

  2. 存储整个网络拓扑结构的信息,以便快速适应网络变化;

  3. 假如没有合适的路由存在,EIGRP将查询其相邻的路由器,以便发现可以替换的路由。

  4. 采用触发更新,即只在路由器改变计量标准或拓扑出现变化时发送部分更新信息。

  5. 支持可变长子网掩码 (VLSM)和不连续的子网,EIGRP是一种无类路由协议,它将通告每个目标网络的子网掩码,支持不连续子网和VLSM

  6. 支持多种网络层协议,除IP协议外,还支持IPXAppleTalk等协议。

  7. 对每一种网络协议,EIGRP都维持独立的邻居表、拓扑表和路由表;

  8. EIGRP采用DUAL来实现快速收敛。运行EIGRP的路由器存储了邻居的路由表,因此能够快速适应网络中的变化。如果本地路由表中没用合适的路由且拓扑表中没用合适的备用路由,EIGRP将查询邻居以发现替代路由。查询将不断传播,直到找到替代路由或确定不存在替代路由使用DUAL算法,具有很好的路由收敛特性。

  9. 具有相同自治系统号的EIGRPIGRP之间彼此可以交换路由信息。

  10. 使用多播和单播,EIGRP在路由器之间通信时使用多播和单播而不是广播,因此终端站不受路由更新和查询的影响。EIGRP使用的多播地址是224.0.0.10

  11. 无缝连接数据链路层协议和拓扑结构,EIGRP不要求对OSI参考模型的二层协议做特别的配置.不像OSPF对不同的二层协议要做不同配置,比如以太网帧中继,EIGRP能够有效的工作在LANWAN中,而且EIGRP保证网络及不会产生环路(loop-free);而且配置起来很简单;支持VLSM;它使用组播单播,不使用广播,这样做节约了带宽;它使用和IGRP一样的度量值算法,但是EIGRP度量值是32位的;

  12. 支持等价和非等价的负载均衡;

  13. 使用可靠传输协议(RTP)保证路由信息传输的可靠性。

EIGRP协议的配置与IGRP配置有相似之处,但由于它对VLSM的支持和众多的其他特性 使得在高级配置以及查看和监测命令方面与IGRP有许多不同之处,这是在配置EIGRP的实验中应注重的。

EIGRP计算方法

EIGRP选择一条主路由(最佳路由)和一条备份路由放在topology table(EIGRP到目的地支持最多6条链路).它支持几种路由类型:内部,外部(非EIGRP)和汇总路由.EIGRP使用混合度量值.

EIGRP Metric5个标准

  1. 带宽(bandwidth),107次方除以源和目标之间最低的带宽乘以256(107次方除以以Kbit/s为单位的最小带宽,然后加上延迟之和除以10,最后乘于256)

  2. 延迟(delay),接口的累积延迟乘以256,单位是10微秒

  3. 可靠性(reliability),根据keepalive而定的源和目的之间最不可靠的可靠度的值

  4. 负载(loading),根据包速率和接口配置带宽而定的源和目的之间最不差的负载的值

  5. 最大传输单元(MTU),路径中最小的MTU.MTU包含在EIGRP的路由更新里,但是一般不参与EIGRP度的运算

  6. EIGRP Metric的计算,一般情况下,K5=0EIGRP度量值的计算公式为:256*{K110^7/带宽+K210^7/带宽)/256-负载)+K3(延迟)},由于默认情况下,K1K31,其他的K值都是0.,所以通常情况下,度量值=256×10^7/最小带宽+累积延时),如果修改K值,使K5不等于0,则 Metric 计算式变成:256*[K110^7/带宽)+K210^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种类型的数据包,分别为HelloUpdate QueryReplyAck,下面介绍各种数据包的功能与用途:

  1. Hello是用来发现和维护EIGRP邻居关系的,目标地址为224.0.0.10Hello包在邻居收到后不需要确认。

  2. Update发给邻居的路由表,通过单播发送Update数据包,邻居收到后必须回复确认消息。

  3. Query当路由信息丢失并没有备用路由时,使用Query数据包向邻居查询,邻居必须回复确认。

  4. Reply是对邻居Query数据包的回复,也需要邻居回复确认。

  5. Ack是对收到的数据包的确认,告诉邻居自己已经收到数据包了,收到Ack后,不需要再对Ack做回复,因为这是没有意义的,并且可能造成死循环。

由以上可以看出,5种数据包中,UpdateQueryReply在对方收到后,都需要回复确认,这些数据包是可靠的,回复是发送Ack;而HelloAck,是不需要回复的,因此被认为不可靠。



EIGRP中的几个关键词

  1. 邻接(adjacency),在刚启动的时候,路由器使用Hello包来发现邻居并标识自己用于邻居的识别.当邻居被发现以后,EIGRP会在它们之间形成一种邻接关系.邻接是指在这2个邻居之间形成一条交换路由信息的虚链路(virtual link).当邻接关系形成以后,它们之间就可以相互发送路由update,这些update包括路由器它所知道的所有的链路及其metric.对于每个路由,路由器都会基于它邻居宣告的距离(distance)和到达那个邻居的链路的cost来计算出一个距离。

  2. 可行距离(feasible distance):到达一个目的地的最短路由的度量值。

  3. 后继 (successor):后继是一个直接连接的邻居路由器,通过它具有到达目的地的最短路由。通过后继路由器将包转发到目的地。

  4. 通告距离(advertise distance):相邻路由器所通告的相邻路由器自己到达某个目的地的最短路由的度量值。 

  5. 可行条件 (feasible conditon):上述四个术语,构成了可行条件,是EIGRP路由器更新路由表和拓扑表的依据。可行条件可以有效地阻止路由环路,实现路由的快速收敛。邻居宣告到达目标网络的的距离小于本地路由器到达目标网络的FD AD < FD FC=ture.

  6. 可行后继 (feasible successor)如果一个邻居宣告到达目标网络的距离满足FC,那么这个邻居就成为FS,因而被保存在拓扑表中,用做备份路由。比如路由器到达目标网络172.16.5.0FD380672,而他邻居所宣告到达目标网络的距离为355072,这个邻居路由器满足FC,它就成为FS;如果邻居路由器宣告到达目标网络的距离为380928,即不满足FC,那么这个邻居路由器就不能成为FS,FSFC是避免环路的核心技术,FS也是downstream router(下游路由器),因为从FS到达目标网络的距离比本地路由器到达目标网络的FD要小,存在一个或多个FS的目标网络被记录在拓扑表中。

  7. 活跃状态 (active state):当路由器失去了到达一个目的地的路由,并且没有可行后继可利用时,该路由进入活跃状态,是一条不可用的路由。当一条路由处于活跃状态时,路由器向所有邻居发送查询来寻找另外一条到达该目的地的路由。

  8. 被动状态 (passive state):当路由器失去了一条路由,而有一个可行后继,或者再找到一个后继时,该路由进入被动状态,是一条可用的路由。

  9. 拓扑表包括以下内容:目标网络的FD、所有的FD、每一个FS所宣告的到达目标网络的距离、本地路由器计算出的,经过每个FS到达目标网络的距离,即基于FS所宣告到达目标网络的距离和本地路由器到达那个FS的链路的cost、发现FS的网络相连的接口.

  10. 邻居表(Neighbor Table),每个路由器RAM中都保存有关于邻居的地址和接口信息的表 


恢复协议

EIGRPUpdate包是非周期性发送的,

1Hello包在一般的网络中(比如点到点,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 time3倍于Hello包发送间隔的,更高链路--默认Hello间隔和保持时间是5s15s T1或低于T1链路--分别是60s180s可以在接口配置模式下修改这个默认的holdown time,命令为ip hold-time eigrp.

EIGRP邻居信息都记录在邻居表(neighbor table)中,使用show ip eigrpneighbors命令查看IP EIGRP的邻居.

 

环路解决

EIGRP对于环路的防止考虑两方面:

1水平分割Split Horizon),永远不会在同一个接口下通告一条该接口学到的路由信息

2路由的毒性逆转(Poison reverse),接收路由信息的接口,再从该接口通告出刚才学到的路由为不可达

触发条件:当两台路由器进行邻居初始化时,他们会互相以最大的metric值通告回刚才学到的路由信息(路由中毒)当拓扑发生改变时,会临时关闭水平分割和毒性逆转,重新学习拓扑发送查询请求时,会引起水平分割,比如当一个路由器查询一条未知网段去向时,他会向每一个邻居发送查询,处于该网段的继承者(successor)会返回查询给该路由器,而该路由器会反馈一个查询结果给其他邻居,不会再次告诉那个继承者要走这个网段应该要经过自己

 

优缺点

1EIGRP路由协议主要优点

精确路由计算和多路由支持。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命令使能网络范围内的接口即可。

2EIGRP路由协议主要缺点

没有区域概念。EIGRP没有区域的概念,而OSPF在大规模网络的情况下,可以通过划分区域来规划和限制网络规模。所以EIGRP适用于网络规模相对较小的网络,这也是矢量-距离路由算法RIP协议就是使用这种算法)的局限所在。

定时发送HELLO报文。运行EIGRP路由器之间必须通过定时发送HELLO报文来维持邻居关系,这种邻居关系即使在拨号网络上,也需要定时发送HELLO报文,这样在按需拨号的网络上,无法定位这是有用的业务报文还是EIGRP发送的定时探询报文,从而可能误触发按需拨号网络发起连接,尤其在备份网络上,引起不必要的麻烦。所以,一般运行EIGRP路由器,在拨号备份端口还需配置Dialer listDialer group,以便过滤不必要的报文,或者运行TRIP协议,这样做增加路由器运行的开销。而OSPF可以提供对拨号网络按需拨号的支持,只用一种路由协议就可以满足各种专线或拨号网络应用的需求。

基于分布式的DUAL算法。EIGRP的无环路计算和收敛速度是基于分布式的DUAL算法的,这种算法实际上是将不确定的路由信息散播(向邻居发query报文),得到所有邻居的确认后(reply报文)再收敛的过程,邻居在不确定该路由信息可靠性的情况下又会重复这种散播,因此某些情况下可能会出现该路由信息一直处于活动状态(这种路由被称为活动路由栈),并且,如果在活动路由的这次DUAL计算过程中,出现到该路由的后继(successor)的测量发生变化的情况,就会进入多重计算,这些都会影响DUAL算法的收敛速度。而OSPF算法则没有这种问题,所以从收敛速度上看,虽然整体相近,但在某种特殊情况下,EIGRP还有不理想的情况。

EIGRPCisco公司的私有协议。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信息

  1. 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、注入默认路由(将R2l0环回口当作出口,发布默认路由给R1R3),由于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  //默认路由


5EIGRP的被动接口可防止没有邻居的接口发送和接收路由更新信息(对R1R3配置)

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



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CCNP路由实验之四 动态路由协议之EIGRP 的相关文章

  • Command CompileSwiftSources failed with a nonzero exit code

    报错 xff1a Command CompileSwiftSources failed with a nonzero exit code 原因 xff1a 可能是项目目录下存在 同名不同文件夹的文件 解决方法 xff1a 检查 同名不同文件
  • Flutter 自定义SwitchButton

    效果 xff1a xff08 AppBar中间的SwitchButton xff09 代码 xff1a span class token keyword import span span class token string literal
  • diff算法swift版

    前几天用chatgpt生成diff算法 xff0c 配上swift的简洁语法 xff0c 可以称之为锦上添花 下面是代码 xff1a span class token keyword func span span class token f
  • Flutter 调用摄像头扫描二维码插件

    原生平台如果想要实现二维码扫描很简单 xff0c 例如iOS可以根据Version库或者AVFoudation库很快定制出相应工具来 xff0c Flutter只能依赖第三方插件了 插件依赖 xff1a span class token k
  • 【Linux】搭建Yapi接口管理工具

    在年前员工访谈时发现 xff0c 前后端协作开发会出现一定的内耗现象 xff0c 在当前前后端分离的情况下前端往往会因为后端接口存在问题影响对接速度 xff0c 在接口设计不明确的情况下还需要反复确认和沟通 公司过往使用ApiManager
  • 树莓派3B安装VScode

    树莓派3B安装VScode sudo apt install code xff08 一句命令搞定 xff09 xff08 ps 本来想在树莓派3b上安装VScode 网上找半天 xff0c 结果又臭又长还不能解决问题 xff0c 直到翻了贼
  • Angular is running in the development mode. Call enableProdMode() to enable the production mode.

    控制台输出 xff1a Angular is running in the development mode Call enableProdMode to enable the production mode 解决方法 xff1a 在mai
  • Debian SSH免密登录

    安装服务后修改主配置文件 vim etc ssh sshd config 改这个配置文件 在第32行PermttRootLogin yes 允许root用户登录 systemctl restart sshd 然后再重启一下服务 修改端口号
  • HDFS编程实践(Hadoop3.1.3)

    一 利用Shell命令与HDFS进行交互 1 目录操作 在HDFS中为hadoop用户创建一个用户目录 span class token builtin class name cd span usr local hadoop bin hdf
  • 浅谈<<EOF作用与用法

    其实我对这个东西的用法理解也不深 xff0c 目前也只用过两次 xff0c 但真的可以解决大问题 先说一下 lt lt efo的作用 xff0c 官方的说法是这样的 xff1a 在shell脚本中 xff08 bash编程 xff09 xf
  • 斐讯 r1 起死回生

    此方法已无法使用 xff0c 请需要的网友留言 xff0c 并留邮箱 xff0c 我发新的方法 这里写不了外部连接 2022 7 2 昨天三哥给我这么个东西 xff0c 当初卖2499元 xff0c 因为公司没了 xff0c 现在只能当蓝牙
  • 深入学习 esp8266 wifimanager源码解析(打造专属自己的web配网)(最全的wifimanager介绍))

    原文地址 xff1a https my oschina net u 4269090 blog 3329239 1 前言 废话少说 xff0c 本篇博文的目的就是深入学习 WifiManager 这个github上非常火爆的ESP8266 w
  • 华为p40pro NFC模拟加密小区卡详细教程

    先说点题外话 xff1a 我们小区的门禁卡是加密的 xff0c 去年小区强制使用门禁卡 xff0c 配一个卡要30块 xff0c 我们家附近的所有配门禁卡的店一听说我们小区都说做不了 我对这个东西有一点了解 xff0c 小区不可能用智能卡只
  • 求助帖:如何获取局部变量

    最近在做一个获取和风天气城市 ID的小东西 xff0c 大致内容如下 xff1a 通过 xff1a QWeather getGeoCityLookup MainActivity this inputct new QWeather OnRes
  • arduino esp-01s开发环境配置(备忘)

    很久没玩arduino了 xff0c 前天一个网友提了一个问题要我帮忙 xff0c 结果电脑重新做了系统 xff0c 又要重新设置环境 xff0c 结果忘记了 xff0c 做个备忘 xff0c 省得以后又要重新研究 1 附加开发板管理器网址
  • crontab设置定时重启Apache服务

    重启Apache方法 创建一个新的crontab文件 crontab rootcron root用户设定服务 同时 xff0c 文件副本在 var spool cron目录中 列出crontab文件 每天4点重启 crontab l 0 4
  • PVE安装画面灰白只显示鼠标解决方案

    PVE安装画面灰白只显示鼠标解决方案 最近喜欢到某鱼上折腾一下工控机主板回来搞PVE xff0c 发现不少小伙伴遇到与我一样的问题 xff0c 网上搜索文章 xff0c 并没有很完整 xff0c 于是整理了一下 出现这种情况一般是PVE5
  • 解决java poi之SXSSFWorkbook导出大数据量时自适应列宽效果异常问题

    场景 xff1a 使用SXSSFWorkbook导出大数据量 百万行 excel报表 xff0c 表格样式统一使用自适应列宽时 xff0c 发现导出表头行格式异常 xff0c 异常情况如下图所示 xff1a 分析 xff1a 从导出效果看
  • Win11基于WSL2安装CUDA、cuDNN和TensorRT(2023-03-01)

    文章目录 2023 03 06 更新2023 03 05 更新前言TensorRT介绍环境配置CUDA Driver检查安装 安装CUDA安装nvcc安装cuDNN安装验证 安装TensorRT安装验证 2023 03 06 更新 如果有小
  • python OCR Tesseract 训练

    Ps xff1a Tesseract识别英文和字母效果好 中文的话 xff0c 虽然有训练数据也可以识别 xff0c 但是效果不是很好 Tesseract的安装和使用 xff1a 1 首先用 pip 下载包 pip install tess

随机推荐

  • ffmpeg实战教程(十)ffmpeg/camera实现最近很火的视频壁纸,相机壁纸

    本篇实现一个有意思的玩意儿 xff0c 视频壁纸 xff0c 相机壁纸 这玩意好像现在还都是国外版本 xff0c 哈哈 先上图 xff1a 视频壁纸 相机壁纸 1 动态壁纸制作的知识 xff1a 每一个动态壁纸都继承自WallpaperSe
  • C/C++ 连接两个字符串

    一 xff1a C风格字符串连接 include lt iostream gt using namespace std int main const char str 61 34 hello 34 const char str2 61 34
  • 返回urls跳转后的页面地址

    string urls 61 34 http xxx xxx com SoftDown aspx SoftID 61 275781 amp fdid 61 119418725f1d4e20 34 Response Redirect urls
  • 阶乘数码(基础算法-高精度)

    P1591 阶乘数码 洛谷 计算机科学教育新生态 luogu com cn include lt bits stdc 43 43 h gt include lt iostream gt include lt unordered map gt
  • MPICH的安装与使用

    1 安装MPICH之前 xff0c 首先要在centos6 5上安装c编译器 xff0c 使用指令安装如下 xff1a yum install make 安装make程序 yum install gcc 安装GCC编译器 xff08 支持C
  • 使用cmake生成可执行文件以及开发中常用到的一些指令说明

    span class token macro property span class token directive keyword include span span class token string lt iostream gt s
  • Ubuntu18.04 CUDA10 cudaGetDeviceCount returned 35

    报错现象 我的环境是Ubuntu18 04 安装了CUDA10 运行deviceQuery报错如下 xff1a deviceQuery Starting CUDA Device Query Runtime API version CUDAR
  • Wampserver最全安装教程(一定全绿图标)

    Wampserver最全安装教程 xff08 一定全绿图标 xff09 通过以下步骤进行一定可以全绿 xff0c 一定要按照步骤来哦 xff1a 打开http wampserver aviatechno net 滚到最下面 xff0c 下载
  • WSL安装及配置

    WSL xff0c 全称Windows Subsystem for Linux xff0c 是微软为Windows 10 11集成的功能 xff0c 可以在Windows中不用虚拟机使用Linux 使用WSL首先要开启Windows功能 x
  • “invalid character ‘\x1f‘ looking for beginning of value“ 报错解决方法

    目录 问题背景 分析方法 问题原因 问题背景 这个问题来源于我在开启kubectl proxy代理的时候 xff0c 通过kubectl apply f xxx yaml向代理提交一个configMap对象 xff0c 返回了 34 Err
  • 08-1 UIControl 及其子类 UISegmentedControl 、UISlider

    1 UIControl UIControl是所有控制控件 xff08 比如UIButton UISlider UISegmentedControl等 xff09 的基类 只要跟控制有关的控件都是继承于该类 UISlider是可以响应滑动事件
  • android Settings.Secure的使用

    在Android中 xff0c 许多的系统属性都在settings应用当中进行设置的 xff0c 比如wifi 蓝牙状态 xff0c 当前本机语言 xff0c 屏幕亮度等等一些相关的系统属性值 这些数据主要是存储在数据库中 xff0c 对应
  • 关于VM一启动虚拟机电脑就重启或蓝屏的几个解决方法

    最近在刚开始学习Linux在使用VMware创建新的虚拟机时只要一点启动虚拟机电脑就直接重启了 xff0c 最开始以为是vm版本或者是Linux镜像的原因来来回回换了好几个vm和Linux xff0c 电脑重启了二三十次都没成功启动虚拟机
  • Golang + Qt5 桌面开发终极解决方案

    Golang 43 Qt5 桌面开发终极解决方案 首先要安装Qt和Golang 一 安装前准备 1 下载Go1 4版本的压缩包版本 xff0c 解压至C盘User目录下 2 安装MinGW 并配置相关环境变量 参考链接 xff1a MinG
  • Oracle snapper ASH监控工具

    Oracle snapper ASH监控工具 snapper工具是由国外技术人员 xff0c 将基于Oracle ash技术原理用来监控数据库会话的负载情况 比较适合小范围时间监控 xff0c 可以生成多个快照 xff0c 例如1小时内 x
  • Matlab之数据筛选

    Matlab功能强大 xff0c 这里介绍一些数据筛选方法 xff0c 至少让其达到Excel的数据筛选程度 一 从多维数组中取某些行或列组合为新数组 示例如下 xff1a 取某些列组成新数组 newdata span class toke
  • kurento-room的搭建教程,绝对可行

    目前网上参考的kurento room的搭建教程 xff0c 比如https blog csdn net u010602143 article details 106670864 已经跑不起了 我估计原来也跑不起 原因很简单 xff0c k
  • Python 爬取携程所有机票

    打开携程网 xff0c 查询机票 xff0c 如广州到成都 这时网址为 xff1a http flights ctrip com booking CAN CTU day 1 html DDate1 61 2018 06 15 其中 xff0
  • Rust Web框架warp使用

    目录 简介快速开始Request和Response从path和body中获取参数从query中获取参数 设置状态码 静态文件 目录websocket重定向tls 简介 warp是一个超级便捷 可组合 速度极快的异步Web框架 目前最新版本为
  • CCNP路由实验之四 动态路由协议之EIGRP

    CCNP 路由实验之四 动态路由协议之 EIGRP 动态路由协议可以自动的发现远程网络 xff0c 只要网络拓扑结构发生了变化 xff0c 路由器就会相互交换路由信息 xff0c 不仅能够自动获知新增加的网络 xff0c 还可以在当前网络连