ospf狀態機-通俗易懂的小故事

閱讀本文大概需要 5 分鐘。

公衆號:工程師江湖
*
故事:一個名字叫做ospf狀態機的故事*

很久很久以前,有一個區域,這個區域叫做 自治系統AS,在AS內部有很多管理員,管理員來有個別名叫做IGP協議,這是對外的說法,裏面的每個實體協議都具有屬於自己的管理體系,很好理解,每個管理者都有屬於自己的管理風格。

IGP裏面的實體協議管理員我們把它分別叫做 OSPF,ISIS,Rip,Eigrp。

那麼,OSPF的故事開始了。

在這裏插入圖片描述
剛纔也說了,OSPF這個實體管理員有屬於自己的管理風格,我相信每個管理員都會做一件事情,拆分團隊,讓他們各司其職。

所以,ospf裏面存在區域這麼一個說法,重要骨幹小團隊叫做骨幹區域,也就是area0,其餘的團隊叫做非骨幹區域,這些非骨幹區域可以是area 1 ,area3,area4…

管理員並不是很關心,他只關心核心小團隊,area0。
至於其餘的非骨幹區域,讓他們負責好自己的一畝三分地就行,發生變動時候都要聯繫area0,也就是骨幹區域,換句話說就是,骨幹區域裏面的隊員都是對外的小領導,叫做ABR。
在這裏插入圖片描述

就好像網工們一般運氣不好進入了外包團隊,那麼等待你的將是頤指氣使。哪怕是一個客戶的普通職員,也會是你的領導。
在這裏插入圖片描述
問題來了,這些非骨幹區域怎麼把重要消息彙報給管理員呢。

很簡單,每個非骨幹區域都要和骨幹區域的隊員建立連接。
這個連接方式叫做虛連接,通過骨幹區域繞一圈才能彙報上去。
在這裏插入圖片描述

其實有一個點需要意識到,不管你是誰,都脫離不了最基本的關係。

在ospf裏面我們叫做鄰居或者領接關係。

怎麼講?
你上班了,你的同事對於你來說只是一個象徵合夥做事的意義,只在上班的時候纔會有交集,關係很簡單,這個叫做鄰居關係。

不過隨着時間的推移,忽然漸漸發現,你和這個同事居然有相同的興趣,相同的語言,相同的飲食習慣。

額,可能在朝着像基友那方面發展,別想歪,我是說關係很緊密,有私事,大家互相幫助。

這個就已經到了領接FULL的關係。

先看下面這個圖。
在這裏插入圖片描述
FULL就是最終的基友關係,2-way就只是陌路旁人的關係。

串聯一下
你加入一個公司了,簽完協議了,好了,這時候你是這個公司的職員了。
什麼都不知道,只是在公司的通訊錄上面見到一串人名,ok,這時候是DOWN的狀態,加入,但是沒有和其他人建立了聯繫。

放在ospf裏面來講就是,我只是剛剛把ospf協議配置上去,還沒有任何動靜。
// OSPF配置
ospf 1 router-id 1.1.1.1
non-stop-routing
area 0.0.0.0
network 192.168.10.1 0.0.0.255

接着你的領導在羣裏面發了個消息,歡迎新同事。
然後一堆同事的消息在QQ或者微信羣裏面彈出來,歡迎加入我們。

這時候這些歡迎你的同事,對於你來說,是單播消息,也就是ospf裏面的Init狀態,你收到了對方的hello報文消息,但是對方的通訊錄裏面並沒有你。

在這裏插入圖片描述

這時候你就開始蠢蠢欲動了,在想,部門同事我得趕快一個一個的加上去,聯絡一下感情,要不沒法做事,轉正還要靠他們指點。

我加,我加,我使勁加好友…

hello,我是新入職的同事,名字叫做,“工程師江湖——售後”,請多多指教。

對方回你消息了,你們的點對點建立成功了,在OSPF裏面叫做2-Way狀態。

稍等,在這個裏面會發生一件悄無聲息的小戰爭,佔據制高點。
在公司總會有上下級。
老員工,新員工。
大神,菜鳥的區別。

這時候2-way狀態下就是在無聲無息的爭這個事情。
也就是DR,BDR的選舉。

前提,你不是外包人員,如果是外包人員,夥計,我只能說你被默認放棄了,大家都不會拿你很當做一回事。

哪怕是在OSPF協議裏面也是這樣殘酷。
你是外包人員,那麼很抱歉,你的優先級爲0,累的,麻煩的你來做,輕鬆的也是能讓你做,就儘量讓你做。
在這裏插入圖片描述

在OSPF協議裏面,優先級爲0的設備是不能參與DR,BDR的競爭的。

新入職的員工:我好歹也是實戰經驗豐富,自信和別人差距不是很大。

寒暄着,慢慢進入小型戰爭狀態。

我最近也是有點煩,IE認證要到期了,你的到期沒有?
哎,我其中的一個安全IE證書快到期了,不打算考了。

我擦,多IE,趕緊認慫,話題跳過。

無聲無息在你心中,可能已經默認別人比你強了。

ospf中,這就是比較優先級,當然了還有其他的比較,這裏不具體細說。

有一個問題,爲什麼要選舉DR,DRother呢?

因爲ospf是一個鏈路狀態路由協議,具體的詳細信息依靠大量的LSA報文這些泛洪,你想想,如果兩兩路由器之間都要交互相關信息,那麼設備需要多強的性能呢?

換個思路想,在公司裏面,每個管理者的下屬,也就是隊員不可能清清楚楚知道團隊裏面成員的動向,這個只有管理員知道,因爲任務是它派發下去的。

也就是說有個中心點,就是DR,你們DRother統一向DR彙報,然後DR整合消息,在羣裏統一下下發。

如果有了DR指定轉發,那麼連接數關係就變爲N*(N-1)個。
爲了防止DR忙不過來,配置有助手BDR,DR不在,那麼BDR之間選舉出一個DR,這個DR負責中心節點該做的事情。

至於DRother,你們各司其職就好。
在這裏插入圖片描述

各位,注意一下,上面的2-way狀態只是處理簡單的消息,比如見面時候,hello,吃了麼,等這種無關緊要的消息。

如果要進行業務上面的交集,這時候關係還要更進一步。
領接FULL,可以交換鏈路狀態信息,同步自己的數據庫,說白了就是,我知道你在做的項目,你也知道我在做的項目的具體情況,資源調用情況。

2-way以後開始進入下一個狀態。

ExStart
要開始交換信息了,又有一個問題,誰先來,怎麼知道這個同事確實得到過領導的授權呢?

也得加一層保險,在OSPF裏面叫做隱式確認。
由於OSPF直接用IP報文來封裝自己的協議報文,所以在DD報文傳輸的過程中必須考慮到報文傳輸的可靠性。

叫做主從Master/Slave選舉。

好了,繼續進入下一階段,EXCHANGE狀態。

這是什麼?

就好像你在公司通訊錄的第一眼通常都是觀察部門,公司有多少部門,部門裏面的每個人員大概是幹什麼的,連蒙帶猜。

比如負責售後技術支撐,售前支持等。

exchage階段就是了解部門的介紹信息,包括部門這個整體是做什麼的,部門裏面的人員大概負責什麼的。

ospf裏面就是叫做DBD報文,數據庫描述報文,描述本地LSDB信息。

換成書的目錄,你可能會更好理解點。
在這裏插入圖片描述

ok,這個階段完事了,下一個階段,Loading狀態

企業中遇到業務情況,我先知道找哪一個部門,然後根據部門的這個人員劃分,去找這個負責人進行申請,我需要這方面的人要支持等等類似。

ospf裏面就是使用LSR請求報文,然後會收到一個具體的LSU報文信息。

也就是這個員工具體可以提供的能力支持,負責人發給你這份能力表,收到的這個具體能力描述信息就是LSA報文。

收到了,回覆一下這個管理人員,我知道你的隊員能夠做什麼了,就是LSAck報文。

繞死我了,只能這樣嘍。
在這裏插入圖片描述

然後不斷的交互,同步,最後發現,遇到了對的人,他就是我要找的那個技術支持人員,FULL狀態,所有人的LSDB同步。

總結一下:
在這裏插入圖片描述

來源公衆號:工程師江湖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章