OSPF:開放式最短路徑優先協議

OSPF:開放式最短路徑優先協議

標準的鏈路狀態路由協議----拓撲狀態
無類別協議,更新時攜帶子網掩碼;
公有協議;跨層封裝到IP報頭,協議號89;
組播更新224.0.0.5/6;
需要結構化部署的協議-----區域劃分、地址規劃
觸發更新、週期更新(30min)
鏈路狀態型路由協議的距離矢量型特徵
區域內傳拓撲,區域間傳路由

一、OSPF協議的數據包:

1、 數據包結構
在這裏插入圖片描述
1、 數據包種類
在這裏插入圖片描述
1、hello包 用於發現、建立、週期保活鄰居關係 存在router ID----RID 標識路由器 全網唯一的編號,使用ip地址
2、DBD包 數據庫描述包,檢查路由器的數據庫是否同步
3、LSR 鏈路狀態請求
4、LSU 鏈路狀態更新 —用於攜帶各種LSA
5、LSack 鏈路狀態確認

二、狀態機

Down:一旦本地發出hello包進入下一個狀態
Init:初始化 收到的hello包若存在本地的RID進入下一個狀態
2way:雙向通訊 鄰居關係建立的標誌
條件匹配:點到點網絡將直接進入下一個狀態; MA網絡類型將進行DR/BDR選舉,非DR/BDR間將無法進入下一狀態;
Exstart:預啓動 使用類似hello的DBD進行主從關係的選舉,RID大爲主優選進入下一狀態
Exchange 準交換 使用真正的DBD進行數據庫目錄的共享,需要使用ACK確認
Loading 加載 使用LSR/LSU/LSAck來獲取未知的LSA信息;
Full轉發 鄰接關係建立的標誌

LSA:鏈路狀態通告,在不同的網絡條件下將產生不同類別的LSA信息來代表拓撲或者路由條目;
LSDB:鏈路狀態數據庫 裝載和存儲所有各種類別的LSA;

三、OSPF的工作過程

OSPF協議啓動後,A向本地所有啓動了OSPF協議的直連接口組播224.00.5發送hello包;本地hello包中攜帶本地的全網唯一的router-id;之後對端B運行OSPF協議的設備將回復hello包,該hello包中若攜帶了A的router-id,那麼A/B建立爲鄰居關係;生成鄰居表;
鄰居關係建立後,鄰居間進行條件匹配,匹配失敗就停留於鄰居關係,僅hello包週期保活;條件匹配成功可以開始建立鄰接關係;
鄰接間共享DBD包,將本地和鄰接的DBD包進行對比,查找到本地沒有的LSA信息目錄;之後使用LSR來詢問,對端使用LSU應答具體的LSA信息,之後本地再使用ack確認,可靠;該過程完成後,生成數據庫表;
再之後本地基於數據庫表,啓用SPF選路規則,計算到達所有未知網段的最短路徑,然後加其加載到本地的路由表中;收斂完成,hello包週期保活,每30min再週期收發一次DBD來判斷和鄰接間數據庫是否一致;
產生的三種表:
1、鄰居列表:列出每臺路由器全部已經建立鄰接關係的鄰居路由器
2、鏈路狀態數據庫:列出網絡中其他路由器的信息,由此顯示了全網的網絡拓撲
3、路由表:列出通過SPF算法計算出到達每個相連網絡的最佳路徑
結構突變:
1、 新增網段 直連新增網段的設備,將直接使用LSU包來告知本地所有鄰接,之後鄰接傳鄰接擴散到全網,需要ACK確認
2、 斷開網段 直連斷開網段的設備,將直接使用LSU包來告知本地所有鄰接,之後鄰接傳鄰接擴散到全網,需要ACK確認
3、無法溝通 dead time 爲hello time 的4倍;當dead time到時時,斷開鄰居關係,刪除通過該鄰接生成的路由協議;

四、OSPF的基礎配置

[r1]ospf 1 router-id 1.1.1.1  
/*啓動時,需要定義進程號;進程號僅具有本地唯一性; 建議同時配置全網唯一的router-id; 生成順序—手工 本地環回接口中最大ip地址數值   本地物理接口中最大數值的ip地址  [r1-ospf-1]
宣告:ospf協議在宣告的同時需要進行區域劃分 
區域劃分規則:
1、星型拓撲結構,區域0爲中心骨幹區域,其他大於0爲非骨幹站點區域;
2、必須擁有ABR--區域邊界路由器
先進入區域,之後再該區域內宣告屬於該區域的接口,宣告時必須攜帶反掩碼*/
[r2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]q 
[r2-ospf-1]area  1 
[r2-ospf-1-area-0.0.0.1]network 23.1.1.1 0.0.0.0

啓動配置完成後,鄰居間收發hello包,建立鄰居關係;生成鄰居表

[r2]display  ospf peer
[r2]display  ospf peer  brief

鄰居、鄰接關係的發現、建立、保活均依賴hello包進行;Hello包中鄰居間必須完全一致的參數:任意參數不同,均導致鄰居關係無法建立
1、 子網掩碼(華爲)發送hello包接口的源ip地址其掩碼
2、 Hello dead time – OSPF接口網絡類型相關
3、 認證字段 – 更新安全
4、 區域ID – 要求區域間存在ABR
5、末梢區域標記 --特殊區域
在這裏插入圖片描述

鄰居關係建立後,鄰居間進行條件匹配,匹配成功者間可以建立爲鄰接關係;鄰接關係間將使用DBD包進行主從關係選舉,之後由主優先使用DBD進行數據庫目錄信息的共享,從而最終基於LSR/LSU/LSAck來獲取未知的LSA信息;當收集到全網的LSA信息後,裝載於本地的LSDB(鏈路狀態數據庫)–數據庫表:

<r2>display  ospf lsdb  
 <r1>reset ospf process 
 Warning: The OSPF process will be reset. Continue?[Y/N]:y

關於OSPF,DBD包的幾個知識點:
1、DBD包中攜帶MTU值,要求鄰居MTU值必須相同,否則將卡在exstart或exchange狀態; 默認華爲未開啓MTU檢測

[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable

2、隱性確認—不使用確認包,而是從設備複製主設備的序列號來確認收到了主的DBD
3、OSPF標記位
I爲1本地發出的第一個DBD包,
M爲0,表示本地發出的最後一個DBD;
MS爲1代表主,爲0代表從;
數據庫建立後,本地基於SPF選路規則,計算到達未知網段最短路徑加載於路由表中;
OSPF協議鄰居成爲鄰接關係的條件
在點到點網絡中,所有的OSPF鄰居將直接建立爲鄰接關係;
在MA網絡中,爲了避免大量的重複的LSA更新—因爲OSPF需要鄰接間進行DBD對比,故沒有接口水分割機制;故必須進行DR/BDR選舉,非DR/BDR間僅建立鄰居關係;—在每一個MA網絡中均需要進行一次選舉;
選舉規則:
1、 優先級 數值大優,默認爲1; 若爲0爲放棄選舉;
2、 優先級一致,比較參選接口所有設備的router-id,數值大優;
[r1-GigabitEthernet0/0/1]ospf dr-priority 2
修改參選接口的優先級
切記:DR選舉非搶佔 ,故在修改優先級後,必須重啓參選設備ospf進程來重新選舉
OSPF的收斂被稱爲LSA洪泛,也被稱爲LSDB同步;

五、OSPF接口網絡類型

OSPF協議在不同網路類型的接口下,其不同的工作方式

接口網絡類型 OSPF接口網絡類型(ospf工作方式)
LoopBack 0. Cisco – LoopBack 沒有hello包 以32位主機路由發送 華爲—顯示爲p2p類型 實際爲LoopBack工作方式
點到點(串線HDLC/PPP/GRE) p2p. hello time10s 自動建鄰 不選DR/BDR
BMA以太網 Broadcast hello time 10s 自動建鄰 選DR/BDR
NBMA幀中繼 nbma hello time 30s 手工建立鄰居 選DR/BDR
MGRE p2p. hello time10s 自動建鄰 不選DR/BDR –在一個網段中只能存在一個鄰居;華爲設備在一個MGRE網段,接口爲點到點工作方式時,僅和最先收到hello的設備建立鄰居關係;Cisco在這種情況將出現鄰居的翻滾;

注:在MGRE環境中,接口默認的ospf工作方式爲點到點,這種方式無法實現該NBMA網段的鄰居全連;故只能去修改接口的工作方式:
修改MGRE網段所有接口爲Broadcast工作方式,切記若一部分接口修改爲Broadcast,另一部分接口依然保持爲點到點,由於hello time相同可以建立鄰居關係,但工作機制在DR/BDR選舉處不同,故最終該網段無法正常收斂;
【1】 同時,必須關注網絡拓撲結構;若該網段爲全連網狀結構,那麼DR選舉將正常進行;但若爲部分網狀或中心到站點拓撲,將可能出現DR位置錯誤問題;
【2】 若網絡拓撲只能爲部分網狀或中心到站點,需要人爲手工干預DR位置或者將所有接口的工作方式修改爲點到多點工作方式;
Ospf的點到多點工作方式:只能手工配置,適用於部分網狀結構拓撲;
Hello time30s,不選DR/BDR,自動建立鄰居關係;

六、LSDB鏈路狀態數據庫

現實LSDB中基於區域和LSA分類的LSA統計信息
1、 LSA在LSDB中的老化時間是增大的,如果到1小時,就會從LSDB中清除,每30min- 次的LSRefreshT ime鏈路狀態重刷新可解決。源路由器擴散一個此LSA的新拷貝(序列號加1),來重刷新。
2、 Router LSA(1類)show ip ospf database router
每臺路由器都會產生,列出了路由器所有鏈路和接口,並指明瞭狀態和出站代價。以及該鏈路上所有已知鄰居,泛洪範圍始發它們的area內部。LinkStateID來源 於RID.
3、 Network LSA (2類)show ip ospf database network
多路訪問網絡上DR產生,描繪多路訪問網絡和此網絡上所有路由器,在始發area內泛洪。沒有度量值字段(不同與上),因爲LSA中表示僞節點到任何相連的路由器代價爲0。LinkStateID來源於DR接口的Ipaddress。
4、 Summary LSA (3類)show ip ospf database summary
ABR始發,ABR發送一個3類到另-一個區域,這些LSA就是ABR告訴在與之相連的區域內的IR它所能到達其他area目的地的一種方法。它描述了域間通信的目的地址。ABR發3類時,將包括它本身到正在通告的這條LSA的目的地所耗費的代價,ABR有多條路由到達目的地是選代價最低的。當一臺router收到3類,並不運行SPF算法,只是簡單加上從它到ABR的路由代價(部分SPF計算)由於此LSA沒有詳細的鏈路狀態信息,所以區域間是距離矢量特性。LinkStateID爲目的網絡號。
5、 ASBRsummaryLSA(4類)show ip ospf database asbr- summaryABR始發,通告的目的地址是一臺ASBRrouter,目的地爲主機地址,掩碼爲0,它是一條到達一臺router的路由。有ASBR時纔有。LinkStateID爲ASBR的RID。
6、 AS external LSA(5類) show ip ospf database external
始發於ASBR,通告到達0SPF自主系統外部目的地。不具體與區域相關聯的LSA,在整個0SPF中擴散。LinkStateID爲外 部網絡號。
7、 NSSAexternalLSA(7類) show ip ospf database nssa-external
始發與NSSA中的ASBR,幾乎和5類相同,職業始發這個LSA的NSSA區域內泛洪,這些外部前綴發往其他區域ABR會將此7類轉爲5類,LinkStateID爲外部網絡號
1類、2類只在始發它們本區域泛洪,3類、4類、5類全OSPF選擇域中泛洪,7類只在始發他的NSSA區域內泛洪。

七、OSPF區域

1、 區域0:彙總每個區域的網絡拓撲到其他區域。所有的域間通信量必須通過骨幹區域,非骨幹區域不能直接交換數據包。
2、 路由器類型:IR、BR、ABR、ASBR
3、 IR:所有接口都屬於同一區域的路由器。
4、 BR:至少有一個接口是與骨幹area0相連的路由器。Area0不一定是骨幹區域,但骨幹區域–定是area0,要成爲骨幹必須有一個鄰接關係在裏面
5、 ABR:連接其他區域到骨幹區域,至少一個接口屬於骨幹區域。
6、 ASBR: OSPF域外部的通信量進入0SPF域的網絡路由器。
7、 0SPF的虛鏈路:一條通過非骨幹區域連接到骨幹區域的鏈路。通過非骨幹區域修復分段的骨幹區域。它是邏輯通道,通過最優路徑到達另一端。

  • 它必須配置帶兩臺ABR之間。
  • 虛鏈路所經過的區域必須有全部路由選擇信息。就是傳送區域。
  • 傳送區域不能是末梢區域。
  • 4虛鏈路是屬於骨幹區域的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章