OSPF路由器鄰接關係的詳細建立過程

2021-05-22 20:23:38 字數 2927 閱讀 1187

執行ospf

協議的路由器, 如果你想正常運轉的話,那麼就得和其他的路由器建立完全鄰接的關係。因為這種狀態下,同乙個區域中的所有的路由器的lsdb都是完全同步的、一致的。呵 呵、、、其實呢,應該反過來說,當同乙個區域中的所有的路由器的lsdb的完全同步、一致的情況下,ospf

路由器才算是達到了這個完 全鄰接的狀態!

有這麼幾個過程:

ospf 處於 down 狀態----à init狀態-----à 雙向(two—way)狀態-----à 鄰接狀態--à 預啟動( exstart )狀態 ------à 交換(exchange )狀態----à 完全( full )鄰接狀態!

當配置了ospf的路由器剛剛啟動的時候,這個協議還是處於down的狀態的,為什麼呢?因為還沒有其他的路由器和他交換資訊啊。所以他接下來要做的就是 通過所有的ospf介面向外傳送hello分組,並且分組的目標位址是224.0.0.5 (這個位址代表的是哪些路由器呢?我認識吧,他代表的是與傳送hello分組的路由器直接相連的那些路由器,就是指的那些直連路由器。並且在這裡需要說明 的是,hello分組不會被路由,這個hello分組的行程只有一跳。那我們看到的「hello分組在整個區域中的多個路由器之間進行擴充套件」又該如何解釋 呢?hello分組在同乙個區域中的多個路由器之間進行擴充套件,運用的不是路由功能,而是乙個路由器傳送這個hello分組到了直接相連的所有的路由器後, 這些路由器就複製乙個副本,並且將自己的資訊新增進去後,就還是運用目標位址為224.0.0.5來分發這個hello分組到與自己直接相連的各個路由器 上。就這樣一直下去,以此類推!)

所有的直連ospf路由器接收到這個路由器傳送來的hello分組後,就將這個路由器加入到鄰居列表中。這就是init狀態!(這裡說的這個「鄰居列表」 說的是hello分組中的資料部分。如果不理解的話,可以去看看5種型別的ospf分組的格式)

所有的這些收到hello分組的路由器,都會向傳送這個hello分組的路由器傳送乙個單播應答分組;其中包含著自己的資訊(因為人家這個路由器也不是死 的啊,人家也同時在進行這個過程啊,人家也有自己的一些鄰居啊),這個發回去的應答分組中的「鄰居列表」中自然是包含那個開始傳送這個hello分組的路 由器了。現在這個應答分組就是返回給他的。

原來那個路由器接收到這個應答分組後,先看看這個鄰居列表中是否包含自己。如果包含自己的話,就說明乙個問題:即對方已經知道我的存在了。並且接下來就將 這個hello分組中帶來的那些鄰居表中包含的路由器id加入到自己的lsdb中。這樣一來呢,這些路由器就建立了雙向( two-way )狀態。到此為止,所有的路由器之間都建立了雙向狀態,即路由id彼此出現在對方的鄰居列表中;

接下來,要看看網路型別,確定下是否有必要進行dr與bdr的選舉。如果這個網路屬於廣播型別的網路(如乙太網),那麼就需要進行選舉。具體的選舉過程可 以自己去查閱相關的資料。選擇了dr與bdr後,那麼網路中的路由器都只與這種身份的路由器建立雙向鄰接關係,然後路由器之間才能進行交換鏈路狀態資訊。

注:當乙個路由器加入到已經有dr與bdr的廣播網路時,將同所有的路由器(包括dr、bdr、drother)建立雙向狀態,但是只與dr與bdr建立 雙向鄰接關係!並且我們需要知道的是,網路中的所有的路由器都會定期的進行hello包的交換,以確保通訊不中斷。預設的時間間隔是10s。這個 hello分組中包含dr、bdr與乙個路由器列表,其實他們都是鄰居,也可以說是已經相互建立了雙向狀態的路由器。

還想來分析下這個「雙向狀態」與「鄰接」狀態的不同之處:

雙向狀態:這個狀態下的路由器之間定期進行交換的是hello分組,通過這個hello分組可以學習到的是所有可能存在的鄰居。這個定期的交換,指的是 10s一次,並且這個物件說的是同乙個區域中的所有的路由器,他們相互之間都會定期的進行這個動作,而不是某些具備特定條件的路由器才進行定期的交換!

鄰接狀態:這種狀態是在「雙向狀態」狀態下的一種提公升。且,這種狀態下進行交換的已經不是hello分組了,而是lsu了。並且,這種動作並不是定期的, 而是觸發式的,即只要有鏈路狀態的改變,就會進行相應的lsu的建立、傳送。並且這個動作也不是發生在同乙個區域中的所有路由器之間了。而是發生具有特定 身份的路由器之間的。即發生在乙個普通的路由器(drother)與乙個特殊角色路由器(dr/bdr)之間。

上面是選舉了dr、bdr,各個路由器與dr、bdr建立了雙向鄰接關係,此時路由器就是處於預啟動(exstart)狀態了。這個狀態下,路由器已經做 好了發現有關網際網路絡的鏈路狀態資訊並建立lsdb的準備。

處於預啟動狀態後,dr與bdr之間建立主從關係。接下來他們就開始互相交換dbd(此時就算是進入了交換狀態),這個就是5種ospf分組中的第二種。 裡面包含的是lsdb中lsa條目的摘要資訊。lsa是關於鏈路或者網路的。摘要資訊包括鏈路狀態型別、通告lsa的路由器的ip位址、鏈路的成本和序列 號。當路由器收到dbd後並不是將其中的包含的內容全部的收下,而是一步一步的採取下面的步驟:

1、 首先給對方乙個lsack,來確認下已經收到了這個分組;

2、 將收到的資訊同本身的lsdb中資訊進行比較。如果有更新的條目的話,那麼就向傳送方傳送乙個lsr(這時候你就想了,他知道這個lsr發給誰嗎?只要想 要的是什麼嗎?呵呵、當然知道了,因為這些資訊都在傳送來的lsa摘要資訊中包含著呢。尤其是那個「通告lsa的路由器的位址」。)

3、 對方用lsu分組進行響應,該lsu中包含著有關被請求的條目的完整資訊。同樣呢,收到這個lsu分組後,也要給對方乙個lsack進行確認下!

4、 路由器將提供來的新的完整的lsa條目加入到自己的lsdb中。

彼此給對方提供所需要的全部lsa後相鄰路由器就處於同步和完全的鄰接狀態了。

上面說的是dr與bdr之間完全鄰接的這麼乙個過程,那麼其他的互為鄰接關係的路由器達到完全鄰接的狀態也是這麼乙個過程。其實說的就是drother 與 dr之間的完全鄰接過程!

那麼如何來判定條目的新舊呢?通過摘要資訊中的序列號字段就可以了,這個序列號是個長32位的字段,最小的乙個序列號是0x80000001,最大的是 0x8fffffff。當序列號越大的時候,就表示越新!

路由器想**資料流的話,必須處於完全鄰接狀態。至此,區域內所有路由器的lsdb都相同。

無憂linux時代

華為路由器ospf路由表解讀 聊聊路由器的工作過程

網路的互聯互通,通常離不開大型路由器裝置,下面我們來聊聊路由器的工作過程,先來看看一張地鐵的線路圖。我們思考一下,乘坐地鐵從竹子林站如何到達華強北站?細心的朋友們都看得出來有上十個方案,這些方案中有換乘最少的,也有停站最少的,通常人們心中有一套最佳的方案,下次去同樣的地方還用同樣的方案。路由器也是這...

OSPF路由協議在CISCO路由器上的應用

1.啟動ospf協議 在cisco路由器上啟動ospf路由協議,一般需要兩個步驟 1 啟動ospf協議程序 router config router ospf 2 定義路由器所在的網路 router config router network area ospf協議通過router ospf命令來啟...

一級路由器 和 二級路由器 的關係

1.一級路由器lan口的網線接二級路由器wan口,電腦連線二級路由器任意lan口,進入管理介面。2.在管理介面,設定二級路由器的wan口,可設定為 自動獲取 前提是可以獲取得到 或者 固定ip 輸入乙個跟一級路由器lan口處於同一網段且沒有被使用的ip 設定完畢點選 儲存 3.在管理介面,設定二級路...