OSPF
OSPF:開放式最短路徑優先協議
無類別鏈路狀態型協議;存在V1/2/3 三個版本;其中V2為IPV4下各廠商設備的主流版本;V3為IPV6環境下使用;組播更新-224.0.0.5、224.0.0.6,需要結構化的部署(區域劃分,合理的ip地址規劃);觸發更新,每30MIN一次周期更新
一、OSPF的數據包:5種數據包
Hello包—》發現、建立、周期保活鄰居關系 使用router-id來相互區分;
DBD包—》數據庫描述包 本地的數據目錄
LSR包—》鏈路狀態請求 LSA的查詢包
LSU包—》鏈路狀態更新 包裝傳遞各種LSA信息
LSack 包—鏈路狀態確認包
LSA—鏈路狀態通告—具體的一條一條拓撲或者路由條目信息
二、OSPF的狀態機:
Down 一旦向外發送hello包,那么可以進入下一個狀態
Init-初始化 若接收到的hello包中,存在本地的RID,進入下一狀態
2way雙向通訊 鄰居關系建立的標志;
條件匹配:
Exstart 預啟動 使用類似hello 的DBD進行主從關系的選舉,RID數值大為主,優先進入
下一狀態
Exchange 準交換 使用真正的DBD來交換數據庫目錄,需要ACK進行確認
Loading 加載 查看對端DBD報文,使用LSR/LSU/LSack來獲取本地未知的LSA信息;
Full 轉發 鄰接(毗鄰)關系建立完成
三、OSPF的工作過程:
啟動配置完成后;本地路由器組播224.0.0.5發送hello包;若接到來自其他路由器發送的hello包,且內容中包含本地的RID;鄰居關系建立---生成鄰居表;
鄰居關系建立后,基于建鄰過程中的條件匹配結果進行下一步動作;
1、 匹配失敗—將和鄰居一直卡在鄰居關系,僅hello包每10s周期保活一次
2、 匹配成功—開始進行鄰接關系的進程
使用類似hello 的DBD包進行主從關系選舉,之后主優先發送本地的DBD來換取對端的DBD;再基于對端DBD包,對照本地未知的LSA;使用LSR,對端LSU,再LSack來獲取本地未知的LSA信息;
當所有的LSA被收集完成后,生成數據庫表—LSDB(鏈路狀態數據庫)
之后基于本地的數據庫表—生成有向圖—》樹型結構
基于數據結構進行最短路徑選路,將選擇結果,加載到本地的路由表中;
鄰接關系建立,收斂完成;僅hello包每10s周期保活即可;
再每30min鄰接關系周期比對一次DBD,進行查漏;
結構突變:
1、 新增網段
2、 斷開網段
3、 無法溝通
四、OSPF的基礎配置:
[r1]ospf 1 router-id 1.1.1.1 啟動時,需要定義進程號;進程號僅具有本地意義;
可以配置route-id;也可以不配置,讓ospf協議自動生成;
Router-id規則---必須全網唯一,使用IPV4地址來作為格式
自動生成—在本地所有的環回接口尋找最大數值的ip地址—若環回接口未配置ip地址,再在本地所有的物理接口上尋找數值最大的ip地址
[r1-ospf-1]
宣告:1、激活接口 2、授權傳遞接口信息 3、區域劃分
由于OSPF協議需要在中大型網絡環境下工作,避免產生環路,故基于拓撲進行收斂更新,導致更新量較大,由使得協議無法在中大型網絡服務;所以必須進行區域的劃分來減少控制更新量;最終使得協議可以在中大型網絡生存。
區域劃分要求:
1、 星型結構,中心區域必須為骨干區域0,其他非骨干區域必須連接骨干區域,編號大于0;
2、 區域間必須存在ABR—區域邊界路由器
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
啟動配置完成后,鄰居間組播收發hello包,建立鄰居關系,生成鄰居表:
[r2]display ospf peer brief
鄰居關系建立后,鄰居間匹配成功可以建立成為鄰接關系;鄰接關系間可以收發LSA,來生成本地的數據庫-LSDB ---- 數據庫表:
[r2]display ospf lsdb
最后,基于本地的路由表,生成有向圖,計算樹型結構;再基于樹型結構,計算本地到達所有未知網段的最短路徑,將其加載到本地的路由表中;
路由表中默認優先級為10;cost值基于帶寬計算 參考帶寬/接口帶寬=cost值
OSPF選路,是將整段路徑cost值之和最小加載到路由表中;
切記:默認參考帶寬為100M;若接口帶寬大于了參考帶寬,結果依然向上求整;可能導致選路不佳;故在接口帶寬大于參考的網絡環境下,建議修改默認的參考帶寬:
[RTB]ospf
[RTB-ospf-1]bandwidth-reference 10000
注:若修改,整個網絡中所有路由器均需要修改為一致;
五、成為鄰接關系的條件;
MA—多路訪問—在一個網段中;節點數量不限制
點到點網絡類型—在一個網段內,只能存在兩個節點
在點到點網絡中,鄰居關系間將直接建立成為鄰接關系;
在MA網段中,若該網段所有設備均建立為鄰接關系,將可能導致大量的重復更新;
故需要進行DR/BDR的選舉—DR-指定路由器 BDR -備份指定路由器
該網段中其余路由器為非DR/BDR設備;所有的非DR/BDR之間只能建立鄰居關系;
成為DR的條件:
1、 比較接口的優先級 0-255 默認為1,越大越優;若為0,表示放棄選舉
2、 若接口接口優先級相同,比較RID,數值大優;
[r2-GigabitEthernet0/0/0]ospf dr-priority 2 進入參選接口,修改接口優先級
切記:選舉為非搶占選舉;故修改優先級后,必須重啟OSPF進程;
該網段所有設備,重啟進程后,可以進行重新選舉
<r1>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
六、ospf的擴展配置
1、認證
直連鄰居的接口上配置,鄰居間密碼編號必須一致,否則無法建立鄰居關系
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher cisco123
2、缺省路由 -- 邊界路由器上配置,讓內部設備生產缺省路由指向邊界
[r3]ospf 1
[r3-ospf-1]default-route-advertise always
3、 匯總—區域間匯總,不支持接口匯總-因為接口上傳遞拓撲
在ABR上,進入明細路由所在的區域,進行匯總配置;將區域內的路由匯總到其他區域
[r2]ospf 1
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]abr-summary 192.168.1.0 255.255.255.0
4、加快收斂,修改計時器