OSPF屬於鏈路狀態路由選擇協議,並且是公有標準,理論上是沒有網絡規模限制的,支持網絡的層次化設計,可以將網絡分爲2層,是通過“區域”的概念來進行區分的。
-骨幹區域 -非骨幹區域
所有的非骨幹必須與骨幹區域直接相連,才能正常通訊。
路由器因爲區域的存在,也分爲不同的類型:
-骨幹路由器:所有鏈路都屬於骨幹區域的路由器;
-非骨幹路由器:所有鏈路都屬於非骨幹區域的路由器;
-區域邊界路由器(*) 【ABR:area border router 】:必須同時連接着骨幹區域和非骨幹區域;
-自治系統邊界路由器【ASBR:】:具有引入外部路由能力的路由器,叫做OSPF的 ASBR
工作原理
- 建立鄰居表:僅僅使用 hello 報文,OSPF路由,僅僅在 OSPF 鄰居路由器之間進行交換
- 同步數據庫:LSA-link state advertisement , 鏈路狀態通告
- 計算路由表
實驗拓撲圖:
實驗步驟: - 路由以及loopback 配置ip地址
R1: 192.168.1.1/24 loopback1: 1.1.1.1/24
R2 :192.168.1.2/24 loopback1: 2.2.2.2/24
[r2]interface LoopBack 1
[r2-LoopBack1]ip add 2.2.2.2 255.255.255.0 - 配置ospf
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]net 192.168.1.2 0.0.0.0(精確宣告自己的直連網段接口ip地址)
R1同樣思路配置
配置完成ospf宣告之後,就會建立鄰居,會彈出很多條目;
上面的1---6就是路由器通過ospf 建立鄰居的幾個狀態,
下面抓取報文分析下:R1 :
R2:
分析:
- Router ID 不一樣
- 從圖中2可以看出ospf 發包是以組播的方式(224.0.0.5)
- 通過4 可以看出ospf 的區域ID是保持一致的
- 通過5可以看出 hello 包是10 s發一次,且相同
- 通過7可以看出dead 時間是40s,且相同
- 通過6 可以看出options (特殊標記位)是一樣的
驗證:1. 修改router ID與r1相同,重啓ospf 1
修改了router ID相同之後,鄰居斷開了,說明直接建立鄰居關係的路由器,router id一定不能相同
2. 修改區域ID爲除0以外數字
所以建立鄰居的路由,區域id必須一樣
3. 修改hello時間 20s
[r2]in gi 0/0/0
[r2-GigabitEthernet0/0/0]ospf timer hello 20
查看 [r2]dispaly ospf brief 並查看鄰居表 [r2]dis ospf p bri所以hello時間必須要相同,同時hello時間變化,dead時間也變化了,並且是4倍hello的變化
4. 修改dead時間爲100s,出現以下提示
所以dead時間也要保持一致
綜上所述:
- 直接建立鄰居關係的路由器,router id一定不能相同
- 所以建立鄰居的路由其,區域id必須一樣
- 建立鄰居關係的路由器,hello時間必須要相同,同時hello時間變化,dead時間也變化了,並且是4倍hello的變化
- 建立鄰居關係的路由器,dead時間也要保持一致
通過以上幾點分析,可以在網絡路由出現問題時提供一些思路