本文档介绍运行开放最短路径优先(OSPF)的路由器如何选择路由器ID、此值发送的数据包以及如何排除报告重复ID的路由器日志消息故障。
Cisco 建议您了解以下主题:
IP 路由协议
OSPF路由协议
本文档中的信息基于Cisco IOS®软件版本12.2。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
此配置也可用于以下硬件和软件版本:
所有路由器,例如2500和2600系列
第 3 层交换
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
默认情况下,当OSPF进程初始化时,它会选择路由器上的最高IP地址作为OSPF进程的路由器ID。路由器ID唯一标识OSPF域内的路由器。
如配置OSPF中所述,OSPF使用接口上配置的最大IP地址作为其路由器ID。如果与此IP地址关联的接口关闭,或者地址被删除,则OSPF进程必须重新计算新的路由器ID,并从接口重新发送其所有路由信息。
如果环回接口配置了IP地址,则Cisco IOS软件使用此IP地址作为其路由器ID,即使其他接口的IP地址更大。由于环回接口从不关闭,因此路由表中的稳定性更高。
OSPF自动首选环回接口,而不是任何其他类型的接口,并在所有环回接口中选择最高的IP地址。如果没有环回接口,则选择路由器中的最高IP地址。OSPF无法定向到使用任何特定接口。路由器ID一旦当选,除非OSPF进程重新启动或重新加载路由器,否则它不会更改。
注意:如果接口启动时没有有效IP地址处于up/up状态,则OSPF报告无法向日志分配router-id错误消息。
这些命令用于查看路由器ID。
R2-AGS#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 1.1.1.2 255.255.255.0, Area 0 Process ID 1, Router ID 5.5.5.5, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 6.6.6.6, Interface address 1.1.1.1 Backup Designated router (ID) 5.5.5.5, Interface address 1.1.1.2 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:07 Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 6.6.6.6 (Designated Router)
使用Cisco IOS软件版本12.0(1)T中引入的router-id OSPF命令,可以更改路由器ID上选择最高IP地址的默认行为。有关详细信息,请参阅Cisco Bug ID CSCdi38380(仅限注册客户)。使用OSPF router-id命令,OSPF进程的路由器ID是手动选择的路由器ID。在本例中,OSPF进程的路由器ID为10.10.10.10。
! router ospf 100 router-id 10.10.10.10
show ip ospf database命令也可用于此示例中,以检查路由器ID:
Router#show ip ospf database OSPF Router with ID (10.10.10.10) (Process ID 100)
在解释使用OSPF解决重复路由器ID之前,您需要了解五种OSPF数据包类型。以下是数据包类型:
hello
数据库说明(DD)
链路状态请求
链路状态更新
链路状态确认
所有OSPF数据包都以标准24位组报头开头。请注意,报头包含路由器ID字段,该字段指示发起OSPF数据包的路由的唯一ID。
version |类型 |数据包长度 |
路由器 ID |
区域 id |
校验和 | AuType |
身份验证 |
身份验证 |
数据包数据 |
通常,OSPF数据包传输链路状态通告(LSA),该通告描述路由器的所有链路或接口以及链路的状态。当所有LSA都以相同的报头开始时,这三个字段标识一个LSA:
类型
链路状态ID
通告路由器
OSPF使用链路状态更新数据包泛洪LSA并发送LSA以响应链路状态请求。OSPF邻居负责将适当的LSA重新封装到新更新数据包中以进行进一步泛洪,以便将OSPF LSA传播到其发起网络之外。因此,多个路由器可以检测并传播重复的路由器ID。
要确定是否存在重复的路由器ID,请完成以下步骤:
在应具有此ID的路由器上执行show ip ospf database router x.x.x.x命令。此命令显示路由器LSA(类型1)的内容,该路由器通告路由器及其所有直连接口。了解路由器的接口列表和分配的IP地址。
在报告重复数据的路由器上执行几次show ip ospf database router x.x.x.x命令。最短路径优先(SPF)算法的运行频率可以像每10秒一样高。
如果捕获了这些命令,您应该能够捕获更改的信息。此示例是show ip ospf database router命令的输出。
r2.2.2.2#show ip ospf database router 1.1.1.1 OSPF Router with ID (2.2.2.2) (Process ID 2) Router Link States (Area 0) LS age: 279 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 1.1.1.1 !--- For router links, the Link State ID is always the same as the !--- advertising router (next line). Advertising Router: 1.1.1.1 !--- This is the router ID of the router which created !--- this LSA. LS Seq Number: 8000001A Checksum: 0xA6FA Length: 48 Number of Links: 2 Link connected to: another Router (point-to-point) !--- This line shows that this router (1.1.1.1) is a neighbor !--- with 2.2.2.2. (Link ID) Neighboring Router ID: 2.2.2.2 (Link Data) Router Interface address: 0.0.0.12 !--- In case of an unnumbered link, use the Management Information !--- Base (MIB) II IfIndex value, which usually starts with 0. Number of TOS metrics: 0 TOS 0 Metrics: 64 !--- This is the OSPF cost of the link that connects the two routers. Link connected to: a Stub Network !--- This entry represents the Ethernet segment 4.0.0.0/8. (Link ID) Network/subnet number: 4.0.0.0 (Link Data) Network Mask: 255.0.0.0 Number of TOS metrics: 0 TOS 0 Metrics: 10 !--- This is the OSPF cost of the Ethernet segment.
当两台路由器在OSPF域中使用相同的路由器ID时,路由可能无法正常工作。Cisco Bug ID CSCdr61598(仅注册客户)和CSCdu08678(仅注册客户)增强了重复路由器ID的检测和报告机制。访问Bug工具包(仅注册客户)以查看有关这些Cisco Bug ID的其他信息。有两种重复的路由器ID类型:
区域重复的路由器ID
%OSPF-4-DUP_RTRID1: Detected router with duplicate router ID 100.0.0.2 in area 0
说明 - OSPF检测到该区域中具有相同路由器ID的路由器。
Recommended Action - OSPF路由器ID应是唯一的。确保区域中的所有路由器都具有唯一的路由器ID。
第4类LSA
%OSPF-4-DUP_RTRID2: Detected router with duplicate router ID 100.0.0.2 in Type-4 LSA advertised by 100.0.0.1
说明 - OSPF检测到另一区域中具有相同路由器ID的路由器。此路由器在第4类LSA中通告。
Recommended Action - OSPF路由器ID应是唯一的。确保远程区域中的所有自治系统边界路由器(ASBR)都具有唯一的路由器ID。
当路由器在OSPF域中同时充当区域边界路由器(ABR)和ASBR时,可能会出现重复路由器ID的错误报告,如本示例日志消息所示。
OSPF-4-DUP_RTRID_AS Detected router with duplicate router ID 10.97.10.2 in Type-4 LSA advertised by 10.97.20.2
Cisco Bug ID CSCdu71404(仅注册客户)解决了OSPF域范围检测的问题。
如果路由器收到第4类LSA,且链路状态ID等于路由器ID,而路由器不是ABR,则远程区域中会发生有效的路由器ID复制,并且应记录错误消息。
如果路由器不是ABR,它可以收到第4类LSA,该LSA会从另一个ABR告知它自己。此情况不代表重复的路由器ID问题,不应记录错误消息。
第4类LSA也称为ASBR汇总LSA。发出show ip ospf database asbr-summary命令以观察这些LSA,如本示例所示。
ABR创建(第4类)ASBR汇总LSA,以便将ASBR的可达性通告到其他区域。
r2.2.2.2#show ip ospf database asbr-summary 1.1.1.1 OSPF Router with ID (2.2.2.2) (Process ID 2) Summary ASB Link States (Area 0) LS age: 266 Options: (No TOS-capability, DC) LS Type: Summary Links(AS Boundary Router) Link State ID: 1.1.1.1 (AS Boundary Router address) !--- ABR (Router 2.2.2.2) advertises that it knows how !--- to reach the ASBR (Router 1.1.1.1). Advertising Router: 2.2.2.2 LS Seq Number: 80000001 Checksum: 0x935C Length: 28 Network Mask: /0 TOS: 0 Metric: 64 !--- This is the cost of ABR to reach the ASBR.
如果LSA是第4类,则链路状态ID是通告的ASBR的路由器ID。有关详细信息,请参阅OSPF如何将外部路由传播到多个区域。
故障排除是在Cisco Bug ID CSCdr61598(仅限注册客户)和Cisco Bug ID CSCdu08678 (仅限注册客户)集成之前发布的Cisco IOS软件版本完成的。
此图像是这些步骤中描述的单区域网络的表示。
发出show proc cpu | include OSPF命令。这样您就可以看到使用CPU的OSPF进程。
r4#show proc cpu | include OSPF 3 4704 473 9945 1.38% 0.81% 0.68% 0 OSPF Hello 71 9956 1012 9837 1.47% 1.62% 1.41% 0 OSPF Router
如上例所示,OSPF的CPU使用率较高。这表明链路稳定性或重复的路由器ID一定有问题。
发出show ip ospf statistics命令。这样您就可以看到SPF算法是否运行得比普通算法更多。
r4#show ip ospf statistics Area 0: SPF algorithm executed 46 times SPF calculation time Delta T Intra D-Intra Summ D-Summ Ext D-Ext Total Reason 00:01:36 0 0 0 0 0 0 0 N, 00:01:26 0 0 0 0 0 0 0 R, N, 00:01:16 0 0 0 0 0 0 0 R, N, 00:01:06 0 0 0 0 0 0 0 R, N, 00:00:56 0 0 0 0 0 0 0 R, N, 00:00:46 0 0 0 0 0 0 0 R, N, 00:00:36 0 0 0 0 0 0 0 R, N, kmbgvc 00:00:26 0 0 0 0 0 0 0 R, N, 00:00:16 0 0 0 0 0 0 0 R, N, 00:00:06 0 0 0 0 0 0 0 R, N,
如上例所示,show ip ospf statistics命令显示,每10秒重新计算一次SPF。它由路由器和网络LSA触发。与当前路由器位于同一区域时出现问题。
发出show ip ospf database命令。
r4#show ip ospf database OSPF Router with ID (50.0.0.4) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 50.0.0.1 50.0.0.1 681 0x80000002 0x7E9D 3 50.0.0.2 50.0.0.2 674 0x80000004 0x2414 5 50.0.0.4 50.0.0.4 705 0x80000003 0x83D 4 50.0.0.5 50.0.0.5 706 0x80000003 0x5C24 6 50.0.0.6 50.0.0.6 16 0x80000095 0xAF63 6 50.0.0.7 50.0.0.7 577 0x80000005 0x86D5 8 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 192.168.2.6 50.0.0.6 6 0x8000007A 0xABC7
show ip ospf database命令显示,一个LSA较新(16岁),其序列号比同一OSPF数据库中的其他LSA高很多。您需要确定发送此LSA的路由器。由于它位于同一区域,因此通告路由器ID为已知(50.0.0.6)。 此路由器ID更可能重复。您需要找出哪台路由器具有相同的路由器ID。
此示例显示了show ip ospf database命令的几个实例。
r4#show ip ospf database router adv-router 50.0.0.6 OSPF Router with ID (50.0.0.4) (Process ID 1) Router Link States (Area 0) LS age: 11 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 50.0.0.6 Advertising Router: 50.0.0.6 LS Seq Number: 800000C0 Checksum: 0x6498 Length: 72 Number of Links: 4 Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.2.6 (Link Data) Router Interface address: 192.168.2.6 Number of TOS metrics: 0 TOS 0 Metrics: 10 Link connected to: another Router (point-to-point) (Link ID) Neighboring Router ID: 50.0.0.7 (Link Data) Router Interface address: 192.168.0.21 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.0.20 (Link Data) Network Mask: 255.255.255.252 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 50.0.0.6 (Link Data) Network Mask: 255.255.255.255 Number of TOS metrics: 0 TOS 0 Metrics: 1 r4#show ip ospf database router adv-router 50.0.0.6 OSPF Router with ID (50.0.0.4) (Process ID 1) Router Link States (Area 0) LS age: 7 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 50.0.0.6 Advertising Router: 50.0.0.6 LS Seq Number: 800000C7 !--- The sequence number has increased. Checksum: 0x4B95 Length: 96 Number of Links: 6 !--- The number of links has increased although the network has been stable. Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.3.0 (Link Data) Network Mask: 255.255.255.0 Number of TOS metrics: 0 TOS 0 Metrics: 10 Link connected to: another Router (point-to-point) (Link ID) Neighboring Router ID: 50.0.0.5 (Link Data) Router Interface address: 192.168.0.9 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.0.8 (Link Data) Network Mask: 255.255.255.252 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: another Router (point-to-point) (Link ID) Neighboring Router ID: 50.0.0.2 (Link Data) Router Interface address: 192.168.0.2 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.0.0 (Link Data) Network Mask: 255.255.255.252 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 50.0.0.6 (Link Data) Network Mask: 255.255.255.255 Number of TOS metrics: 0 TOS 0 Metrics: 1
如果您知道您的网络,您可以找到通告这些链路的路由器。前一个输出显示LSA是由OSPF邻居50.0.0.7的路由器发送的,而第二个输出显示邻居50.0.0.5和50.0.0.6。发出show ip ospf 命令以查找这些路由器并访问它们以验证其OSPF路由器ID。在本例中,它们是R6和R3。
3>show ip ospf Routing Process "ospf 1" with ID 50.0.0.6 Supports only single TOS(TOS0) routes Supports opaque LSA r6#show ip ospf Routing Process "ospf 1" with ID 50.0.0.6 Supports only single TOS(TOS0) routes Supports opaque LSA
发出show run命令 | beg router ospf命令,以检查从OSPF配置开始的配置。
R6#show run | include router ospf router ospf 1 router-id 50.0.0.6 log-adjacency-changes network 50.0.0.0 0.0.0.255 area 0 network 192.168.0.0 0.0.0.255 area 0 network 192.168.2.0 0.0.0.255 area 0 r3#show run | begin router ospf router ospf 1 log-adjacency-changes network 50.0.0.0 0.0.0.255 area 0 network 192.168.0.0 0.0.0.255 area 0 network 192.168.3.0 0.0.0.255 area 0
在上一个示例中,删除了router-id命令,并且OSPF进程未重新启动。同样的问题也可能来自环回接口,该接口在其他位置被移除和配置。
发出clear ip ospf 1 process命令和show ip ospf 命令以清除该进程。
r3#clear ip ospf 1 process Reset OSPF process? [no]: y r3#show ip ospf Routing Process "ospf 1" with ID 50.0.0.6 Supports only single TOS(TOS0) routes Supports opaque LSA
如上例所示,仍然显示错误的IP地址。
发出show ip int brie命令以检查接口。
r3#show ip int brie Interface IP-Address OK? Method Status Protocol Ethernet0/0 192.168.3.1 YES NVRAM up up Serial1/0 192.168.0.2 YES NVRAM up up Serial2/0 192.168.0.9 YES NVRAM up up Loopback0 unassigned YES NVRAM up up Loopback1 50.0.0.6 YES NVRAM up up !--- The highest Loopback IP address
要纠正问题,请确保路由器上配置的最高环回在您的OSPF网络中是唯一的,或在OSPF路由器配置模式下使用router-id <ip address>命令静态配置router-id。
这些问题的症状是,外部路由(通过R6从静态重分发到OSPF进程获知),ASBR路由器从OSPF区域0内所有路由器的路由表摆动。外部路由为120.0.0.0/16,问题在区域0的路由器5上发现。从此开始排除故障。
连续发出show ip route命令几次,以查看症状。
r5#show ip route 120.0.0.0 Routing entry for 120.0.0.0/16, 1 known subnets O E2 120.0.0.0 [110/20] via 192.168.0.9, 00:00:03, Serial2/0 r5#show ip route 120.0.0.0 % Network not in table r5#
查看OSPF数据库以检查是否收到LSA。如果连续多次发出show ip ospf database命令,您会注意到两台路由器(50.0.0.6和50.0.0.7)收到了LSA。如果查看第二个条目的使用时间(如果存在),您会发现其值会发生显着变化。
r5#show ip ospf database | begin Type-5 Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 120.0.0.0 50.0.0.6 2598 0x80000001 0xE10E 0 120.0.0.0 50.0.0.7 13 0x80000105 0xD019 0 r5#show ip ospf database | begin Type-5 Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 120.0.0.0 50.0.0.6 2599 0x80000001 0xE10E 0 120.0.0.0 50.0.0.7 14 0x80000105 0xD019 0 r5#show ip ospf database | begin Type-5 Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 120.0.0.0 50.0.0.6 2600 0x80000001 0xE10E 0 120.0.0.0 50.0.0.7 3601 0x80000106 0x6F6 0 r5#show ip ospf database | begin Type-5 Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 120.0.0.0 50.0.0.6 2602 0x80000001 0xE10E 0 r5#show ip ospf database | begin Type-5 Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 120.0.0.0 50.0.0.6 2603 0x80000001 0xE10E 0 r5#
如果查看从50.0.07(即通告路由器)接收的LSA的序列号,您还会发现奇怪的行为。查看从50.0.0.7接收的其他LSA。如果一行多次发出show ip ospf database adv-router 50.0.0.7命令,则条目变化很快,如本例所示。
r5#show ip ospf database adv-router 50.0.0.7 OSPF Router with ID (50.0.0.5) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 50.0.0.7 50.0.0.7 307 0x8000000D 0xDF45 6 Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 120.0.0.0 50.0.0.7 9 0x8000011B 0xA42F 0 r5#show ip ospf database network adv-router 50.0.0.7 OSPF Router with ID (50.0.0.5) (Process ID 1) r5#show ip ospf database network adv-router 50.0.0.7 OSPF Router with ID (50.0.0.5) (Process ID 1)
最后一个输出未显示任何内容。路由抖动或存在另一种问题,最可能是OSPF域内的路由器ID重复。
发出show ip ospf database命令以查看50.0.0.7通告的外部LSA。
r5#show ip ospf database external adv-router 50.0.0.7 OSPF Router with ID (50.0.0.5) (Process ID 1) Type-5 AS External Link States Delete flag is set for this LSA LS age: MAXAGE(3600) Options: (No TOS-capability, DC) LS Type: AS External Link Link State ID: 120.0.0.0 (External Network Number ) Advertising Router: 50.0.0.7 LS Seq Number: 80000136 Checksum: 0xA527 Length: 36 Network Mask: /16 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 16777215 Forward Address: 0.0.0.0 External Route Tag: 0 r5#show ip ospf database external adv-router 50.0.0.7 OSPF Router with ID (50.0.0.5) (Process ID 1) r5#
查看SPF计算原因以验证此情况。X表示SPF每10秒运行一次,因为外部LSA(第5类)摆动,实际上,您会看到SPF运行。
r5#show ip ospf statistic Area 0: SPF algorithm executed 2 times SPF calculation time Delta T Intra D-Intra Summ D-Summ Ext D-Ext Total Reason 00:47:23 0 0 0 0 0 0 0 X 00:46:33 0 0 0 0 0 0 0 X 00:33:21 0 0 0 0 0 0 0 X 00:32:05 0 0 0 0 0 0 0 X 00:10:13 0 0 0 0 0 0 0 R, SN, X 00:10:03 0 0 0 0 0 0 0 R, SN, X 00:09:53 0 0 0 0 0 0 0 R, 00:09:43 0 0 0 0 0 0 0 R, SN, X 00:09:33 0 0 0 0 0 0 0 X 00:09:23 0 0 0 0 0 0 0 X
已知问题不在当前区域。把注意力集中在ABR上。Telnet至ABR路由器2,以便在OSPF区域0之外的其他区域获得更多可视性。发出show ip ospf border-routers和show ip ospf database network adv-router命令。
r2#show ip ospf border-routers OSPF Process 1 internal Routing Table Codes: i - Intra-area route, I - Inter-area route i 50.0.0.7 [20] via 192.168.2.1, Ethernet0/0, ASBR, Area 1, SPF 25 r2#show ip ospf database network adv-router 50.0.0.7 OSPF Router with ID (50.0.0.2) (Process ID 1) Net Link States (Area 1) Routing Bit Set on this LSA LS age: 701 Options: (No TOS-capability, DC) LS Type: Network Links Link State ID: 192.168.1.2 (address of Designated Router) Advertising Router: 50.0.0.7 LS Seq Number: 80000001 Checksum: 0xBC6B Length: 32 Network Mask: /24 Attached Router: 50.0.0.7 Attached Router: 50.0.0.1
有故障的路由器与50.0.0.1位于同一LAN中。它必须是Router 6。发出show ip ospf命令。
r6#show ip ospf Routing Process "ospf 1" with ID 50.0.0.7 Supports only single TOS(TOS0) routes Supports opaque LSA It is an autonomous system boundary router.
找到故障路由器后,请参阅本文档的单区域网络部分以纠正问题。
%OSPF-4-FLOOD_WAR:Process 60500在区域10.40.0.0中刷新LSA ID 10.35.70.4 type-5 adv-rtr 10.40.0.105错误消息。
此错误消息表明路由器以高速率发起或刷新LSA。网络中的典型场景可能是网络中的一台路由器发起LSA,而另一台路由器则刷新该LSA。此处提供了此错误消息的详细说明:
进程60500 — 报告错误的OSPF进程。在本示例中,进程 ID 是 60500。
re-originates或flushes(关键字) — 指示路由器是否发起LSA或flushes。在此错误消息中,路由器刷新LSA。
LSA ID 10.35.70.4 — 检测到泛洪的链路状态ID。本例中为 10.35.70.4。
类型–5 - LSA类型。此示例具有第5类LSA。
注意:泛洪战争对每个LSA都有不同的根源。
adv-rtr — 发起LSA的路由器(即10.40.0.105)。
区域- LSA所属的区域。在本例中,LSA属于10.40.0.0。
解决方案
注意此错误的类型特征;在本例中为类型5。此标识表示位于不同区域的两台路由器上存在重复的路由器ID。因此,必须更改其中一台路由器的路由器ID。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
24-Apr-2012 |
初始版本 |