ospf(開放式最短路徑優先協議)
OSPF:開放式最短路徑優先協議---標準的鏈路狀態協議
一.基本概念
無類別鏈路狀態路由協議---組播更新協議:224.0.0.5/6 觸發更新、週期更新(30min); 跨層封裝到網路層--協議號89;因為基於LSA更新導致更新量很大-----且需要為中大型網路服務---還要進行週期的維護---所以要進行結構化部署 結構化部署--區域劃分、地址規劃
二.資料包-五種基本的資料包
HELLO -- 鄰居的發現、建立、保活
DBD --資料庫描述包 -- 資料庫目錄資訊
LSR --鏈路狀態請求
LSU ---鏈路狀態更新---攜帶各種LSA
LSack ----鏈路狀態確認
三.OSPF的狀態機(建立關係的各個過程)
Down:本地一旦發出hello包,進入下一狀態
Init初始化:本地接收到的hello包中若存在本地的RID,進入下一狀態
2way雙向通訊:鄰居關係建立標誌
條件匹配:點到點網路直接進入下一狀態;
MA網路將進行DR/BDR選舉(40S),非DR/BDR間不能進入下一狀態;
Exstart預啟動:使用類hello 的DBD包進行主從關係選舉,RID數值大為主,主優先進入下一狀態
Exchange準交換:使用真正的DBD進行資料庫目錄的共享,需要ACK;
Loading 載入:使用LSR/LSU/LSack來獲取未知的LSA資訊;
Full轉發:鄰接關係建立的標誌;
四.OSPF的工作過程
啟動配置完成後,本地收發hello包,建立鄰居關係,生成鄰居表;
再進行條件的匹配,匹配失敗將停留於鄰居關係,僅hello包週期保活即可;
匹配成功者間可以建立鄰接(毗鄰)關係,需要DBD共享資料庫目錄,LSR/LSU/LSack來獲取未知的LSA資訊,當收集完網路中所有的LSA後,生成資料表--LSDB
LSDB建立完成後,本地基於SPF選路規則,計算本地到達所有未知網段的最短路徑,然後將其載入到路由表中;完成收斂
收斂完成後--hello包週期保活 -- 30min週期的DBD比對,若不一致將使用LSR/LSU/LSack重新獲取
五.配置:
r1(config)#router ospf 1 啟動時需要配置程序號,僅具有本地意義
r1(config-router)#router-id 1.1.1.1
全網唯一---手工---環回介面上最大數值的ip地址----物理介面最大數值
宣告:1、啟用 2、拓撲 3、區域劃分
r1(config-router)#network 1.1.1.1 0.0.0.0 area 0 在宣告時必須攜帶反掩碼
啟動動配置完成後,鄰居間使用hello包建立鄰居關係,生成鄰居表:
Hello包----用於鄰居的發現、關係的建立和保活
鄰居間hello包中必須有4個引數完成一致,否則無法建立鄰居關係:
- hello 和dead time 2、區域ID 3、認證欄位 4、末梢區域標記
r2#show ip ospf neighbor 檢視鄰居表
鄰居關係建立後,進行條件匹配,匹配失敗為鄰居關係,hello包週期保活即可;
匹配成功將使用DBD/LSR/LSU/LSack獲取未知的LSA資訊,生成LSDB---資料庫表:
r2#show ip ospf database 檢視資料庫的目錄
r2#show ip ospf database router x.x.x.x 具體檢視某條LSA
DBD包:exstart和exchange均出現; exstart狀態時,沒有攜帶目錄資訊,僅用於主從關係選舉;
- 在exstart狀態的DBD時,使用的是類似hello的DBD,使用隱型確認;---基於序列號,使用主的序列號確認主的資訊
- 在exchange狀態 傳送的是真正的DBD,進行正常的確認
- DBD包中的標記位: 標記位 I 為1標識本地發出的第一個DBD 包
M為0標識本地的發出最後一個DBD包
MS為1標識主,為0標識從
當LSDB同步完成後,本地基於資料庫最短選路規則,計算到達所有未知網段的最短路徑,然後將其載入到路由表中:
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
使用O標識OSPF本區域內通過拓撲計算所得路由
使用O IA標識其他區域路由器通過ABR匯入所得
使用O E1/2標識其他協議或其他程序產生後,通過ASBR重發布進入
使用O N1/2標識其他協議或其他程序產生後,通過ASBR重發布進入,同時本地處於NSSA特殊區域;
管理距離為110;度量為cost值;
Cost值=開銷值=參考頻寬/介面頻寬 預設參考頻寬為100M;
OSPF優選cost值之和最小的路徑;
可以修改預設的參考頻寬,切記整個網路所有裝置參考頻寬需一致
r1(config-router)#auto-cost reference-bandwidth ?
<1-4294967> The reference bandwidth in terms of Mbits per second
r1(config-router)#auto-cost reference-bandwidth 1000
六.OSPF的鄰居建立成為鄰接關係的條件
基於網路型別------點到點 MA多路訪問
在點到點網路中,鄰居關係必須成為鄰接關係,否則無法正常收斂
在MA網路若全網均為鄰接關係,那麼將可能出現大量重複性的LSA洪泛;
為避免該現象,將進行DR/BDR的選舉;所有的非DR/BDR間不得建立成為鄰接關係;
選舉規則:1、先比較介面優先順序----- 預設1;大優;0標識不參選,點到點介面預設為0;
2、優先順序相同,比較裝置的RID,數值大優;
干涉選舉的方法:
- 修改DR最大優先順序,BDR次大
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3
注:DR選舉非搶佔,故修改優先順序後必須重啟裝置的OSPF程序
r1#clear ip ospf process
Reset ALL OSPF processes? [no]: yes
- 修改DR最大優先順序,BDR次大;剩餘所有裝置優先順序修改為0;
切記不得將所有裝置優先順序修改為0,至少必須存在DR;
七.OSPF的介面網路型別----OSPF協議在不同網路型別下的介面上,不同的工作方式;
介面網路型別
環回 介面 無hello包 以32位主機掩碼傳送路由
點到點(HDLC/PPP) hello time 10s 不選DR 支援組播
MA (乙太網) hello time 10s 選DR 支援組播
NBMA hello time 30s 選DR 不 支援組播
點到多點 hello time 30s 不選DR 支援組播
點到多點 非廣播 hello time 30s 不選DR 會生成32位主機路由 不支援組播