0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OSPF鄰居狀態(tài)機的詳細講解

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-26 02:12 ? 次閱讀

1、背景

我們都知道,任何新技術(shù)的誕生,都是有它一定的自然規(guī)律的。絕逼不是憑白無故的產(chǎn)生。所以,龍哥希望大家學(xué)習(xí)一個技術(shù)時,學(xué)會多關(guān)聯(lián)相關(guān)協(xié)議,聯(lián)想他們各自的特點,學(xué)會把知識串聯(lián)起來,這樣你就不會覺得學(xué)技術(shù)好難啊,就不會總是跟龍哥抱怨:總是記不住怎么辦呢?

會有鏈路狀態(tài)協(xié)議的OSPF產(chǎn)生,是因為前面距離矢量路由協(xié)議存在兩個非常嚴(yán)重的問題:

1、收斂速度緩慢,就是太磨嘰了;2、容易產(chǎn)生路由環(huán)路。

OSPF,全稱Open Shortest Path First,即開放最短路徑優(yōu)先,是由IETF的OSPF工作組在1989年10月開發(fā)的,發(fā)表的RFC為1131, OSPFv1從此誕生,該協(xié)議是基于著名的DijKstra算法。不過版本1一直都是在實驗室中使用,未推廣成功。版本2才開始被廣泛使用,在RFC2328說明。

注:IETF:國際互聯(lián)網(wǎng)工程任務(wù)組(The Internet Engineering Task Force,簡稱 IETF。1985年年底成立。

2、LSDB

LSDB,全稱是Link State DataBase,鏈路狀態(tài)數(shù)據(jù)庫。為啥會有它呢?還不是因為距離矢量路由協(xié)議RIP,是個“傳言”路由協(xié)議,在距離矢量路由協(xié)議中,鄰居說有啥路由,你就信啥,你心中自己都沒有一張地圖,就很容易經(jīng)常被騙,所以會導(dǎo)致環(huán)路。所以O(shè)SPF干脆就給區(qū)域內(nèi)每臺路由器都搞一張地圖,這樣就不會上當(dāng)受騙了,這個地圖就是LSDB,這樣就使得OSPF可以保證區(qū)域內(nèi)無環(huán),區(qū)域間無環(huán),通過一些規(guī)則來限制,這樣區(qū)域內(nèi)外都能保證無環(huán)。下面,簡單介紹一下:

簡單說明一些,區(qū)域內(nèi)路由器一旦配置了OSPF,每臺路由器就會開始泛洪LSA(包含IP地址、掩碼、開銷、網(wǎng)絡(luò)類型等信息),每臺都能收到LSA,會構(gòu)建一張數(shù)據(jù)庫,即LSDB。然后每臺路由器都會以自己為根節(jié)點,構(gòu)建一顆最短路徑樹,然后從這棵樹中計算路由,將最優(yōu)的放進路由表,用于指導(dǎo)業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)發(fā)。

可能上圖小白看著會覺得有點抽象,很難受。行吧,那龍哥動手搭個環(huán)境,聯(lián)系實際場景,可能就會更好理解了。

現(xiàn)在我登錄到每臺設(shè)備給大家演示一下如何查看LSDB(鏈路狀態(tài)數(shù)據(jù)庫):

從以上截圖來看,相信大家應(yīng)該發(fā)現(xiàn)一個現(xiàn)象了,那就是每臺路由器的LSDB是一樣的,說明區(qū)域內(nèi)每臺路由器的“地圖”都是長一個樣的。

然后我再每臺路由器都創(chuàng)建loopback 0,都宣告到OSPF,目的是驗證計算路由。不然上述環(huán)境,直連路由優(yōu)先OSPF路由,所以查看路由表是不會看到OSPF路由的。

創(chuàng)建后隨便登錄一臺路由器就可以了(因為每臺路由器LSB都是一樣的),去查看1類LSA(1類LSA每臺路由器都會產(chǎn)生的)

然后我們在R1查看路由表中的OSPF路由:

我們可以看到只有2條OSPF路由,10.10.10.10沒有在里面,是因為它不是最優(yōu)的,因為它是直連路由,直連路由(優(yōu)先級0)比OSPF(優(yōu)先級10)優(yōu)。

3、報文類型

不管你學(xué)什么協(xié)議,都繞不開學(xué)習(xí)報文。報文,就是協(xié)議之間互相交付的數(shù)據(jù)內(nèi)容。

OSPF在層次模型中,是基于IP層之上的,協(xié)議號是89。

上圖看完,我們是不是就可以定位出OSPF其實也是跟TCP、UDP同一傳輸層級別的協(xié)議了。

現(xiàn)在,是不是明白了,為啥OSPF報文需要LSAck了吧? 因為OSPF不是基于TCP,TCP有確認(rèn)機制,所以O(shè)SPF如果要確認(rèn)機制,就需要開發(fā)一個報文類型,用來做確認(rèn),即LSAck。

現(xiàn)在,我們來總結(jié)一下OSPF的報文類型有:

Hello報文:用于發(fā)現(xiàn)、建立、維護鄰居關(guān)系。

DBD報文:鏈路狀態(tài)數(shù)據(jù)庫的目錄,即摘要信息。

LSR報文:發(fā)現(xiàn)自己缺少哪些摘要信息的,就去請求缺少的LSA。

LSU報文:完整的LSA信息。

LSAck報文:確認(rèn)收到LSA。

本期主題龍哥于大家分享的是OSPF鄰居狀態(tài)機,所以重點介紹一下OSPF的Hello報文。

有些人遇到OSPF鄰居不能建立成功,總是不知所措;或者有些考試應(yīng)付考試,來問龍哥,影響OSPF鄰居建立因素好幾條,總是記不住怎么辦呀?其實,這個問題很簡單,就是你沒有把Hello報文格式內(nèi)容給了解透徹。

你細品Hello報文,再去看影響OSPF鄰居建立的因素,就清晰多了:(1)router id(2)area id(虛鏈路的area id可以不一致,什么意思)(3)認(rèn)證(4)hello/dead(5)區(qū)域類型(option位,e=1、n=0為普通/骨干區(qū)域,e=0、n=0為stub區(qū)域,e=0、n=1為nssa區(qū)域)(6)接口的地址掩碼(ma網(wǎng)絡(luò),LSA2的掩碼描述接口的掩碼,如果掩碼不一致會認(rèn)為有兩臺DR,p2p沒有問題)不在hello包(7)接口mtu(鄰接關(guān)系出問題)(8)ospf進程下靜默

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • OSPF
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    14864
收藏 人收藏

    評論

    相關(guān)推薦

    華為設(shè)備中的OSPF命令詳解

    OSPF網(wǎng)絡(luò)。這篇文章將詳細介紹華為設(shè)備中的OSPF命令,包括基本配置、路由策略、鄰居關(guān)系和故障排除等方面,幫助讀者全面了解和掌握這些命令。
    的頭像 發(fā)表于 08-12 18:13 ?1227次閱讀

    觸發(fā)器和狀態(tài)機的關(guān)系是什么

    觸發(fā)器和狀態(tài)機在數(shù)字電路設(shè)計中有著緊密的關(guān)系,它們共同構(gòu)成了時序邏輯電路的基礎(chǔ),用于實現(xiàn)數(shù)據(jù)的存儲、處理和傳輸。
    的頭像 發(fā)表于 08-12 11:24 ?336次閱讀

    如何在FPGA中實現(xiàn)狀態(tài)機

    在FPGA(現(xiàn)場可編程門陣列)中實現(xiàn)狀態(tài)機是一種常見的做法,用于控制復(fù)雜的數(shù)字系統(tǒng)行為。狀態(tài)機能夠根據(jù)當(dāng)前的輸入和系統(tǒng)狀態(tài),決定下一步的動作和新的狀態(tài)。這里,我們將
    的頭像 發(fā)表于 07-18 15:57 ?429次閱讀

    玩轉(zhuǎn)Spring狀態(tài)機

    說起Spring狀態(tài)機,大家很容易聯(lián)想到這個狀態(tài)機和設(shè)計模式中狀態(tài)模式的區(qū)別是啥呢?沒錯,Spring狀態(tài)機就是狀態(tài)模式的一種實現(xiàn),在介紹S
    的頭像 發(fā)表于 06-25 14:21 ?855次閱讀
    玩轉(zhuǎn)Spring<b class='flag-5'>狀態(tài)機</b>

    關(guān)于SMU狀態(tài)機的問題求解

    我有一些關(guān)于 SMU 狀態(tài)機的問題。 假設(shè)由于某種原因,SMU 已進入故障狀態(tài)。 手冊指出,要返回運行狀態(tài)并將 FSP 恢復(fù)到無故障狀態(tài),應(yīng)調(diào)用IfxSmu_releaseFSP()。
    發(fā)表于 05-29 08:18

    在Verilog中實現(xiàn)Moore型和Mealy型狀態(tài)機的方法簡析

    編寫能夠被綜合工具識別的狀態(tài)機,首先需要理解狀態(tài)機的基本概念和分類。狀態(tài)機(FSM)是表示有限個狀態(tài)以及在這些狀態(tài)之間轉(zhuǎn)換的邏輯結(jié)構(gòu)。
    的頭像 發(fā)表于 05-01 11:38 ?1382次閱讀

    如何采用“狀態(tài)機”解析UART數(shù)據(jù)幀

    如果一個系統(tǒng)接收上述“不定長度”的協(xié)議幀,將會有一個挑戰(zhàn)--如何高效接收與解析。 為簡化系統(tǒng)設(shè)計,我們強烈建議您采用“狀態(tài)機”來解析UART數(shù)據(jù)幀。
    的頭像 發(fā)表于 03-25 14:29 ?595次閱讀
    如何采用“<b class='flag-5'>狀態(tài)機</b>”解析UART數(shù)據(jù)幀

    什么是有限狀態(tài)機?如何解決傳統(tǒng)有限狀態(tài)機狀態(tài)爆炸」問題?

    有限狀態(tài)機(Finite State Machine,簡稱FSM)是一種用來進行對象行為建模的工具,其作用主要是描述對象在它的生命周期內(nèi)所經(jīng)歷的狀態(tài)序列以及如何響應(yīng)來自外界的各種事件。
    的頭像 發(fā)表于 02-17 16:09 ?5899次閱讀
    什么是有限<b class='flag-5'>狀態(tài)機</b>?如何解決傳統(tǒng)有限<b class='flag-5'>狀態(tài)機</b>「<b class='flag-5'>狀態(tài)</b>爆炸」問題?

    Verilog狀態(tài)機+設(shè)計實例

    在verilog中狀態(tài)機的一種很常用的邏輯結(jié)構(gòu),學(xué)習(xí)和理解狀態(tài)機的運行規(guī)律能夠幫助我們更好地書寫代碼,同時作為一種思想方法,在別的代碼設(shè)計中也會有所幫助。 一、簡介 在使用過程中我們常說
    的頭像 發(fā)表于 02-12 19:07 ?3668次閱讀
    Verilog<b class='flag-5'>狀態(tài)機</b>+設(shè)計實例

    狀態(tài)機該怎么監(jiān)控

    狀態(tài)機卡住的場景——通過狀態(tài)跳轉(zhuǎn)條件的DFX信號去判斷卡住的原因
    的頭像 發(fā)表于 01-15 10:03 ?379次閱讀
    <b class='flag-5'>狀態(tài)機</b>該怎么監(jiān)控

    Spring狀態(tài)機的實現(xiàn)原理和使用方法

    說起 Spring 狀態(tài)機,大家很容易聯(lián)想到這個狀態(tài)機和設(shè)計模式中狀態(tài)模式的區(qū)別是啥呢?沒錯,Spring 狀態(tài)機就是狀態(tài)模式的一種實現(xiàn),在
    的頭像 發(fā)表于 12-26 09:39 ?1833次閱讀
    Spring<b class='flag-5'>狀態(tài)機</b>的實現(xiàn)原理和使用方法

    SaberRD狀態(tài)機建模工具介紹(二)狀態(tài)機建模工具使用示例

    假設(shè)電阻阻值為r_normal,首先打開狀態(tài)機建模工具,添加電阻端口,電阻端口包含貫通變量電流和跨接變量電壓,使用分支型端口。
    的頭像 發(fā)表于 12-05 09:53 ?892次閱讀
    SaberRD<b class='flag-5'>狀態(tài)機</b>建模工具介紹(二)<b class='flag-5'>狀態(tài)機</b>建模工具使用示例

    SaberRD狀態(tài)機建模工具介紹(一)什么是狀態(tài)機建模

    狀態(tài)機建模是使用狀態(tài)圖和方程式的手段,創(chuàng)建基于混合信號的有限狀態(tài)機模型的一種建模工具。
    的頭像 發(fā)表于 12-05 09:51 ?1565次閱讀
    SaberRD<b class='flag-5'>狀態(tài)機</b>建模工具介紹(一)什么是<b class='flag-5'>狀態(tài)機</b>建模

    狀態(tài)機怎么上來就錯了?怎么解決?

    狀態(tài)機本身很簡單,default也寫了,然后進行仿真時看到了這樣的波形:
    的頭像 發(fā)表于 12-04 10:43 ?349次閱讀
    <b class='flag-5'>狀態(tài)機</b>怎么上來就錯了?怎么解決?

    如何利用Linux下的工具來自動生成實用的狀態(tài)機框架?

    有限自動機(Finite Automata Machine)是計算機科學(xué)的重要基石,它在軟件開發(fā)領(lǐng)域內(nèi)通常被稱作有限狀態(tài)機
    的頭像 發(fā)表于 11-25 14:15 ?1270次閱讀
    如何利用Linux下的工具來自動生成實用的<b class='flag-5'>狀態(tài)機</b>框架?