什么是OSPF
OSPF(OPen Shortest Path First)開放最短路徑優先,由IETF開發的基于鏈路狀態的自治系統內部路由協議(IGP)采用Dijkstra的最短路徑優先算法來計算和選擇路由。
該協議關注網絡中鏈路或者接口的狀態、帶寬、利用率、延時等。使用SPF算法計算和選擇路由,OSPF 將協議包直接封裝在 IP 包中,協議號 89。并且OSPF以組播形式發送協議報文,減少鏈路帶寬資源浪費。
OSPF的工作流程概述
工作流程主要有四個階段:
尋找鄰居
、建立鄰接關系
、鏈路狀態信息傳遞
、計算路由
尋找鄰居
在網絡中尋找可能與自己交換鏈路狀態信息的周邊路由器,可以交換鏈路狀態信息的路由器互為鄰居(Neighbor)
建立鄰接關系
鄰接關系(Adjacency)可以抽象的想象成一條虛擬的鏈路,用于鄰居路由器之間傳遞鏈路狀態信息,且只有建立了鄰接關系才能傳遞
鏈路狀態信息傳遞
OSPF路由器將建立描述網絡鏈路狀態的LSA(Link State Advertisement - 鏈路狀態公告),建立鄰接關系的OSPF路由器之間將交互LSA,最終形成包含整個網絡完整鏈路狀態信息的LSDB(Link State DataBase)鏈路狀態數據庫
計算路由
獲取完整的LSDB過后,OSPF區域內的每個路由器將會對著區域的網絡結構有相同的認識,如何根據LSDB的信息,運用SPF算法計算出路由,且避環路的產生。
如何建立鄰居關系
OSPF進程啟動后,以224.0.0.5進行組播發送Hello包,用以尋找鄰居, Hello包里面包含了:
始發路由器的Router-id
始發路由器接口的區域ID(Area ID)
始發路由器接口的子網掩碼
選定的DR路由器
路由器的優先級
等信息
其中建立鄰居關系的前提是:雙方接口UP``雙方接口IP地址在同一網段``雙方接口在同一區域
一臺路由器可以有很多鄰居,也可以同時成為幾臺或者其他的路由器鄰居,所有的信息都會存在鄰居表內。 通過互收Hello包,將狀態轉換為Init狀態
,之后兩邊Hello包內協商某些參數后,才能確定為鄰居,狀態修改為2-Way
當雙方鏈路狀態信息交互成功后,鄰居狀態修改為Full
,就表明鄰居之間鏈路狀態信息已經同步
Init:
初始化[收到了對方的Hello報文,但Hello報文中的鄰居字段沒有本機的Router-ID]
2-Way:
鄰居關系[雙方互相發現,收到了對方的Hello報文,并且報文中包含了乙方路由的Router-ID,并且確認了DR/BDR的角色關系]
BR與BDR選舉
在未選舉BR與BDR的狀態下,鏈路中的鄰接關系將變得非常巨大,消耗巨大的網絡資源,可以由上圖公式可算得網絡內鄰接關系的數量,為了解決這個問題,在OSPF引入了DR與BDR的概念。
本意是在網絡中選舉一臺DR(Designated Router)指定路由器
負責描述用LSA描述該網絡類型以及網絡內其他路由器,同時,他們也負責鏈路狀態信息交互過程。 同樣在選舉DR的同時也在選舉BDR(Backup Designated Riyter)指定備份路由器
簡單的說就是DR的備份,DR掛了就由他頂上,提升了可靠性
選舉規則
首先優先級數字大的優先選擇,默認優先級都是1
再接著是Router-id大的優先
Router-id
用來表述路由器的身份,產生的方法,有兩種手動配置一個可存在/不可存在的IPv4的地址格式作為Router-ID,自動選舉在所有環回口中選舉IP地址最大的作為Route-ID,在所有物理接口中選舉IP地址最大的作為Router-ID,建議是用手動方式配置一個環回口的IP地址作為Router-ID
鏈路狀態信息傳遞
通過在路由器之間發送LSA(Link State Advertisement)鏈路狀態公告
來交換鏈路狀態信息,通過獲取對方LSA,來同步乙方OSPF區域內的鏈路狀態信息。
為避免網絡資源浪費,OSPF 路由器采取路由增量更新的機制發布 LSA,即只發布鄰居缺失的鏈路狀態給鄰居
路由計算
路由計算
- 首先評估一臺路由器到另一臺路由器所需的開銷(Cost)
- 同步區域內的所有路由器的LSDB
- 使用SPF算法計算出路由
數據庫同步的工作流程
- 向鄰接路由器發送DD報文,通告本地LSDB中所有LSA的摘要信息
- 收到DD后,與本地LSDB對比,向對方發送LSR報文,請求發送本機所需的LSA的完整信息
- 收到LSR后,把對方所需的LSA的完整信息打包為一條LSU報文,發送至對方
- 收到LSU后,向對方回復LSAck報文,進行確認
OSPF三張表
路由表
記錄了由SPF算法計算過后的路由
鄰居表
記錄鄰居關系和狀態
拓撲表
鏈路狀態數據庫
OSPF報文類型
-
Hello報文 :
用于發現和建立鄰居關系,維護鄰居狀態
-
DD報文 :
用于描述本地LSDB中所有的LSA摘要
-
LSR報文 :
用于鏈路狀態請求,自身所要更新的鏈路狀態詳細信息
-
LSU報文 :
用于鏈路狀態更新
-
LSACK報文 :
用于鏈路狀態確認報文
OSPF多區域概念
分區域管理是為了環節單區域管理中,節點壓力過大的問題,將一個大區域劃分為多個小區域(Area)來管理,劃分之后的系統內通信將劃為三種:區域內通信
、區域間通信
、區域外部通信
區域內通信
—在同一個區域內的路由器之間的通信 路由角色可以叫IR
,區域內部路由器 用于內部通信,所有接口都在同一個區域內
區域間通信
不同區域的路由器之間的通信 路由器角色可以叫ABR
,區域間路由器 用于區域之間通信
區域內部通信
OSPF 域內路由器與另一個自治系統內的路由器之間的通信 路由器角色可以叫ASBR
,自治系統邊界路由器 用于連接外部自治系統的路由器
OSPF區域類型
-
骨干區域 :
每個OSPF網絡中只能有一個骨干區域,一般都是
Area 0
,骨干區域主要用于連接其他非骨干區域,且每個非骨干區域必須要與骨干區域相連接 -
非骨干區域 :
-
所有的非骨干區域必須和骨干區域相連接
OSPF的開銷計算
參考帶寬:
- 計算開銷的基準帶寬值
- 默認參考帶寬為100M
- 建議把網絡中最高的鏈路帶寬設置為參考帶寬。
- 參考帶寬僅本地有效
計算方法:
- 鏈路帶寬大于等于參考帶寬 Cost = 1
- 鏈路帶寬小于參考帶寬Cost = 參考帶寬/鏈路帶寬MB
OSPF的優點
- OSPF 區域內的路由器對整個網絡的拓撲結構有相同的認識,在此基礎上計算的路由不可能產生環路
- 當網絡結構變更時,所有路由器能迅速獲得變更后的網絡拓撲結構,網絡收斂速度快
- 由于引入了Router ID的概念,OSPF區域內的每臺路由器的行為都能很好地被跟蹤
- 使用 SPF 算法計算路由,路由選擇與網絡能力直接掛鉤,選路更合理
- OSPF 采用多種手段保證信息傳遞的可靠性、準確性,確保每臺路由器網絡信息同步,同時,避免了不必要的網絡資源浪費
OSPF基礎配置
[系統]ospf [ID] router-id [Router-ID] #設置Router-id
router-id [Router-ID] #在系統視圖下設置Router-ID 會被應用到所有的協議[全局],其中在協議內配置的Router-ID高
[進程]area [ID] #進入區域ID,區域的編號格式也是IPv4地址格式
[區域]network [network] [反網掩碼]#宣告網絡,反網掩碼也叫掩碼通配符
[進程]silent-interface [interface] #靜默接口
ospf network-type [broadcast | nbma | p2mp unicast | p2p | peer-address-check ] #手動修改網絡類型
[進程]ospf-router-advertise [always | permit-calculate-other | cost [Cost] | route-policy [name] | type [Type] | summary cost [cost]] #配置OSPF引入缺省路由,always,如果本機沒有配置默認路由,使用此參數可以參數一個描述默認路由的一個LSA發布出去,Cost為改默認路由的度量值,type為LSA的類型。
[接口]ospf timer hello [seconds] #修改Hello Time 計時器時間
[接口]ospf time dead [seconds] #修改鄰居失效時間
[接口]ospf dr-priority [priority] #修改啟用OSPF的接口的路由器優先級
[接口]ospf cost [cost] #修改開銷值
bandwitdth-reference [value] #修改OSPF的參考帶寬
display ospf interface #顯示ospf接口信息
display ospf peer #顯示鄰居關系FULL為鄰接關系,2-Way為鄰居關系
display ospf lsdb #查看LSDB數據庫
display ospf routing #查看OSPF路由
display ospf lsdb #插件本地LSDB匯總情況
display ospf verbose #查看OSPF進程詳細信息
display ospf statistics #顯示OSPF統計信息
display ospf interface #查看OSPF接口信息
display ospf routing #查看OSPF路由信息
dispaly ospf statistics error #顯示ospf錯誤信息[排錯常用]
-
交換機
+關注
關注
21文章
2656瀏覽量
100179 -
路由器
+關注
關注
22文章
3744瀏覽量
114473 -
OSPF
+關注
關注
0文章
80瀏覽量
14918
發布評論請先 登錄
相關推薦
評論