網絡初級篇之OSPF(一)原理


一、OSPF是什么

  Open Shortest Path First, 開放最短路徑優先協議,是一種開源的使用最短路徑優先(SPF)算法的內部網關協議(IGP)。常用於路由器的動態選路。

 

二、OSPF常見的幾個概念

  1. 鄰居(Neighbor):宣告OSPF的路由器從所有啟動OSPF協議的接口上發出Hello數據包。若兩台路由器在同一條鏈路上,並且它們根據hello消息中指定的某些信息(比如id等)協商成功,那么它們就成為了鄰居(Neighbor)。

  2. 鄰接關系(Adjacency):兩台鄰居路由器之間構成的一條點到點的虛鏈路,鄰接關系的建立是由交換hello信息的路由器類型和網絡類型決定的。形成鄰居關系的雙方不一定會形成鄰接關系。

  3. 鏈路狀態通告(Link State Advertisement,LSA):每一台路由器都會在所有形成鄰接關系的鄰居之間發送鏈路狀態通告LSA。LSA描述了路由器所有的鏈路、接口、鄰居等信息。
    注:ospf定義了許多不同的LSA類型。

  4、Router ID:Router ID是一個32位的值(類似於IP地址,通常情況下建議手動進行配置),它是一個自治系統內的路由器的唯一標識。若沒有進行手動配置,則會按以下幾點進行自動選舉:

  ①若有邏輯接口,則按照邏輯接口中最大的IP地址作為Router ID。

  ②若沒有邏輯接口,則按照接口中最大的IP地址作為Router ID.

  注:若一台運行的路由器上重新配置了Router ID,可以在路由器上重置OSPF進程來更新Router ID。

  5. 鏈路狀態數據庫(LSDB):每一台收到來自鄰居路由器發出的LSA的路由器都會把這些LSA信息記錄在它的LSDB中,並且發送一份LSA的拷貝給該路由器的其他所有鄰居。這樣當LSA傳播到整個區域后,區域內所有的路由器都會形成同樣的LSDB。

  6、DR:DR是網絡的中心點,其選舉方式是按照路由器的端口優先級進行選舉(值越大越優先)。當端口優先級一致時,按照Router ID進行選舉(越大越優先)(當網絡拓撲穩定后,新加入路由器不管其優先級都不會成為DR或者BDR)

  7、BDR:;BDR是DR的備份,當DR出現問題時,由BDR接替DR(BDR出現問題時,不會影響DR,BDR會重新選舉)。

 

三、OSPF報文

  OSPF報文主要包含兩部分:IP Header 與 OSPF Protocol Packet

  • OSPF直接運行在IP協議上,使用的協議號是89
  • OSPF的有五種報文

  ①Hello報文最常用的一種報文,用以發現、維護鄰居關系。還可以在廣播和NBMA的網絡類型中選舉指定路由器(DR)與備份指定路由器(BDR).

  ②DD報文:兩台路由器進行LSDB數據庫同步時,用來描述自己的LSDB。(此報文只包含了LSA的頭部,而LSA的頭部可以唯一識別一條LSA)

  ③LSR報文:當兩台路由器交換過DD報文后,與自己的對比,會得知對端有而本端沒有的LSA。這時就會向對端發送LSR報文,以請求這些本端沒有LSA同步過來。在發送的LSR報文中只包含了本端所需要的LSA的摘要信息。

  ④LSU報文:用來向對端發送所需要的LSA。

  ⑤LSACK報文:對收到的LSU報文進行確認。

 

四、OSPF支持的網絡

  1、點到點的網絡

  2、廣播型網絡

  3、NBMA網絡

  4、點到多點的網絡

 

五、區域

  OSPF支持將一組網段組合在一起,這樣的一組合成為區域。

  Area 0 為骨干區域,為了避免路由的環路,非骨干區域之間不允許直接相互發布路由信息,所以,每個區域必須連接到骨干區域。

 

六、OSPF建立的步驟

  1、Down狀態

  在這個狀態下,所有設備剛剛啟動,設備之間沒有數據的交換。

  2、INT狀態

  在這個狀態下,路由器之間開始交換Hello報文。這時,設備知道了其他設備的存在。

  3、Two-Way狀態

  在這個狀態下,建立了雙向通信。符合條件的設備之間建立鄰居關系(此狀態不建立鄰接關系,但是建立鄰接關系前的最高狀態)。

  PS:(指定路由器與備份指定路由器的選舉也在這個狀態,不確定)

  4、ExStart狀態

  在這個狀態下,是建立鄰接關系的第一步。路由器開始向鄰居發送DD報文。當對端收到DD報文后,會回復一個LSA報文,表示我已收到。

  5、Exchange狀態

  在這個狀態下,設備之間開始互相發送含有鏈路狀態信息摘要的DD報文,用以描述本端的LSDB;而收到DD報文的設備會與自己的LSDB進行對比。

  6、Loading狀態

  在這個狀態下,當設備收到DD報文與自身的LSDB進行比較時,會發現有缺少的LSA。這時候,會發送LSR報文以學習鄰居設備的LSA;當鄰居收到LSR報文后,會回復LSU報文(也就是回復收到的LSR中包含的LSA的相關信息)以供LSR的發出端進行學習。

  7、Full狀態

  在這個狀態下,LSDB的同步以完成,所有的路由器以形成相同的LSDB。


七、OSPF補充
    1. 當這些路由器的LSDB完全相同時,每一台路由器都會以自身為根結點,使用最短路徑優先(Shortest Path First,SPF)算法計算一個無環路的拓撲圖,這個拓撲圖就是SPF算法樹。每台路由器都會從自己的SPF算法樹中構建出自己的路由表,用於動態選路。

    2. 當區域內所有節點的LSDB狀態都已同步后,ospf協議將會變的平靜下來,鄰居之間根據配置固定時間交換hello數據包作為心跳消息,並且每隔30分鍾傳一次LSA。如果網絡拓撲穩定,那么ospf也是穩定的。如果網絡拓撲發生了變化,比如有節點故障或者新增節點,那么將重新開始交換信息並計算路由。

    3. OSPF拓撲中的節點可以分為兩類:傳輸節點和末梢節點。傳輸節點指網絡鏈路中的中轉路由器,它一般兩端與其他ospf鄰居相連,作用僅是轉發數據包而數據包的源網絡和目的網絡往往都不同於傳輸節點所在的網絡;末梢節點指網絡鏈路中的末端路由器,它一般只有一端與ospf鄰居相連,作為數據包的源頭或者目的地。OSFP協議在末梢節點宣告主機路由(也就是子網掩碼為255.255.255.255的路由),這樣拓撲中其他節點要訪問末梢節點就可以在LSDB中查到對應的信息,並通過SPF算法生成的最短路徑進行訪問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM