實驗1:在R2上fram map ip 123.123.123.1 201 b
在R3上fram map ip 123.123.123.1 301 b
在R1上nei 123.123.123.2 nei 123.123.123.3
查看現象,如果此時不停的showip ospf nei的話,會看到一個奇怪的現象。
與R2的鄰居狀態從BDRàDRother與R3的鄰居狀態從DRotheràBDR,爲什麼有這個現象呢?分析一下:
首先R1,R2之間建立鄰居關係,R1爲DR因爲幀中繼建立鄰居關係時間比較長R1與R2之間建立的時候超過了40s,R1把自己當成DR,而R2收到了R1已經爲DR的消息,所以認爲R1爲DR,自己爲BDR。與此同時,可能稍微慢一些(因爲我先nei R2然後nei R3)R1與R3建立鄰居關係此時R3認爲R1爲DR,與上面的原因一樣,而R3的router-id大於R2,所以R3應該爲BDR。這裏有一個越變的過程。
再看一個奇怪的現象:R1上clear ip ospf process
查看現象根據分析,R1會認爲R3是DR,R2是BDR,自己是DRother,但這可能嗎?
是的這不能穩定,所以憑藉OSPF自己的機制,它有一個越變。
當然,這樣肯定是無法學習到路由的。可關鍵是爲什麼呢?
所以我將R1設置爲DR,在R2,R3上設置ip ospf pri 0。
好,回到正題:
R2ping的通R3嗎?肯定Ping不通,因爲下一跳不可達(我沒有做幀中繼的映射),做完映射,這就可以PING通了。
實驗二:讓R1,R2,R3不在一個子網,即在R1上設置子接口。
注意:當要建立鄰居關係的時候,我在R1上nei R2,R3,這是不可以的,nei命令不能使用在點到點接口,所以我將這條命令移除到R2和R3上,發現,鄰居關係還是起不來。這是爲什麼呢?
因爲時間的問題:
NBMA接口Hello時間爲30秒,點到點接口的Hello時間爲10秒,將兩邊時間修改的一致就可以了。
一些總結:
OSPF網絡類型的研究:
網絡類型 | 選舉DR/BDR | HELLO/DEAD時間 | 是否nei鄰居 | 存在 |
Broadcast | yes | 10/40 | No | ethernet |
P-T-P | No | 10/40 | No | 串口和FR PTP口 |
P-T-MP | No | 30/120 | NO | / |
NBMA | Yes | 30/120 | Yes | FR主接口和FR p-t-mp接口 |
PTMP NBMA | No | 30/120 | YES |
上面是一些基礎,我要研究的是下面的內容,這些網絡類型使用的是單播還是組播呢?
網絡類型 | Hello | DBD | LS request | LS update | LS Ack |
Broadcast | 當沒有鄰居列表的時候一定是多播,當作爲週期性的keepalive也是多播。但也有單播。 | 單播 | 單播 | 有單播有多播。 | 有單播有多播 |
P-T-P | 組播 | ||||
P-T-MP | 當沒有鄰居列表的時候一定是多播,當作爲週期性的keepalive也是多播。但也有單播。 | 單播 | 單播 | 單播 | 單播 |
NBMA | 單播 | ||||
PTMP NBMA | 單播 |