思科内部网关路由协议(IGRP)用于TCP/IP和开放式系统互联(OSI)网络。原始 IP 版本于 1986 年设计并成功部署。IGRP使用距离矢量路由技术,这样每台路由器就不必知道整个网络的所有路由器/链路关系。每个路由器以相应的距离通告目标。每台路由器在听到信息后,都会调整距离并将其传播给相邻路由器。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本文档没有任何特定的前提条件。
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。
IGRP的距离信息表示为可用带宽、延迟、负载利用率和链路可靠性的组合。这样可以调整链路特性,以实现最佳路径。
EIGRP是思科的IGRP增强版,有三个版本:一个用于IP,一个用于网际网络数据包交换(IPX),一个用于AppleTalk。它们都使用相同的分布式更新算法(DUAL)。 在IGRP中发现的相同距离矢量技术也可用于EIGRP,并且基本的距离信息保持不变。此协议的收敛属性和运行效率有了显著改善。当保留在IGRP时的现有投资,这允许改进的体系结构。
收敛技术的基础是在 SRI International 进行的研究。DUAL用于在路由计算的每一瞬间获得环路自由。这使拓扑更改所涉及的所有路由器可以同时得到同步。未受拓扑更改影响的路由器不参与重新计算。在收敛时间这一方面,采用 DUAL 时可以与其他所有现有路由协议相匹敌。
EIGRP 有四个基本组成部分:
邻居发现/恢复
可靠传输协议
DUAL 有限状态机
协议相关模块
邻居发现/恢复程序是路由器动态获悉他们的直接连接网络上的其他路由器的程序。路由器还必须发现何时无法访问邻居或邻居无法正常操作。通过周期性发送小型 hello 数据包,能够以较低的开销完成此过程。只要收到hello信息包,路由器便能够确定邻居是否存活或运行。确定状态后,相邻路由器即可交换路由信息。
可靠传输协议负责保证EIGRP数据包有序地传输到所有邻居。它支持组播或单播数据包的混合传输。某些EIGRP数据包必须可靠传输;其他人则不然。为提高效率,只在必要时提供可靠性。例如,在具有组播功能(如以太网)的多路访问网络中,无需单独向所有邻居可靠地发送hello。相反,EIGRP将发送单个组播hello,并在数据包中显示指示,通知接收方数据包不需要确认。其他类型的数据包(如更新)需要确认;这在数据包中指示。可靠传输具有在未确认数据包挂起时快速发送组播数据包的规定,这有助于确保在存在速度变化的链路时收敛时间保持较低。
DUAL 有限状态机包含所有路由计算的决策过程。它会对所有邻居通告的全部路由都进行跟踪。DUAL 使用距离信息(称为度量)来选择高效的无环路路径。DUAL 根据可行后继路由器选择要插入路由表中的路由。后继是用于信息包转发的相邻路由器,它拥有通往目的地的成本最低的路径。该目的地不属于路由环路的一部分。当没有可行后继路由器,但有邻居通告目的地时,必须重新计算。这是确定新的后继路由器的过程。重新计算路由所花的时间会影响收敛时间。即使重新计算不占用处理器,在不必要时避免重新计算也是有利的。出现拓扑更改时,DUAL 将对可行后继路由器进行测试。如果没有,DUAL将使用它找到的任何数据,以避免不必要的重新计算。
协议相关模块负责网络层协议的特定要求。例如,IPX-EIGRP模块负责发送和接收封装在IPX中的EIGRP数据包。IPX-EIGRP负责传递EIGRP数据包,并向DUAL通知收到的新信息。IPX-EIGRP要求DUAL做出路由决策,其结果存储在IPX路由表中。
IPX-EIGRP提供以下功能:
自动重分发 — IPX — 路由信息协议(RIP)路由自动重分发到EIGRP,IPX-EIGRP路由自动重分发到RIP,用户无需输入任何命令。使用no redistribute路由器子命令可以关闭重分发。IPX-RIP和IPX-EIGRP都可在路由器上完全关闭。
增加网络宽度 — 使用IPX-RIP时,网络的最大可能宽度为15跳。启用IPX-EIGRP后,最大可能的宽度为224跳。由于EIGRP度量足够大,足以支持数千跳,因此扩展网络的唯一障碍是传输层跳数计数器。当IPX数据包经过15台路由器且通过EIGRP获知到到达目的地的下一跳时,思科只增加传输控制字段来解决此问题。当RIP路由用作到目的地的下一跳时,传输控制字段会照常递增。
增量SAP更新 — 定期发送完整的SAP更新,直到找到EIGRP邻居,此后仅当SAP表发生更改时。这可以利用EIGRP的可靠传输机制,因此必须存在IPX-EIGRP对等体才能发送增量SAP。如果特定接口上不存在对等体,则定期SAP将在该接口上发送,直到找到对等体。此功能通常在串行接口上自动执行,如果需要,可在LAN介质上配置。
活动状态 — 当发生路由重新计算时,拓扑表条目被视为处于活动状态。
自治系统(AS) — 自治系统是由共享共同路由策略的共同管理下的网络集合。自治系统可以包括一个或多个网络。属于自治系统的所有路由器都必须配置相同的自治系统编号。
DUAL — 一种无环路由算法,用于距离矢量或链路状态,提供路由表的扩散计算。DUAL由J.J. Garcia-Luna-Aceves博士在SRI International开发。
外部跳数 — 到目的地的跳数,该目的地在重分发的协议中通告给路由器。例如,如果路由器收到RIP更新,通告目的地的跳数为三跳,当此RIP信息重分发到EIGRP时,这三跳将存储为外部跳数,并且此信息将在整个EIGRP自治系统中传递。
外部路由 — 如果EIGRP路由不来自与接收该路由的路由器进程相同的自治系统,则路由器会将其视为外部路由。RIP派生路由始终是外部路由,从另一个自治系统重分发的EIGRP路由也是如此。
可行后继 — 当有可行后继路由器时,会尝试将目的条目从拓扑表移动到路由表。指向目标的所有最低成本路径共同形成一个集合。在这个集合中,通告度量标准低于当前路由表度量指标的邻居,视为可行后继路由器。可行的后继被路由器看作目的地的下行邻居。这些邻居和关联度量存放在转发表中。当邻居更改其通告的度量或网络中发生拓扑更改时,可能必须重新评估可行后继路由器集。然而,这并非属于路由重新计算。
增量SAP更新 — 仅在SAP信息发生更改时发送的SAP更新。
无穷大 — 4294967295(所有1的–1或32位)。
内部路由 — 如果EIGRP路由源自与接收该路由的路由器进程相同的自治系统,则路由器会将其视为内部路由。只有直连到运行EIGRP的Cisco路由器的网络才能是内部网络。
邻居(或对等体) — 两个通过公共网络彼此连接的路由器称为相邻邻居。邻居动态发现彼此并交换EIGRP协议消息。每台路由器都会保留一个拓扑表,其中包含从每台邻居获知的信息。
邻居表 — 每台路由器保持有关相邻邻居的状态。获知最新发现的相邻时,将记录相邻的地址和接口。此信息存储于邻居数据结构中。邻居表会保存这些条目。每个协议相关模块都有一个邻居表。当邻居发送 hello 消息时,会通告 HoldTime。HoldTime 是指路由器将某个邻居视为可到达且可操作的时间长度。如果在保持时间内未听到hello数据包,则保持时间将过期。HoldTime 结束后,将向 DUAL 告知拓扑更改。邻居表条目还包括可靠传输机制所需的信息。将会用到序列号,以使确认信息与数据包相匹配。记录从邻居接收的最后一个序列号,因此可以检测顺序混乱的数据包。传输列表用于根据每个邻居的可能重发,排队信息包。往返时间计时器保存在邻居数据结构中,用于估测最佳重传间隔。
被动状态 — 当路由器未为此目标执行路由重新计算时,拓扑表条目处于被动状态。
查询 — 当重新路由重新计算开始时发送到所有EIGRP邻居的EIGRP数据包类型。有关详细信息,请参阅参考。
重分发 — 除了同时运行IPX-RIP和IPX-EIGRP外,路由器还可以将信息从一个路由协议重分发到另一个路由协议。RIP度量不直接转换为IPX-EIGRP度量,反之亦然,因此会为重分发的路由分配人工度量。路由器在重分发时使用以下人工度量:
RIP到EIGRP - RIP路由所接收接口的可靠性、负载和最大传输单位(MTU),加上转换为十微秒的IPX刻度数用作IPX-EIGRP度量。RIP跳数和RIP滴答会保留并随IPX-EIGRP更新在整个网络中传递,以用于路由环路检测和重分发回RIP。
EIGRP到RIP — 当路由首次从RIP重分发到EIGRP时记录的RIP跳数和刻度(见上文)以1递增,并在RIP中通告。这会导致整个EIGRP自治系统(无论其大小)显示为一个RIP跳数离开。为防止目的地距离通告到RIP的跳数超过223,如果EIGRP跳数(在EIGRP自治系统中每跳递增)加上原始RIP跳数超过223,则目的地被视为不可达,不会重新分发到RIP。内部EIGRP路由通告的RIP度量为1。
应答 — 响应邻居查询而发送的一种EIGRP数据包。请参阅参考。
水平分割 — 通常,连接到广播型IPX网络且使用距离矢量路由协议的路由器使用水平分割机制来防止路由环路。水平分割会阻止路由器从产生该信息的任何接口通告有关路由的信息。由于DUAL提供环路自由,因此水平分割不是必需的,但可以在任何接口上调整或关闭。为节省带宽,默认情况下为打开状态。使用帧中继或交换式多兆位数据服务(SMDS)网络的客户可能希望在这些接口上将其关闭。
后继路由器 — 已满足可行性条件且已被选为转发数据包的下一跳的相邻路由器。
拓扑表 — 拓扑表由IPX路由进程填充,并由DUAL有限状态机执行操作。它包含相邻路由器通告的所有目标。与每个条目相关的是目的地地址和通告目的地邻居列表。对于每个邻居,都会记录所通告的度量。这就是邻居存储在其路由表中的度量。如果邻居正在通告此目的地,则必须使用路由,转发信息包。这是距离矢量协议必须遵循的重要规则。与目的地相关的还有路由器用于到达目的地的权值。这是来自所有邻居的最佳通告的度量标准和到最佳邻居标准的链路开销。这是路由器在路由表中使用并向其他路由器通告的权值。
Update — 发送的EIGRP数据包的类型,包含EIGRP路由信息。请参阅参考。
RIP路由会自动重分发到EIGRP,EIGRP路由会自动重分发到RIP,用户不会输入任何重分发命令。默认情况下,不同EIGRP进程之间的重分发不会打开。
EIGRP路由优先于RIP路由,除非EIGRP通告中的外部跳数大于RIP跳数。外部跳数是最初进入EIGRP自治系统时用于通告此路由的RIP跳数。
内部EIGRP路由始终优先于外部EIGRP路由。这意味着给定两条到达目的地的EIGRP路径,始发于EIGRP自治系统的路径始终优先于未源自自治系统的EIGRP路径,而不考虑度量。重分发的RIP路由始终在EIGRP中通告为外部路由。
为目的地接收的、确定为可行后继路由的所有EIGRP路由都放在拓扑表中。如果RIP路由是目的地的当前首选路径,且该目的地也在EIGRP中通告,则RIP路由也会出现在拓扑表中(在via字段中用重分发的字表示)。路由表中未使用的RIP路由不会显示在拓扑表中。路由表中未使用的EIGRP路由将显示在拓扑表中。
路由将在路由表中,但当1)它已连接,但未列在路由器子命令网络列表中且没有邻居通告它,或者2)它是RIP路由,并且我们没有通告它的EIGRP邻居,RIP重分发被关闭。
当拓扑表条目连接时,其后继路由器将为零,但路由器子命令网络列表中不包含该条目。路由器至少有一个邻居通告了此网络。当发出no redistribute rip命令时,通常会出现这种情况。
在所有其他情况下,路由表中的路由应位于拓扑表中,并且这些条目应具有非零后继计数。
IPX EIGRP数据包在以标准IPX报头开头的IPX数据包中传输。报头的套接字字段中的值0x85BE,以及数据包类型字段中的值0(未知),可标识EIGRP数据包。这些数据包由标准EIGRP报头组成,后跟一组由类型/长度/值(TLV)三小组组成的可变长度字段。下表显示EIGRP数据包报头的格式。
字段 | 长度(以字节为单位) | 描述 |
---|---|---|
version | 1 | EIGRP版本。EIGRP有两个主要版本,版本0和1。Cisco IOS®软件版本低于10.3(11)、11.0(8)和11.1(3),运行EIGRP的早期版本。 |
OpCode | 1 | 以下值之一:
|
校验和 | 2 | 整个数据包(包括EIGRP报头)上的标准IP校验和。不包括IP报头。 |
标志 | 4 | 以下值之一:
|
序列 | 4 | 32位序列号。 |
确认 | 4 | 32位序列号。具有非零ACK字段的hello数据包应被解码为确认(ACK)数据包,而不是hello数据包。 |
AS编号 | 4 | 自治系统编号. |
EIGRP报头后面是一个或多个TLV。下表列出了常规TLV和IPX特定TLV。
编号 | 类型 |
---|---|
一般TLV类型 | |
0x0001 | 增强的IGRP参数 |
0x0003 | 序列 |
0x0004 | 软件版本 |
0x0005 | 下一组播序列 |
IPX特定TLV类型 | |
0x0302 | IPX内部路由 |
0x0303 | IPX外部路由 |
IPX内部路由TLV(TLV类型0x0302)由报头和一个或多个目的网络地址组成。下表列出了此报头中的字段。每个网络号的长度为4个字节。
字段 | 长度(以字节为单位) | 描述 |
---|---|---|
下一跳网络 | 4 | 网络是下一跳。 |
下一跳主机 | 6 | 主机是下一跳。 |
延迟 | 4 | 以10毫秒/256为单位。延迟0xFFFFFF表示无法到达的路由。 |
带宽 | 4 | 单位为2,560,000,000/kbps |
MTU | 3 | 数据包MTU大小。 |
跳数 | 1 | 当前跳数。 |
可靠性 | 1 | 值255表示100%的可靠性。 |
加载 | 1 | 值255表示100%负载。 |
预留 | 2 | 未使用 |
IPX外部路由TLV(TLV类型0x0303)由报头和一个或多个目的网络地址组成。下表列出了此报头中的字段。每个网络号的长度为4个字节。
与内部路由TLV不同,外部路由TLV包括AS编号、外部度量和外部延迟等字段。
字段 | 长度(以字节为单位) | 描述 |
---|---|---|
下一跳网络 | 4 | 网络是下一跳。 |
下一跳主机 | 6 | 主机是下一跳。 |
路由器 ID | 6 | 始发路由器的路由器ID。 |
AS编号 | 4 | EIGRP域的标识号。 |
任意标记 | 4 | 可用于承载由路由映射设置的标记。 |
协议 ID | 1 | 以下值之一:
|
预留 | 1 | 未使用 |
外部度量 | 2 | 重分发的RIP路由的跳数。IPX RIP路由会自动重分发到IPX EIGRP中作为外部路由。IPX RIP度量被复制到EIGRP路由的外部数据部分。当IPX EIGRP路由重分发回IPX RIP时,RIP跳数将设置为原始重分发点中的RIP跳数,增加1。 |
外部延迟 | 2 | 重分发路由的延迟值。当IPX EIGRP路由重分发回IPX RIP时,RIP路由的IPX延迟字段在外部度量字段中设置为IPX延迟值。 |
延迟 | 4 | 以10毫秒/256为单位。延迟0xFFFFFF表示无法到达的路由。 |
带宽 | 4 | 单位为2,560,000,000/kbps |
MTU | 3 | 数据包MTU大小。 |
跳数 | 1 | 当前跳数。 |
可靠性 | 1 | 值255表示100%的可靠性。 |
加载 | 1 | 值255表示100%负载。 |
预留 | 2 | 未使用。 |
在EIGRP数据包中传输IPX SAP数据包时,IPX SAP数据包由Opcode值为6的标准EIGRP报头(请参阅本节的第一表)组成,后跟没有原始IPX报头的标准IPX SAP数据包的标准负载。思科路由器生成的每个IPX SAP数据包最多可承载7个64字节的SAP条目,加上32字节的IPX开销(总共480字节),加上介质封装开销。
[no] ipx routing[node] | 要启用IPX路由,请使用ipx routing 全局配置命令。如果省略节点,Cisco IOS软件会使用当前分配给它的硬件MAC地址作为其节点地址。这是第一个以太网、令牌环或光纤分布式数据接口(FDDI)卡的MAC地址。如果路由器中没有令人满意的接口(例如仅串行接口),则必须指定节点。ipx routing命令可启用IPX-RIP和SAP服务。 |
ipx router {eigrp AS-number | nlsp [tag] | rip} | 启用 EIGRP.参数autonomous-system-number是EIGRP自治系统编号。它可以是一到65535的数字。 |
[no] network {<network-number>| all} | 使用network命令在每个网络上启用ipx router命令中指定的路由协议。 |
[no] redistribute {rip | igrp <as-number>} | 配置将一个协议重分发到另一个协议。默认情况下此指令被启用。no形式用于禁用重分发。 |
注意:如果要在多个接口(但不是所有接口)上运行EIGRP或RIP,请输入此命令的所有形式,后跟no network <network-number> ,其中<network-number>是您不想在上运行路由协议的网络。
[no] ipx sap-incremental eigrp <as-number> [rsup-only] | 要仅在SAP表中发生更改时发送SAP更新,请使用ipx sap-incremental接口配置命令。要定期发送SAP更新,请使用此命令的no形式。rsup-only选项表示系统在接口上使用EIGRP仅传送可靠的SAP更新信息。使用RIP路由更新,忽略EIGRP路由更新。 |
[否] ipx hello-interval eigrp<as-number><value> | 在接口上为指定的IPX-EIGRP路由进程配置hello间隔(以秒为单位)。默认值为5秒。此值可以设置在hello数据包中通告的保持时间。保持时间是hello间隔的三倍。如果保持时间的当前值小于hello间隔的两倍,则保持时间将重置。默认保持时间为15秒。 |
[否] ipx hold-time eigrp <as-number> <value> | 在指定的IPX-EIGRP路由进程的接口上配置保持时间(以秒为单位)。保持时间在hello数据包中通告,并向邻居指示它们应认为发送方有效的时间长度。默认保持时间是hello间隔的三倍。默认保持时间为15秒。 |
show ipx route [network] [default] [detailed] | 要显示IPX路由表的内容,请使用show ipx route user EXEC命令。默认选项显示默认路由。detailed选项显示详细的路由信息。 |
show ipx eigrp neighbors [servers] [as-number | interface] [regexp名称] | 要显示EIGRP发现的邻居,请使用show ipx eigrp neighbors EXEC命令。servers选项显示每个邻居通告的服务器列表。regexp name选项显示其名称与正则表达式匹配的IPX服务器。 |
show ipx eigrp topology [network-number] | 要显示EIGRP拓扑表,请使用show ipx eigrp topology EXEC命令。network-number显示输入的IPX网络号的拓扑表。 |
[no] debug eigrp packets | 使用debug eigrp packet EXEC命令显示常规调试信息。该命令前面加上 no 表示禁止调试输出。 |
[no] debug eigrp fsm | 使用debug eigrp fsm EXEC命令显示有关EIGRP可行后继度量(FSM)的调试信息。 该命令前面加上 no 表示禁止调试输出。 |
这些配置示例在IOS版本为12.0(4)的Cisco 2500系列路由器上测试。
在以下示例中,我们在自治系统编号100中为IPX-EIGRP路由配置了接口Ethernet0和Serial0:
! ipx routing 0000.0c5c.ec39
注意:默认情况下,当启用IPX路由时,IPX进程获取第一个活动以太网、令牌环或FDDI接口的MAC地址。
! interface Ethernet0 ipx network AA ! interface Serial0 ipx network 10 !ipx router eigrp 100 network AA network 10 ! ! no ipx router rip !
注意: 使用no ipx router rip命令禁用IPX-RIP(配置IPX路由时,默认情况下启用IPX-RIP)。 如果有非思科设备(如Novell服务器)连接到LAN网段,则RIP(或NLSP)必须在LAN接口上运行,路由器才能看到它。请注意,默认情况下,NLSP未重分发到EIGRP。
默认情况下,启用EIGRP后,SAP在以太网接口上定期发送,在串行接口上逐步发送。如果Ethernet0只有IPX-EIGRP对等体存在,您可能希望减少带宽使用并仅以增量方式发送SAP。为此,请使用以下命令:
! ipx routing 0000.0c5c.ec39 ! interface ethernet0 ipx network AA ipx sap-incremental eigrp 100 ! interface serial0 ipx network 10 ! ipx router eigrp 100 network AA network 10 ! no ipx router rip !
注意:如果在以太网接口上配置了ipx sap-incremental eigrp 100命令,但找不到IPX-EIGRP对等体,则会定期发送SAP更新。当找到对等体时,更新将按照预期(即,当SAP表中发生更改时)递增发送。 为定期SAP配置的任何路由器接口如果接收增量SAP,则不会从此路由器获得完整的SAP信息。因此,当为SAP增量启用任意两台路由器时,该网段上的所有其他路由器也必须为SAP增量配置。
如果希望在另一端有IPX-EIGRP对等体的串行接口上发送定期SAP更新,请使用以下命令禁用增量SAP并启用定期SAP更新:
! ipx routing 0000.0c5c.ec39 ! interface ethernet0 ipx network AA !interface serial0 ipx network 10 no ipx sap-incremental eigrp 100 ! ipx router eigrp 100 network AA network 10 ! no ipx router rip !
在大多数网络中,LAN接口上配置RIP,WAN接口上配置EIGRP。这是为了避免带宽紧张的周期性RIP和SAP更新穿越带宽敏感型WAN接口。当配置为这样时,Cisco路由器会自动将IPX-RIP路由重分发到EIGRP,反之亦然。下面,我们在以太网接口上启用了IPX-RIP,在串行接口上启用了IPX-EIGRP:
! ipx routing 0000.0c5c.ec39 ! interface Ethernet0 ipx network AA ! interface Serial0 ipx network 10 ! ipx router eigrp 100 network 10 !
注意: 在此,IPX-RIP在以太网接口上启用,即使它未在运行配置中显示。这是因为当启用IPX路由时,所有接口都默认启用IPX-RIP,并且默认情况下启用的任何参数都不会显示在运行配置中。
在串行接口上也可以定期使用RIP和增量SAP来减少SAP流量。为此,请将rsup-only选项与ipx sap-incremental 命令一起使用:
! ipx routing 0000.0c5c.ec39 ! interface Ethernet0 ipx network AA ! interface Serial0 ipx network 10 ipx sap-incremental eigrp 100 rsup-only ! ipx router eigrp 100 network 10 !
注意:使用rsup-only选项,RIP会定期发送;SAP继续以增量方式发送。
在非常拥塞的大型网络中,默认的15秒保持时间可能不足以让所有路由器从邻居接收hello数据包。在这种情况下,您可能希望增加保持时间。在本例中,我们已将保持时间增加到45秒:
! ipx routing 0000.0c5c.ec39 ! interface ethernet 0 ipx network AA ! interface serial 0 ipx network 10 ipx hold-time eigrp 100 45 ! ipx router eigrp 100 network AA network 10 !
R1# show ipx route Codes: C - Connected primary network, c - Connected secondary network S - Static, F - Floating static, L - Local (internal), W - IPXWAN R - RIP, E - EIGRP, N - NLSP, X - External, A - Aggregate s - seconds, u - uses, U - Per-user static 5 Total IPX routes. Up to 1 parallel paths and 16 hops allowed. No default route known. C 10(HDLC) Se0 C AA (NOVELL-ETHER) Et0 E 20 [41024000/0]via 10.0000.0c3b.ed69, age 00:26:43, 1u, Se0 E BB [40537600/0]via 10.0000.0c3b.ed69, age 00:26:44, 1u, Se0 E CC [41049600/0]via 10.0000.0c3b.ed69, age 00:26:44, 1u, Se0 R1#
注意:路由源的EH值表示IPX EIGRP路由处于活动状态,而本地路由器正在等待所有相关邻居响应查询。因此,此值应仅为临时状态。
R1# show ipx eigrp neighbors IPX EIGRP Neighbors for process 100 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 10.0000.0c3b.ed69 Se0 12 00:28:10 30 2280 0 51 R1# R1# show ipx eigrp topology IPX EIGRP Topology Table for process 100 Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - Reply status P 10, 1 successors, FD is 40512000 via Connected, Serial0 P 20, 1 successors, FD is 41024000 via 10.0000.0c3b.ed69 (41024000/2169856), Serial0 P AA, 1 successors, FD is 281600 via Connected, Ethernet0 P BB, 1 successors, FD is 40537600 via 10.0000.0c3b.ed69 (40537600/281600), Serial0 P CC, 1 successors, FD is 41049600 via 10.0000.0c3b.ed69 (41049600/2195456), Serial0 R1# R1# show ipx eigrp traffic IP-EIGRP Traffic Statistics for process 10 Hellos sent/received: 3900/3012 Updates sent/received: 23/16 Queries sent/received: 9/8 Replies sent/received: 8/9 Acks sent/received: 24/29 Input queue high water mark 2, 0 drops R1#
运行EIGRP的路由器在邻居表中维护有关相邻邻居的状态信息。当邻居发送hello时,它会通告保持时间,该保持时间定义邻居可访问和可操作的持续时间。如果在保持时间内未收到新的hello数据包,EIGRP将声明邻居不可达并开始更新其拓扑表。IP和IPX EIGRP对除非速度为T1或更低的非广播多路访问网络(默认呼叫时间为60秒)的所有接口使用5秒的默认呼叫间隔。默认情况下,保持计时器是hello间隔值的三倍。有关详细信息,请参阅有关ipx hello-interval eigrp命令的命令参考讨论。
EIGRP邻居表还保存可靠传输机制所需的信息。将会用到序列号,以使确认信息与数据包相匹配。记录从邻居接收的最后一个序列号,以便检测无序数据包。传输列表用于对每个邻居可能的重传分组排队。
如果show ipx eigrp neighbor命令输出中的正常运行时间从未超过大约80秒,则可能是本地路由器正在侦听邻居的hello,但邻居未侦听本地路由器的hello。虽然开放最短路径优先(OSPF)要求在声明邻居之前进行双向hello交换,但EIGRP会在收到来自相邻路由器的hello消息后尝试建立关系。如果您有单向链路,听到hello的路由器会将相邻路由器放入邻居表中,但不久后将重置连接,因为相邻路由器不会回复完成邻居关系形成所需的数据包。此问题的症状包括:
本地路由器不显示在远程路由器的邻居表中。
本地路由器邻居表中远程路由器的条目的平滑往返时间(SRTT)为0。
启用邻居更改日志记录,以开始排除意外EIGRP邻居丢失的故障。在config-ipx-router模式下发出log-neighbor-changes命令。此命令记录邻居邻接关系更改以监控路由系统的稳定性并帮助您检测问题。默认情况下,不记录邻接更改。
下表列出了示例输出并说明如何解释输出。
日志消息 | 解释 |
---|---|
%DUAL-5-NBRCHANGE: IPX-EIGRP 2047: Neighbor x.y (Serial1/1/0.4) is up: new adjacency |
已从相邻路由器收到问候消息,路由器将此邻居视为全新邻居,尽管它之前可能已经知道。 |
%DUAL-5-NBRCHANGE: IPX-EIGRP 2047: Neighbor x.y (Serial1/1/0.6) is down: stuck in INIT state |
在收到Hello消息后,路由器会发送包含初始化位集的更新数据包作出响应。此数据包会提示相邻路由器将每个网络的最佳条目排入队列以供传输。如果相邻路由器从未响应,则在本地路由器的邻居表中,该路由器似乎停滞在INIT状态。此问题通常在单向链路上出现。 |
%DUAL-5-NBRCHANGE: IPX-EIGRP 2047: Neighbor x.y (Serial1/1/0.1) is down: retry limit exceeded |
本地路由器发送了更新、查询或应答,但未收到确认。检查第1层(L1)和第2层(L2)连通性。 |
%DUAL-5-NBRCHANGE: IPX-EIGRP 2047: Neighbor x.y (Serial1/1/0.4) is down: peer restarted |
邻居因未知原因关闭,当本地路由器收到带有INIT标志设置的hello或更新时检测到。要确定哪台路由器(本地或远程)终止了该关系,请首先发出show ipx eigrp neighbor命令。查看正常运行时间和Q Cnt值。正常运行时间值指示自上次重置邻居关系以来的时间。Q Cnt显示等待发送到邻居或已发送且尚未确认的数据包数。如果Q Cnt未变为零,两个EIGRP邻居将不会收敛。 |
%DUAL-5-NBRCHANGE: IPX-EIGRP 2047: Neighbor x.y (Serial1/1/0.4) is down: holding time expired |
如果在保持时间(默认为15秒)内未收到任何问询,路由器会通知邻居邻居邻居邻居关系已断开并记录系统日志消息。 |
如果需要上述消息之外的更多信息,请尝试启用特定IPX调试。在启用调试之前,请确保您了解调试的影响。
debug eigrp packets — 可能会生成大量消息。请谨慎使用。
Debug eigrp packets terse — 不显示EIGRP hello。
调试ipx eigrp事件
debug ipx eigrp和debug ipx eigrp neigh均将调试信息限制到特定邻居。
为尽量减小调试消息对路由器的影响,建议您通过发出logging buffered全局配置模式命令来禁用控制台日志记录并启用缓冲的日志记录。
以下是排除IPX EIGRP邻居关系故障的其他注意事项。在收集了这些问题的答案后,您应该能够缩小故障域,以便更快地解决问题。例如,您应该能够将问题隔离到特定路由器或特定路由器的接口或数据包队列。
同一设备上的多个邻居是否同时退回?
远程邻居看到什么?
哪一端发起了拆除 — 本地路由器还是远程路由器?
接口是否拥塞?排队hello数据包是否存在巨大延迟?
如果您在低速链路(如帧中继)上运行IPX EIGRP,请在接口广播队列中查找丢弃。如果即使您不需要RIP,仍在链路上运行RIP(因为在启用IPX路由时默认启用它),请尝试在router-rip配置模式下使用no network {network number}命令禁用RIP。
%DUAL-5-NBRCHANGE: IPX-EIGRP 1: Neighbor 95081004.0060.3e00.4000 (Serial0.801) is down: %DUAL-5-NBRCHANGE: IPX-EIGRP 1: Neighbor 95081004.0060.3e00.4000 (Serial0.801) is up: new adjacency
[1]使用距离矢量或链路状态的统一无环路由方法,J.J. Garcia-Luna-Aceves,1989 ACM 089791-332-9/89/0009/0212,第212-223页。
[2]使用扩散计算的无环路由,J.J. Garcia-Luna-Aceves,网络信息中心,SRI International,IEEE/ACM Transactions on Networking,第1卷,第1期,1993年。