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

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

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

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

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

1、背景

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

會(huì)有鏈路狀態(tài)協(xié)議的OSPF產(chǎn)生,是因?yàn)榍懊婢嚯x矢量路由協(xié)議存在兩個(gè)非常嚴(yán)重的問(wèn)題:

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

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

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

2、LSDB

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

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

可能上圖小白看著會(huì)覺(jué)得有點(diǎn)抽象,很難受。行吧,那龍哥動(dòng)手搭個(gè)環(huán)境,聯(lián)系實(shí)際場(chǎng)景,可能就會(huì)更好理解了。

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

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

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

創(chuàng)建后隨便登錄一臺(tái)路由器就可以了(因?yàn)槊颗_(tái)路由器LSB都是一樣的),去查看1類LSA(1類LSA每臺(tái)路由器都會(huì)產(chǎn)生的)

然后我們?cè)赗1查看路由表中的OSPF路由:

我們可以看到只有2條OSPF路由,10.10.10.10沒(méi)有在里面,是因?yàn)樗皇亲顑?yōu)的,因?yàn)樗侵边B路由,直連路由(優(yōu)先級(jí)0)比OSPF(優(yōu)先級(jí)10)優(yōu)。

3、報(bào)文類型

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

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

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

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

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

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

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

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

LSU報(bào)文:完整的LSA信息。

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

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

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

你細(xì)品Hello報(bào)文,再去看影響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的掩碼描述接口的掩碼,如果掩碼不一致會(huì)認(rèn)為有兩臺(tái)DR,p2p沒(méi)有問(wèn)題)不在hello包(7)接口mtu(鄰接關(guān)系出問(wèn)題)(8)ospf進(jìn)程下靜默

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

    關(guān)注

    8

    文章

    7030

    瀏覽量

    89038
  • OSPF
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    14887
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Simulink中的狀態(tài)機(jī)建模方法 Simulink數(shù)據(jù)可視化與分析功能

    1. Simulink中的狀態(tài)機(jī)建模方法 1.1 理解狀態(tài)機(jī)的基本概念 在開(kāi)始建模之前,了解狀態(tài)機(jī)的基本概念是必要的。狀態(tài)機(jī)由以下幾個(gè)部分組成:
    的頭像 發(fā)表于 12-12 09:27 ?415次閱讀

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

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

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

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

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

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

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

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

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

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

    使用系統(tǒng)滴答定時(shí)中斷,基于按鍵的狀態(tài)機(jī)怎么只能1個(gè)1個(gè)+,不能連+?

    使用系統(tǒng)滴答定時(shí)中斷,基于按鍵的狀態(tài)機(jī)怎么只能1個(gè)1個(gè)+,不能連+ #define KEY1_USERGPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13
    發(fā)表于 05-16 06:27

    請(qǐng)問(wèn)STM32F051用了操作系統(tǒng)RTX后還需要寫(xiě)狀態(tài)機(jī)不?

    現(xiàn)在學(xué)會(huì)了rtx操作系統(tǒng)后,原來(lái)用狀態(tài)機(jī)的學(xué)的程序,可不可以不切割,直接單線程來(lái)執(zhí)行列?各位前前輩指點(diǎn)一下。多謝!
    發(fā)表于 05-08 06:11

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

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

    求助LabVIEW,狀態(tài)機(jī)里面反饋節(jié)點(diǎn)如何初始化問(wèn)題

    求助labview,狀態(tài)機(jī)里面反饋節(jié)點(diǎn)如何初始化,下次執(zhí)行這個(gè)狀態(tài)的時(shí)候初始化一次!謝謝謝謝!
    發(fā)表于 03-25 18:17

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

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

    請(qǐng)問(wèn)GPIF狀態(tài)機(jī)的內(nèi)部信號(hào)需要延遲才能斷言嗎?

    dma_wm_thn 這樣的過(guò)渡觸發(fā)器需要一些周期的延遲才能斷言嗎? 在我的實(shí)踐中,DMA_WM_THN 觸發(fā)器似乎有 1 個(gè)時(shí)鐘周期延遲: ? 圖像是我的狀態(tài)機(jī)的一部分,數(shù)據(jù)總線是 32 位
    發(fā)表于 02-23 07:43

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

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

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

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

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

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