本技術說明解釋當撥號器介面配置為點對點鏈路時,形成OSPF鄰接關係的問題。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
主速率介面(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配置顯示network-type is point-to-point:
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傳送到3.3.3.2(RTR-A),其序列號為0xB41,並從3.3.3.2(RTR-A)接收第一個DBD,其序列號為0x1D06。鄰居協商仍然未完成。
第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的行為更改為在2路狀態後傳送單播資料包。現在RTR-B只接收發往它自己的資料包,RTR-C接收發往它自己的資料包。以這種方式更改網路型別可以確保OSPF路由器在PRI、BRI或撥號器介面上形成鄰接關係。
要更改網路型別,請輸入以下配置命令,按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命令,可以檢驗network-type是點對多點的,並且狀態是full。
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 |
初始版本 |