> 文档中心 > EIGRP(Enhanced Interior Gateway Routing Protocol,增加型内部网关路由协议)

EIGRP(Enhanced Interior Gateway Routing Protocol,增加型内部网关路由协议)

        EIGRP是Cisco公司于1992年开发的一个无类别距离矢量路由协议,它融合了距离矢量和链路状态两种路由协议的优点。EIGRP是Cisco的专有路由协议, 是Cisco的IGRP协议的增加版。IGRP是一种有类距离矢量协议,Cisco IOS 12.3版以后不再支持该协议。

        EIGRP的基本配置简单易懂,因此在小型网络中得到了广泛的应用。EIGRP的高级特性则可实现快速收敛、高扩展性并且可以对多种协议进行路由,能够满足复杂的网络环境的需求。


目录

动态路由概述

路由

路由域

 建立EIGRP邻居关系

EIGRP的特征

EIGRP特性

EIGRP包含的4个基本组件

EIGRP术语

EIGRP操作概述

EIGRP的数据包类型

EIGRP数据包格式

1.带EIGRP参数的TLV

2. IP内部路由的TLV

3.IP外部路由的TLV​

EIGRP的SIA及查询范围的限定

(1)在路由器的接口配置路由汇总

(2)把远程路由器配置为EIGRP的Stub路由器

EIGRP的路由选择

理解EIGRP的度量

修改EIGRP计时器

 


动态路由概述

        动态路由协议是在网际网络中用于交换路由和连通信息的一组过程,算法和消息。如果没有动态路由协议,所有网络(与路由器直连连接的网络除外)均必须采用静态方式定义。动态路由协议可以对网络条件变化(如链路故障)做出响应。

路由

        所有的路由协议都有相同的用途:获取远程网络的信息,并在网络拓扑结构发送变化时快速做出调整。路由协议实现该目的的方法有该协议使用的算法及其运行特征来决定。动态路由协议的性能因路由协议类型的不同而有所不同。

路由协议为路由器提供最新的路由表,代价是对路由器的内存和处理能力提出了更多要求。首先,交换路由信息增加了网络带宽的消耗开销。这种开销可能是个问题,特别是对路由器之间带宽不高的链路。其次,当路由器获得路由信息之后,路由协议需要处理接收的信息。因此,使用这些协议的路由器只有拥有足够的资源,才能实现协议的算法和及时执行数据包的路由和转发。

路由域

        路由域是一种自治系统(AS), 它是接受统一管理的一.组路由器。公司内部网络及其与ISP之间的互连就是一个典型路由域的例子。ISP与公司内部网络由不同管理部门控制。因此,需要采用互连方式。这种场景往往采用静态路由。但是,如果公司与ISP之间存在多条链路,会发生什么情况?如果公司使用多个ISP,又会怎样?这时,静态路由协议恐怕并不适合。为了连接这些实体,必须与不同管理部门负责管理的机构建立通信。再如,合并、收购或建立要保留自身IT资源的子公司。原有的网络可能需要连接网络,但也可能需要将网络作为独立实体运营。必须在两者之间建立--条沟
通渠道。第三个例子与第一-个例子 关系密切,那就是公共互联网。还有很多不同的实体相互交织。图3-1展示了3种自治系统,其中一个系统用于私营公司,另外两个用于ISP。

        要适应这些类型的场景,需要采用以下两类路由协议。

  • 内部网关协议(IGP):这类路由协议用于在自治系统内交换路由信息。EIGRP 、
    IS-IS (中间系统到中间系统)协议、RIP (路由信息协议)和OSPF (开放式最短路
    径优先)协议都是IGP的典型例子。
  • 外部网关协议( EGP ): 这类路由协议用于在自治系统之间进行路由。BGP (边界网关
    协议)是目前网络首选的EGP。外部网关协议设计于1982年,是首个EGP。如今,人
    们开始渐渐转向BGP,认为EGP已经过时。BGP是公共互联网上使用的一种路由协议。

 建立EIGRP邻居关系

        EIGRP是作为比较老的内部网关路由协议(Interior Gateway RoutingProtocol,IGRP)的增强版本进行开发的,与高级内部网关协议有许多相同的特点,比如高速收敛、部分更新以及支持多个网络层协议的能力。配置EIGRP的第一步是在多种接口类型上建立EIGRP邻居参数和不同的WAN技术是如何影响会话建立的。

EIGRP的特征

        EIGRP不同于其他路由协议的关键性能包括快速收敛、支持可边长子网掩码(Variable-Lengt Subnet Masking,VLSM)、部分更新以及支持多种网络层协议。有关这款协议的设计及其架构的基本描述,已通过指导性RFC的形式进行了发布,因此Cisco得以在控制EIGRP和客户体验的同时,将这项协议开发给其他厂商,以提升EIGRP的互操作性。

        EIGRP是Cisco的私有协议,这项协议将链路状态型协议和距离矢量型协议的优势结合了起来。不过,EIGRP是一种距离矢量路由协议。EIGRP包含了很多RIP等其他距离矢量协议中所没有的高级特性,这也正是EIGRP被称为高级距离矢量路由协议的原因。
        EIGRP和它的前身IGRP一样容易配置,而且适用于大量的网络拓扑。但是,让EIGRP成为高级距离矢量协议的原因,在于这项协议中增加了许多链路状态协议的特性,比如动态的邻居发现等。EIGRP是增强型的IGRP,因为它在任何时候都可以进行快速收敛,并且保证拓扑是无环的。这项协议的特性包括下面这些。

  • 快速收敛: EIGRP 使用扩散更新算法(Diffusing Update Algorit hm, DUAL)来实现快速收敛。运行EIGRP的路由器会将自己邻居的路由表储存起来,因此可以快速适应网络的变化。如果本地路由表中没有合适的路由,且拓扑表中也没有合适的备份路由,EIGRP才会询问邻居来发现替换路由。直至找到替换路由或者确定没有替换路由存在时,EIGRP才会停止发送查询消息。
  • 部分更新:EIGRP发送部分触发更新而不是周期更新。只有当路径发生变化或路由度量值发生变化时才会发送。这些更新消息中只会包含变化的链路信息,而不会包含整个路由表中的信息。部分更新的传播会被自动限制,以便保证唯有需要这些信息的路由器才会接收到这些更新。因此,与IGRP相比,EIGRP所消耗的带宽显著降低。这种工作方式也与链路状态协议的工作方式不同,链路状态协议会将变化发送更新给区域内的所有路由器。
  • 支持多种网络层协议:EIGRP使用负责特定网络层协议需求的模块来支持IP第4版(IPv4) 和IP第6版(IPv6)。 在IPv4和IPv6网络中部署EIGRP时,它的快速收敛及复杂的度量计算系统可以提供优越的性能和稳定性。
  • 使用组播和单播: EIGRP会使用组播和单播,而不是广播来建立路由器之间的通信。因此,终端站点不会受到路由更新或查询消息的影响。IPv4的EIGRP使用的组播地址是224. 0. 0.10而IPv6的EIGRP使用的组播地址则是FF00::A。
  • 支持VLSM:EIGRP是一种无类路由协议,所以它会通告每个目的网络的子网掩码。因此,EIGRP可以支持不连续的子网和VLSM。
  • 跨越所有数据链路层协议和拓扑的无缝连通性:EIGRP不需进行特殊的配置就能跨越任何2层协议进行工作。其他路由协议,比如开放最短路径优先(Open ShortestPath First, OSFP)协议,则在配置方面对于以太网和帧中继等不同的2层协议存在不同的要求。EIGRP 的设计初衷是在LAN和WAN环境中进行有效的操作。EIGRP的标准中包含了对WAN专用点到点链路和非广播多路访问(NonBroadcastMulti -Access ,NBMA)拓扑的支持。在跨越WAN链路建立邻居关系时,EIGRP可以适应不同类型的介质和速率,并且可以通过配置来限制协议在WAN链路上使用的带宽总量。
  • 复杂的度量值: EIGRP是通过32位数来表示度量值的,因此足够精确。EIGRP支持非等价度量负载分担,因此管理员可以在网络中更加高效地分配流量。
  1. 通过发送和接收Hello包来建立和维护邻居关系。
  2. 采用组播(224.0.0.1)或单播进行路由更新。
  3. EIGRP的默认管理距离为90或170。
  4. 采用无触发更新和部分更新,减少带宽消耗。
  5. 是无类别的路由协议,支持VLSM和不连续子网,默认开启路由自动汇总功能,支持在任意运行EIGRP协议的接口手工汇总。
  6. 使用协议独立模块(Protocol Dependent modules, PDM)来支持IP、IPX和AppleTalk等多种网络层协议。对每一种网络协议,EIGRP都维持独立的邻居表、拓扑表和路由表,并且存储整个网络拓扑结构的信息,以便快速适应网络变化。
  7. 采用带宽、延迟、可靠性和负载计算度量值,度量值的颗粒度精细(32位)范围为1~4294967296。
  8. EIGRP使用扩散更新算法(Diffusing Update Algorithm,DUAL)来实现快速收敛并确保没有路由环路。
  9. 使用可靠传输协议(Reliable Transport Protocol,RTP)保证路由信息传输的可靠性和有序性,它支持组播和单播的混合传输。
  10. 支持等价负载(Equal-cost)和非等价(Unequal-cost)的负载均衡(Load Balancing)。
  11. 于数据链路层协议无缝连接,EIGRP不要求针对第二层协议做特殊的配置。

EIGRP特性

        EIGRP中使用的关键技术之- -是可靠传输协议( Reliable Transport Protocol, RTP),这项技术的作用是实现可靠的信息交换。
        如图2-1所示,EIGRP 直接运行在IP层上,其协议号为88。RTP是EIGRP中的一项组件,负责把EIGRP数据包可靠、有序地传输给所有邻居设备。它支持将组播或单播数据包混合进行传输。在网络段上使用组播时,数据包会被发送给EIGRP的预留组播地址:在IPv4中,这个地址为224.0.0.10,在IPv6中为FF02::A。

         由于效率原因,RTP仅会采用可靠的方式来发送特定的EIGRP数据包,接收方需要发送一条EIGRP确认消息。例如,在以太网这类有组播能力的多路访问网络中,不需要以可靠方式单独向所有邻居发送Hello包。此时,EIGRP会发送-一个组播Hello包,其中包含一个标识符,告知接收方这个数据包不需要确认。其他类型的包,比如更新包,则包含表.示需要确认的标识符。可靠传输协议可以快速发送组播包,即使还有数据包未经确认也会继续发送。在链路拥有多种速率的情况下,协议的这项特性有助于将网络收敛时间保持在一个比较低的水平。

EIGRP包含的4个基本组件

  • 邻居发现/恢复。
  • 可靠的传输协议。
  • DUAl有限状态机。
  • 基于协议的模块。

        邻居发现/恢复是指路由器用来动态了解直连网络.上的其他路由器的过程。当邻居无法到达或运行不正常时,路由器也必须执行发现操作。只需定期发送小型数据包,在开销极低的情况下即可完成此过程。只要收到hello数据包,路由器便可确定邻居处于活动状态并正常运行。- -经确认,相邻的路由器间就能交换路由信息。

        可靠的传输协议(不要与实时协议(RTP) 混淆,用于通过IP通信传输语音)负责通过可靠有序的方式将EIGRP数据包传输到所有邻居。支持同时使用组播数据包或单播数据包。只须完美传输部分EIGRP数据包。为了提高效率,仅在必要时提供可靠性。例如,在具有多项组播功能(如以太网)的多路访问网络上,无需通过可靠方式将hello数据包分别发送给所有邻居。因此,EIGRP在发送每个多播hello数据包时,会在数据包中随附说明,通知接收方无需对该数据包进行确认。其他类型的数据包(如更新)需要确认,数据包中将予以指示。当存在等待确认的未确认数据包时,可靠的传输协议还可以快速发送多播数据包。这样可确保存在变速链路时,依然能够保持较短的收敛时间。

        DUAL有限状态机在所有路由计算中均纳入了决策过程。跟踪所有邻居通告的所有路由。DUAL使用距离信息(称为“度量”)选择有效的无环路路径。DUAL选择将要基于可行后继路由插入路由表的路由。后继路由是指用于转发数据包的相邻路由器,它具有到达路由环路外的目的地的最低成本路径。当没有可行后继路由,但邻居通告该目的地时,必须重新进行计算。在此过程中,确定新的后继路由。重新计算路由所需的时间量会影响收敛时间。即使重新计算并不需要占用大量处理器资源,最好也要尽可能避免重新计算。当拓扑发生变化时,DUAL测试可行后继路由。如果有可行后继路由,则会使用发现的任意可行后继路由,以避免所有不必要的重新计算。稍后,将详细介绍可行后继路由。

        基于协议的模块负责满足网络层的协议特定需求。例如,IP-EIGRP 模块负责收发封装在IP中的EIGRP数据包。IP-EIGRP负责解析EIGRP数据包并通知DUAL接收到新的信息。IP-EIGRP 要求DUAL做出路由决策,决策结果被存储到IP路由表中。IP-EIGRP负责充分分配其他IP路由协议学习的路由。
 

EIGRP术语

  1. 后继(Successor):是一个直接连接的邻居路由器,通过它到达目的网络的度量值最小。后继是提供主要路由的路由器,该路由器被放入拓扑表和路由表中。对于同一目的的网络可存在多个后继。
  2. 可行后继(Feasible Successor): 是一个直接连接的邻居路由器,但是通过它到达目的地的度量值比通过后继路由器的高,而且它的通告距离小于通过后继路由器到达目的网络:的可行距离。可行后继是提供备份路由的路由器,该路由仅被放入拓扑表中。对于同一目的网络,可存在多个可行后继。
  3. 可行距离(Feasible Distance,FD):到达目的网络的最小度量。
  4. 通告距离(Reported Distance,RD):邻居路由器所通告的它自己到达目的网络的最小的度量值,也有资料把RD称为AD(Advertised Distance)。
  5. 可行性条件(Feasible Condition,FC)是EIGRP路由器更新路由表和托盘表的依据。可行性条件可以有效阻止路由环路,实现路由的快速收敛。可行性条件的公式为RD<FD。
  6. Hello: 以组播的方式定期发送,用于建立和维持邻居关系。Hello包的确认号始终为0,因此不需要确认。默认情况下,在点到点链路或者带宽大于T1的多点链路上,EIGRP Hello .数据包每5s发送一次。 在带宽小于T1的低速链路上, EIGRP Hello数据包每60s发送一次。保持时间是收到此数据包的EIGRP邻居在认为发出通告的路由器发生故障之前应该等待的最长时间。默认情况下,保持时间是Hello间隔的3倍。到达保持时间后,EIGRP将删除邻居以及从邻居学到的所有拓扑表中的条目。
  7. 更新(Update):当路由器收到某个邻居路由器的第一个Hello包时,以单播传送方式发送一个包含它所知道的路由信息的更新包。当路由信息发生变化时,以组播的方式发送只包含变化路由信息的更新包。
  8. 查询(Query): 当一条链路失效,并且在拓扑表中没有可行后继路由时,路由器需要重新进行路由计算,路由器就以组播的方式向它的邻居发送--一个查询包,以询问它们是否有一条到目的地的路由。查询包通常是组播包,但是也有时候是单播包。
  9. 答复(Reply):以单播的方式回复查询方,对查询数据包进行应答。
  10. 确认(ACK):以单播的方式发送的Hello包,包含一个不为0的确认好,用来确认更新、查询和答复数据包。ACk不需要确认。

EIGRP操作概述

        EIGRP协议的操作是基于存储在三个表中的信息来实现的:邻居表、拓扑表和路由表。
        存储在邻居表中的主要信息是一组EIGRP路由器已经与之建立邻接关系的邻居设备。标识邻居的是其主IP地址和指向该邻居的直连接口。
        拓扑表包含邻居路由器通告的所有目的路由。拓扑表中的每个条目都与通告该目的网络的那些邻居相互关联。拓扑表中会记录每个邻居所通告的度量值。这个度量值是邻居存储在路由表中,标识到达特定目的的度量值。另一个重要的信息是这台路由器到达同-一个目的网络的度量值。这个度量值是邻居通告的度量加上到达邻居的链路开销。到达目的网络度量值最优的路由称为后继路由(successor),这种路由会被放在路由表中并通告给其他邻居。
        在EIGRP中,建立和发现邻居路由的过程会同时进行。以图2-2中的拓扑为例,这个
过程可以概括为如下所示。

  1. 一台新的路由器(此例中为路由器R1)在链路上启动,并通过所有配置EIGRP的接口对外发送Hello包。
  2. 在一个接口,上接收到Hello包的路由器(R2)通过更新数据包进行应答,这个数据包中包含了路由表中的所有路由,但不包含通过该接口学习到的路由(水平分割)。R2向R1发送一个更新包1,但在R2发送Hello包给R1之前,邻居关系尚未建立。来自R2的更新包设置了初始化位,表示这是初始化过程。更新包中会包含邻居(R2)所知道的路由信息,其中包括邻居为每个目的通告的度量值。
  3. 在两台路由器都交换了Hello包且邻居邻接关系也已经建立起来之后,R1会向R2回复一个ACK数据包,表示自己接收到了更新信息。
  4. R1提将所有更新包的信息提取到拓扑表中。拓扑表包含所有相邻的邻接路由器通告的目的网络。表中会列出每个目的、所有可以到达目的的邻居,以及它们对应的度量值。
  5. R1给R2发送一个更新包。
  6. 收到更新包后,R2向R1发送一个ACK(确认)数据包。

        在R1和和R2成功交换更新包之后,它们就可以使用拓扑表中的后继路由来更新增加的路由表。

EIGRP的数据包类型

        EIGRP使用以下5种数据包。

  • Hello/ACK。
  • 更新。
  • 查询。
  • 应答。
  • 请求。

       正如前文所说,hello 消息是邻居用于发现/恢复的组播。无需确认。空hello数据包也可用作确认(ACK)。ACK往往通过单播地址进行发送,并且其中包含非零确认号。
        更新用于提供路由相关信息。当发现新邻居时,发送更新数据包,这样邻居可以自行构建EIGRP拓扑表。在这种情况下,更新数据包为单播形式。其他情况下(如链路成本调整),更新数据包为组播形式。
        查询和应答用于查找和传输路由。查询始终为组播形式,除非因响应接收查询而发送。查询ACK始终以单播形式传回发出查询的后继路由。应答往往为响应查询而发送,用于指示发送方无需进人活动状态,因为其具有可行后继路由。应答将以单播形式发送到查询发送方。查询和应答均需要以可靠的方式传输。
 

注意EIGRP 还具有两种其他类型的数据包,但无关紧要:请求数据包和IPX SAP数据包。请求数据包是专用数据包,从未在EIGRP中全面推行。网间数据包交换(IPX) EIGRP具有IPX SAP数据包。这些数据包自身具有可选代码,因而从技术角度而言是另一种数据包类型。

EIGRP数据包格式

        每个EIGRP数据包都是由EIGRP数据包头部和TLV (类型/长度/值)构成。EIGRP数据包头部和TLV被封装到一个IP数据包中。在该IP数据包中,协议字段被设为88以代表EIGRP。如果EIGRP数据包为组播包,则目的地址被设为组播地址“224.0.0.10”; 如果EIGRP数据包被封装在以太网帧内,则组播目的MAC地址为“01-00-5E-00-00-0A”。EIGRP数据包格式如图3-1所示。.

         每个EIGRP数据包都包含EIGRP数据包头部,它是每个EIGRP数据包的开始部分,各
字段的含义如下所述。

  1. 版本:始发EIGRP进程处理的版本。
  2. 操作码: EIGRP 数据包的类型。
  3. 校验和:基于除了IP 头部的整个EIGRP数据包来计算的校验和。
  4. 标记:通常设置为0x0000001.
  5. 序列号:用在RTP中的32位序列号。
  6. 确认序列号:是本地路由器从邻居路由器那里收到的最新的一一个32位序列号。
  7. 自治系统号: EIGRP路由进程的ID。

1.带EIGRP参数的TLV

        EIGRP头部的后面就是多种类型的TLV字段,如图3-2所示的是EIGRP度量参数(类型为0x0001)的TLV,它用于传递度量值计算的权重和保持时间。具体的度量值计算方法稍后介绍。

2. IP内部路由的TLV

        EIGRP的IP内部路由(类型为0x0102)的TLV如图3-3所示,各个字段的含义如下所述。

  1. 下一跳:路由条目的下一跳的IP地址。
  2. 延迟:从源到达目的的延迟总和,单位为us
  3. 带宽:链路上所有接口的最小带宽,单位为Kbps
  4. 最大传输单元:路由传递方向的所有链路中最小的最大传输单元,某些EIGRP文档可能讲述MTU(最大传输单元)是计算EIGRP路由度量值的参数之一,但这是错误的。MTU并不是EIGRP所用的度量标准参数。MTU虽然包括路由更新中,但不用于计算路由度量值。
  5. 跳数:到达目的地路由器的个数,范围为1~255。
  6. 可靠性:沿着路由传递方向到达目的地的路径上接口的出站误码率的总和,范围为1~255。
  7. 负载:沿着路由传递方向到达目的地的路径上接口的出站负载的总和,范围为1~255。
  8. 保留:保留位,总是设置为0x0000。
  9. 前缀长度:之网掩码的长度。
  10. 目的地:路由的目的地址,即目标网络地址。

3.IP外部路由的TLV

  1.  源路由器:重分布外部路由到EIGRP自治系统的路由器ID,它是IP地址格式
  2. 源自治系统号:始发路由的路由器所在的自治系统号。
  3. 任意标记:用来携带路由映射图的标记。
  4. 外部协议度量:外部协议的度量,在和IGRP协议之间重分布时,用该字段跟踪IGRP
    协议的度量值。
  5. 外部协议ID:表示外部路由是从哪中协议学到的。
  6. 标志:目前仅定义了两个标志,0x01表示外部路由,0x02表示该路由是候选的默认
    路由。
     

EIGRP的SIA及查询范围的限定

        作为一种高级距离向量协议,EIGRP依靠邻居提供路由信息,当丢失路由后,EIGRP路由器将在拓扑表中查找可行后继。如果找到,将不把原来的路由切换到主动状态,而是将可行后继提升为后继,并把路由放到路由表中,无须使用DUAL算法重新计算路由。如果拓扑表中没有可行后继,则该路由被置为主动状态,EIGRP路由器向所有邻居路由器发送查询(除了到达后继的那个接口,水平分割限制),以便寻找一条可以替代的路由。如果被查询的路由器知道一条替代路由,它就把这条替代路由放进应答包中发送给发出查询的源路由器。如果接收到查询的路由器没有替代路由的信息,它将继续发送给自己的其他邻居,直到找到可以替代的路由为止。因为EIGRP使用可靠的组播来寻找替代路由,路由器必须收到被查询的所有路由器的应答才能重新进行计算路由。如果有一个路由器的应答还没有收到的话,发出查询的源路由器就必须等待。默认情况下,如果在3分钟内某些路由器没有对查询做出响应,这条路由就进入“stuckinactive(SIA)”状态,然后路由器将重置和这个没有做出应答的路由器的邻居关系。为了避免SIA情形的发生或者降低SIA的发生频率,必须限制查询的范围,通常有以下两种方法。

(1)在路由器的接口配置路由汇总

        良好的IP地址规划是方便执行路由汇总的前提。路由汇总不仅可以减小路由表,节省CPU时间和带宽,还可以降低网络进入SIA状态的概率,因为它减少了收到查询消息了路由器数量。

(2)把远程路由器配置为EIGRP的Stub路由器

        当一个路由器配置为Stub路由器时,它的邻居就不会向它发送查询包,从而可以限制EIGRP的SIA查询的范围。
        除了上述的两种方法外,还有其他的一些限制查询范围的方法,诸如路由过滤或接口包过滤等。

EIGRP的路由选择

        每台EIGRP路由器都会维护-一个邻居表。此表包含与该路由器邻接的直连EIGRP路由器列表。邻居关系用于跟踪这些邻居的状态。EIGRP使用一-种低开销Hello协议与邻居建立连接并监控连接状态。
        每台EIGRP路由器会为每个被路由的协议配置维护拓扑表。拓扑表包含路由器从其直连EIGRP邻居获取的每个目标的路由条目。EIGRP从拓扑表中选择到每个目标的最佳路由,然后将这些路由添加到路由表中。
        EIGRP使用以下两个参数来确定到目标的最佳路由(后继路由)和所有备份路由(可行后继路由):

  • 通告距离(advertised distance,AD):EIGRP邻居到特定网络的EIGRP度量。
  • 可行距离( feaible distance, FD ):从某个EIGRP邻居获取的特定网络AD加上到达该邻居的EIGRP度量。这个总和表示从路由器到远程网络的端到端度量。路由器比较到达特定网络的所有FD,然后选择最低的FD并将其放入路由表中。

        EIGRP拓扑表包含每个EIGRP邻居所知的所有路由。如图3-4所示,路由器A和路由器B将各自的路由表发送给路由器C,路由器C的路由表如图所示。路由器A和路由器B都有到网络10.1.1.0/24 的路由,到其他网络的路径未显示。

        在路由器C的拓扑表中,有两条路径可到达网络10.1.1.0/24。路由器C到达路由器A和路由器B的EIGRP度量是1000。将此度量(1000) 添加到每个路由各自的AD,结果即表示路由器C到达网络10.1.1.0/24 的必经FD。
        路由器C选择最小FD (2000), 并将其安装在IP路由表中作为到达10.1.1.0/24 的最佳路由。路由表中安装的FD最小路由称为“后继路由”。
        如果存在一个或多个可行后继路由,则路由器C会为后继路由选择-一个备份路由,称为“可行后继路由”。要成为可行后继路由,路由必须满足以下可行性条件:下一跳路由器的AD必须小于当前后继路由的FD (因此,该路由被标记为可行后继路由,也就是到达目的地的无环路路径)。此规则用于确保网络无环路。
        如果由于拓扑发生变化等原因造成后继路由无效,或者邻居改变了度量,则DUAL会检查目的路由是否有可行后继路由。如果发现可行后继路由,DUAL会直接使用该路由,避免重新计算路由。如果没有可行后继路由,路由将从被动状态变为活动状态(主动向备用路由的相邻路由器发送查询),并且必须重新计算才能确定新的后继路由。
 

注意在图3-4 中,EIGRP度量值、FD值和AD值均已经过简化,从而确保该场景更加易
于理解。真实度量通常更大。

理解EIGRP的度量

        EIGRP度量可以采用多种标准,但默认情况下EIGRP仅使用其中两个标准。

  • 带宽:源和目的之间所有出站接口的最小带宽,以千位/秒为单位。
  • 延迟:路径上所有接口延迟的积累总和,以零点几微秒为单位。

        以下标准也可以用于EIGRP度量,但不推荐使用这些标准,因为它们往往会导致频繁重新计算拓扑表。

  • 可靠性:该值表示根据Keepalive数据包而定的源网络和目的网络间的最低可靠性。
  • 负载:该值表示根据数据包速率和接口上配置的带宽而计算出的源网络和目的网络间的最差负载。
  • K值:K值指出于管理原因设置的参数,用于操控EIGRP度量值。不建议更改K值。度量计算中将使用这些值,默认情况下会将它们设置为1和0。这样,默认K值才不会影响度量(K1、K3为1-K1、K4、K5为0)。K值的含义如下。
    • K1:带宽修饰符。
    • K2:负载修饰符。
    • K3: 延迟修饰符。
    • K4:可靠性修饰符。
    • K5:其他可靠性修饰符。

        EIGRP使用复合度量公式计算度量值。公式包含K1 ~ K5 5个K值,它们称为EIGRP度量权重。默认情况下,K1和K3设置为1, K2、K4和K5设置为0。因此,计算默认复合度量时仅使用带宽和延迟值。EIGRP邻居之间的度量计算方法(K值)和EIGRP AS编号必须匹配。使用默认K值和换算度量的度量计算示例如图3-5所示。

        EIGRP使用换算值计算总度量:256* ([K1* 带宽] + [K2*带宽] / [256 -负载]+K3*延迟) * (K5/ [可靠性+ K4]),其中,如果K5=0,(K5/ [可靠性+ K4])项不使用(即它等于1)。使用默认K值,度量计算可以简化为256* (带宽+延迟)。图3-5使用换算值计算度量。延迟和带宽经过换算,以便从数学上组成方程式。10^7用于带宽,10 则用于延迟。这有助于确保度量为可管理数字。
        虽然邻居路由器之间会通过EIGRP数据包交换最大传输单位(MTU),但计算EIGRP度量时并不考虑MTU因素。

使用show interface 命令,可以检查计算路由度量时所用的实际带宽、延迟、可靠性和负载值。示例3-2中输出显示了Sial0/0/0接口的复合度量中所用的值。

修改EIGRP计时器

        EIGRP是基于链路类型确定默认的计时器值。如果默认的值不适用于某些特定的网络拓扑,可以修改Hello和保持计时器值。
        修改Hello和保持计时器的主要原因是为了改善收敛时间。这对于低速NBMA链路尤其有吸引力,在低速NBMA链路上,默认的Hello和保持计时器为60秒和180秒,这个时间相对比较长。然而,在决定更改默认计时器值之前需要考虑一些注意事项。
        与其他的IGP (如OSPF, EIGRP)相比,EIGRP邻居间的Hello和保持计时器不需相同就能成功建立EIGRP邻居关系,但计时器值不对称可能导致EIGRP邻居关系出现震荡以及网络出现不稳定。
        例如,如果将链路一-端的Hello间隔设置为5秒,默认保持时间设置为15 秒,而将另一端Hello间隔设置为30秒,路由器的邻居关系将建立15 秒,然后在下一个15秒内断开。

        如果增加了链路上的Hello间隔,就可能导致网络需要更长时间来监测潜在的故障,因此收敛时间也会增加。反过来,如果将Hello计时器减小到极小值,则可能导致路由流量对链路产生很高的占用率。
        要想更改EIGRP计时器,可以使用接口配置命令ip hello-interval eigrp as-number hello-time-interval和ip hold-time eigrp as-number hold-time interval。这些命令中使用的自治系统编号必须与EIGRP进程的自治系统编号-一致。间隔的值的单位是秒。例2-15显示了在BR3.上修改这些计时器的示例。

 帧中继上的EIGRP邻居关系

        帧中继支持两种不同的接口类型:

  • 模拟多路访问网络的多点逻辑接口;
  • 点到点物理接口或逻辑点到点子接口。

        在点到多点子接口.上配置EIGRP时,要使用一个IP子网。为了模拟广播多路访问网络并让EIGRP通过帧中继虚电路(Virtual Circuit, VC)发送组播数据包,必须在帧中继静态映射语句中添加关键字broadcast,使用接口配置命令frame-relaymapipip-addressdlci broadcast。

        帧中继多点子接口可用于部分网状和全网状拓扑。部分网状帧中继网络必须处理可能的水平分割问题,因为这会阻止路由更新从接收到的接口被重新传输出去。
        通过点到点主机接口配置EIGRP时,要为每个子接口使用一个不同的IP子网。一个帧中继物理接口.上可以创建几个点到点子接口。这些是模拟租用线路网络的逻辑接口,与点到点物理接口的路由转发的方式相同。因为点到点子接口有一个数据链路连接标识符(Data-Link Connection Identifier, DLCI),所以不需要静态映射。组播流量在不需要额外配置的情况下就可以进行传输。此外,从拓扑的角度看,EIGRP 认为点到点子接口是独立的物理接口,所以没有发生水平分割问题的可能性。帧中继点到点子接口适用于星型拓扑。

 

 

素彩网