關於OSPF協議,你都知道嗎?

2020-02-27   sandag

今天來給大家講講OSPF協議之詳細圖解。

OSPF是一種基於SPF算法的鏈路狀態路由協議。

上圖是在一個OSPF區域裡面添入一台新的路由器的時候,OSPF協議的工作過程,如果你能非常詳細的敘述出這張圖的話,基本上OSPF協議的工作過程你就掌握了。

首先大家要清楚,一台運行了OSPF協議的路由器,最終都會存儲三張表:鄰居表、拓撲表、路由表。下面以這三張表的產生過程為線索,來分析在這個過程中,路由器發生了那些變化,從而說明OSPF協議的工作過程。

一、鄰居表的建立

一台新加入OSPF區域的路由器首先要跟鄰居路由器建立鄰接關係,過程如下:

新路由器發出第一個hello分組以後等待應答,等待的時間間隔為hello分組的四倍等待期間的狀態稱為路由器的初始狀態,等待期間,新路由器從另外一台路由器那裡收到hello分組,並獲知DE和BDR,如果沒有,則開始選擇。網絡上的其他路由器收到新路由器發的hello0分組以後將該路由器的router Tn加入到拓撲資料庫中,並發一回應hello分組,其中包含自己的router ID所有鄰居組成的列表。

新路由器看到自己的ID出現在其他路由器應答的鄰居列表中建立了鄰接關係,新路由器將其狀態改為雙向。

通過上面3步,新加入的路由器和其鄰居路由器已經建立了鄰接關係。

二、拓撲表的建立

在建立拓撲表的時候,新加入的路由器要經歷預啟動狀態、交換狀態、加載狀態、完全鄰接狀態。下面就將此過程,以圖的形式展示給大家:


(2)交換狀態:兩台路由器都發送DBD,DR發送一系列的DBD,其中包括含了存儲在其database中的網絡。DBD中沒有包含詳細的必要信息,只是為了從其他鄰居路由器接收到DBD消息報文之後,與自己的資料庫進行比較。

(3)加載狀態:新路由器需要更詳細的信息,將使用LSR(鏈路狀態請求包)進行特定某LSA的詳細信息的請求,而被請求端則會響應,並且會發送LSU(鏈路狀態更新包),此包包含了信息的LSA信息。

經過以上四步,此OSPF區域的所有路由器的數據拓撲圖都達到了同步。

三、 然後每個路由器按照產生的全區域數據拓撲圖,在運行SPF算法,產生到達目標網絡的路由條目。

經過以上三大步,OSPF協議的運行過程基本結束。

在上面的過程當中有幾個很重要的問題需要注意:

(1) 此協議的管理距離是110、OSPF路由進程ID的範圍必須在1-65535之間,而且只具有本地含義,不同路由器的路由進程ID可以不同、區域ID在0至4294967295,當區域值取0時本區域稱為主幹區域;

(2) 確定router ID遵循如下順序:

  • 用router ID 命令指定的路由器ID的優先級最高
  • 如果沒有指定,那麼選IP位址最大的環回接口的IP位址為route ID
  • 如果沒有換回接口,就選擇UP埠中IP值最大的為router ID
  • 但還是建議使用命令指定,這樣可控性比較好;

(3) DR選舉的原則

首要因素是時間,最先啟動的路由器被選舉成為DR。

如果同時啟動,或者重新選舉,則看接口優先級(0-255),優先級最高的被選舉成DR,在默認情況下,多路訪問網絡的接口優先級為1,點到點網絡的接口優先級為0,修改接口優先級的命令是「ip ospf priority」,如果接口的優先級被設置為0,那麼該接口不參與DR選舉。

如果前兩者相同,最後看路由器ID,路由器ID最高的被選舉成DR。

DR選舉時非搶占的,除非人為地重新選舉。重新選舉DR的方法有兩種,一是路由器重新啟動;二是執行「clear ip ospf process"命令。

以上,就是今日思博為你帶來的OSPF詳細圖解,希望對你能有所啟發~