本技术说明解释了当拨号器接口配置为点对点链路时OSPF邻接关系的形成问题。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
主速率接口(PRI)、基本速率接口(BRI)和拨号器接口上的OSPF网络类型是点对点的,这意味着接口无法与多个邻居形成邻接关系。当PRI、BRI或拨号器接口尝试形成OSPF邻接时,一个常见问题是邻居在exstart/exchange过程中卡住。请看以下示例。
使用show ip ospf neighbor命令,我们可以看到邻居状态停滞在“EXSTART”中。
RTR-A# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 3.3.3.3 1 EXSTART/ - 00:00:37 3.3.3.3 Serial6/0:23 3.3.3.4 1 EXSTART/ - 00:00:39 3.3.3.4 Serial6/0:23 RTR-B# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 3.3.3.2 1 EXSTART/ - 00:00:36 3.3.3.2 BRI0 RTR-C# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 3.3.3.2 1 EXSTART/ - 00:00:35 3.3.3.2 BRI0
RTR-Bs配置显示网络类型为点对点:
RTR-B# show ip ospf interface bri0 BRI0 is up, line protocol is up (spoofing) Internet Address 3.3.3.3/24, Area 2 Process ID 1, Router ID 3.3.3.3, Network Type POINT_TO_POINT, Cost: 1562 Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:06 Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 1, Adjacent neighbor count is 0 Suppress hello for 0 neighbor(s)
我们可以使用debug ip ospf adj命令调试此情况。让我们看看上图中在RTR-B上运行此命令时所获得的一些示例输出:
1: Send DBD to 3.3.3.2 on BRI0 seq 0xB41 opt 0x42 flag 0x7 len 32 2: Rcv DBD from 3.3.3.2 on BRI0 seq 0x1D06 opt 0x42 flag 0x7 len 32 mtu 1500 state EXSTART 3: First DBD and we are not SLAVE 4: Rcv DBD from 3.3.3.2 on BRI0 seq 0xB41 opt 0x42 flag 0x2 len 92 mtu 1500 state EXSTART 5: NBR Negotiation Done. We are the MASTER 6: Send DBD to 3.3.3.2 on BRI0 seq 0xB42 opt 0x42 flag 0x3 len 92 7: Database request to 3.3.3.2 8: sent LS REQ packet to 3.3.3.2, length 12 9: Rcv DBD from 3.3.3.2 on BRI0 seq 0x250 opt 0x42 flag 0x7 len 32 mtu 1500 state EXCHANGE 10: EXCHANGE - inconsistent in MASTER/SLAVE 11: Bad seq received from 3.3.3.2 on BRI0 12: Send DBD to 3.3.3.2 on BRI0 seq 0x2441 opt 0x42 flag 0x7 len 32 13: Rcv DBD from 3.3.3.2 on BRI0 seq 0x152C opt 0x42 flag 0x2 len 92 mtu 1500 state EXSTART 14: Unrecognized dbd for EXSTART 15: Rcv DBD from 3.3.3.2 on BRI0 seq 0xB42 opt 0x42 flag 0x0 len 32 mtu 1500 state EXSTART 16: Unrecognized dbd for EXSTART
第1 - 3行:RTR-B将第一个DBD发送到序列为0xB41的3.3.3.2(RTR-A),并接收序列号为0x1D06的3.3.3.2(RTR-A)的第一个DBD。邻居协商仍未完成。
第4 - 6行:RTR-B收到来自3.3.3.2(RTR-A)的回复,表示RTR-A收到RTR-B的第一个DBD。由于RTR-B具有更高的路由器ID,因此RTR-A选择自己为从属设备。从RTR-A收到确认后,RTR-B声明自己为主设备并发送第一个DBD,其中包含数据。请注意序列号,即0xB42。由于RTR-B是主设备,因此只有它才能增加序列号。
第 7 行:RTR-B从RTR-A请求数据,因为RTR-A指示它有更多要发送的数据(在从RTR-A接收的最后一个DBD中,标志设置为0x2)。
第 8 行:RTR-B向3.3.3.2(RTR-A)发送链路状态请求数据包。 这是第3类OSPF数据包。此数据包通常发送到邻居的IP地址。在本例中,邻居的IP地址是其路由器ID。
第9 - 11行:RTR-B从从设备(RTR-A)接收一个具有完全不同序列号和标志0x7(即初始标志)的应答。此DBD用于另一台路由器(很可能是RTR-C),但RTR-B未正确接收。RTR-B声明存在差异,因为0x7标志表示从属设备在邻接交换期间通过设置MS(主/从)位将其状态更改为主设备。RTR-B还抱怨序列号不正确。从设备应始终遵循主设备的序列号。
第 12 行:RTR-B通过将第一个DBD发送到3.3.3.2来重新选举主从设备来重新初始化邻接关系。
第13 - 14行:RTR-B从3.3.3.2(RTR-A)接收DBD,表示它是从设备,但不识别RTR-B的序列号。RTR-B声明它不识别此DBD,因为主和从协商尚未完成。此DBD数据包用于另一台路由器。
第 15 行:RTR-B收到来自旧DBD的3.3.3.2(RTR-A)的应答,但为时已晚,因为RTR-B已重新初始化邻接过程。
第 16 行:RTR-B无法识别此DBD,因为它用于“旧”邻接关系,RTR-B已断开。
这一过程将无休止地重复。
根据RFC 2328 第8.1节,即使接口达到双向状态,OSPF也会为点对点网络类型发送组播数据包。由于RTR-A尝试与RTR-B和RTR-C形成邻接关系,因此RTR-B接收用于RTR-C的DBD数据包,而RTR-C接收用于RTR-B的DBD数据包。
要解决此问题,请将所有路由器上的网络类型更改为点对多点。这会更改OSPF在双向状态后发送单播数据包的行为。现在,RTR-B只接收发往自身的数据包,而RTR-C接收发往自身的数据包。以这种方式更改网络类型可确保OSPF路由器在PRI、BRI或拨号器接口上形成邻接关系。
要更改network-type,请输入以下配置命令,按ENTER结束每行。我们将更改RTR-B作为示例。
RTR-B# configure terminal RTR-B(config)# int bri 0 RTR-B(config-if)# ip ospf network point-to-multipoint RTR-B(config-if)# end
现在,如果我们查看RTR-B的show命令,我们可以验证网络类型是点对多点且状态已满。
RTR-B# show ip ospf interface bri0 BRI0 is up, line protocol is up (spoofing) Internet Address 3.3.3.3/24, Area 2 Process ID 1, Router ID 3.3.3.3, Network Type POINT_TO_MULTIPOINT, Cost: 1562 Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT, Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 Hello due in 00:00:16 Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 172.16.141.10 Suppress hello for 0 neighbor(s) RTR-B# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 172.16.141.10 1 FULL/ - 00:01:36 3.3.3.2 BRI0
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
10-Aug-2005 |
初始版本 |