中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
全網(wǎng)最詳細(xì)的OSPF原理總結(jié),盤它看這篇就夠了!

  網(wǎng)

  工

  圈

網(wǎng)絡(luò)工程師阿龍
圈內(nèi)最早的公益公眾號(hào),全國最大網(wǎng)工聚集地,關(guān)注留言板不定期公益活動(dòng)
  關(guān)注

來源 | https://racns.com/558.html,龍哥在此致謝!如侵,私信刪。

轉(zhuǎn)載僅出于傳播知識(shí)、學(xué)習(xí)交流之目的。

今天給大家分享一篇總結(jié)的非常不錯(cuò)的OSPF的文章,希望大家好好看看,值得收藏的!

  • OSPF簡(jiǎn)介

    • 定義

    • 優(yōu)點(diǎn)

    • RIP

    • OSPF

  • OSPF的特點(diǎn)

  • OSPF運(yùn)行機(jī)制

    • 交互Hello報(bào)文

    • 泛洪L(zhǎng)SA

    • 組建LSDB

    • SPF算法計(jì)算

    • 維護(hù)和更新路由表

  • OSPF報(bào)文類型

    • Hello報(bào)文

    • DD報(bào)文

    • LSR報(bào)文

    • LSU報(bào)文

    • LSAck報(bào)文

  • OSPF支持的網(wǎng)絡(luò)類型

    • MA類型

    • NBMA類型

    • P2MP類型

    • P2P類型

  • DR和BDR選舉

    • Router ID

    • 選舉的原因

    • 選舉的原則

    • 選舉過程

    • 選舉過程驗(yàn)證

  • OSPF狀態(tài)機(jī)

    • 接口狀態(tài)機(jī)

    • 鄰居狀態(tài)機(jī)

  • OSPF鄰接關(guān)系的建立

    • 鄰居關(guān)系

    • 鄰接關(guān)系

    • 鄰接關(guān)系建立過程

  • OSPF區(qū)域

    • 簡(jiǎn)介

    • 路由器類型

    • 路由類型

    • 區(qū)域類型

    • OSPF區(qū)域間環(huán)路及防環(huán)方法

    • OSPF缺省路由

  • OSPF LSA類型

    • 簡(jiǎn)介

    • Router-LSA

    • Network-LSA

    • Network-summary-LSA

    • ASBR-Summary-LSA

    • AS-external-LSA

    • NSSA LSA

    • Opaque LSA

(歡迎關(guān)注公眾號(hào)@網(wǎng)絡(luò)工程師阿龍)

1OSPF簡(jiǎn)介

定義

開放式最短路徑優(yōu)先OSPF(Open Shortest Path First)是IETF組織開發(fā)的一個(gè)基于鏈路狀態(tài)的內(nèi)部網(wǎng)關(guān)協(xié)議(Interior Gateway Protocol)。

  • OSPF把自治系統(tǒng)AS(Autonomous System)劃分成邏輯意義上的一個(gè)或多個(gè)區(qū)域;
  • OSPF通過鏈路狀態(tài)通告LSA(Link State Advertisement)的形式發(fā)布路由;
  • OSPF依靠在OSPF區(qū)域內(nèi)各設(shè)備間交互OSPF報(bào)文來達(dá)到路由信息的統(tǒng)一;
  • OSPF報(bào)文封裝在IP報(bào)文內(nèi),可以采用單播或組播的形式發(fā)送。

目前針對(duì)IPv4協(xié)議使用的是OSPF Version 2(RFC2328);針對(duì)IPv6協(xié)議使用OSPF Version 3(RFC2740)。如無特殊說明,本文中所指的OSPF均為OSPF Version 2。

優(yōu)點(diǎn)

在OSPF出現(xiàn)前,RIP是網(wǎng)絡(luò)上使用最廣泛的IGP協(xié)議。但隨著網(wǎng)絡(luò)的快速成長(zhǎng)和擴(kuò)展,RIP的某些限制可能會(huì)導(dǎo)致其在大型網(wǎng)絡(luò)中不再適用,OSPF則能夠解決RIP所面臨的諸多問題。

RIP

  • 基于距離矢量算法,以跳數(shù)作為度量方式,忽略帶寬的影響。
  • RIP的跳數(shù)限制為15個(gè),限制了RIP的網(wǎng)絡(luò)規(guī)模。
  • 按照路由通告進(jìn)行路由更新和選擇,路由器不了解整個(gè)網(wǎng)絡(luò)拓?fù)?,容易產(chǎn)生路由環(huán)路。
  • 收斂速度慢,路由更新會(huì)經(jīng)歷一段抑制和垃圾收集期,容易導(dǎo)致路由器之間的路由不一致。
  • 不能處理可變長(zhǎng)子網(wǎng)掩碼(VLSM)。

OSPF

  • 基于鏈路狀態(tài),以鏈路開銷作為度量方式,并把帶寬作為參考值,度量方式更科學(xué)。
  • 沒有跳數(shù)限制,適用的網(wǎng)絡(luò)規(guī)模更大。
  • 每臺(tái)路由器都能夠掌握全網(wǎng)拓?fù)?,通過最短路徑優(yōu)先算法SPF(Shortest Path First)計(jì)算路由,不會(huì)產(chǎn)生路由環(huán)路。
  • 收斂速度快,因?yàn)槁酚筛率羌皶r(shí)的,并且能夠快速傳遞到整個(gè)網(wǎng)絡(luò)。
  • 能夠處理VLSM,靈活進(jìn)行IP地址分配。

此外,OSPF還有以下優(yōu)點(diǎn):

  • OSPF可以采用組播形式收發(fā)報(bào)文,這樣可以減少對(duì)未運(yùn)行OSPF的路由器的影響。
  • OSPF支持無類型域間選路(CIDR)。
  • OSPF支持對(duì)等價(jià)路由進(jìn)行負(fù)載分擔(dān)。
  • OSPF支持報(bào)文驗(yàn)證。

2OSPF的特點(diǎn)

在OSPF網(wǎng)絡(luò)中,每臺(tái)路由器根據(jù)自己周圍的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成鏈路狀態(tài)通告LSA(Link State Advertisement),并通過更新報(bào)文將LSA發(fā)送給網(wǎng)絡(luò)中的其它路由器。

RIP交互的是路由。與RIP不同,OSPF交互的是鏈路狀態(tài)信息。也就是說,RIP中,路由器的選路依賴于鄰居路由器的路由信息,但不管鄰居路由器傳達(dá)的信息是否正確;而OSPF中,路由器的選路是一種“自主行為”,LSA只是一種選路的參考信息。

每臺(tái)路由器都通過鏈路狀態(tài)數(shù)據(jù)庫LSDB(Link State DataBase)掌握全網(wǎng)的拓?fù)浣Y(jié)構(gòu)。如圖1所示,每臺(tái)路由器都會(huì)收集其它路由器發(fā)來的LSA,所有的LSA放在一起便組成了鏈路狀態(tài)數(shù)據(jù)庫LSDB。LSA是對(duì)路由器周圍網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的描述,LSDB則是對(duì)整個(gè)自治系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的描述。路由器將LSDB轉(zhuǎn)換成一張帶權(quán)的有向圖,這張圖便是對(duì)整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的真實(shí)反映。在網(wǎng)絡(luò)拓?fù)浞€(wěn)定的情況下,各個(gè)路由器得到的有向圖是完全相同的。

圖1 通過LSDB掌握全網(wǎng)的拓?fù)浣Y(jié)構(gòu)

路由器根據(jù)最短路徑優(yōu)先(Shortest Path First)算法計(jì)算到達(dá)目的網(wǎng)絡(luò)的路徑,而不是根據(jù)路由通告來獲取路由信息。如圖2所示,每臺(tái)路由器根據(jù)有向圖,使用SPF算法計(jì)算出一棵以自己為根的最短路徑樹,這棵樹給出了到自治系統(tǒng)中各節(jié)點(diǎn)的路由。相對(duì)于RIP,這種機(jī)制極大地提升了路由器的自主選路能力,使得路由器不再依靠路由通告進(jìn)行選路。

圖2 根據(jù)SPF計(jì)算到達(dá)目的網(wǎng)絡(luò)的路徑

總之,LSDB保證路由器能夠時(shí)刻掌握全網(wǎng)的拓?fù)錂C(jī)構(gòu),SPF算法保證路由器能夠迅速計(jì)算出到達(dá)目的網(wǎng)絡(luò)的最短路徑。

3OSPF運(yùn)行機(jī)制

OSPF的運(yùn)行機(jī)制包括以下5個(gè)步驟:

  • 交互Hello報(bào)文
  • 泛洪L(zhǎng)SA
  • 組建LSDB
  • SPF算法計(jì)算
  • 維護(hù)和更新路由表

交互Hello報(bào)文

通過交互Hello報(bào)文形成鄰居關(guān)系

如圖3所示,路由器運(yùn)行OSPF協(xié)議后,會(huì)從所有啟動(dòng)OSPF協(xié)議的接口上發(fā)送Hello報(bào)文。如果兩臺(tái)路由器共享一條公共數(shù)據(jù)鏈路,并且能夠成功協(xié)商各自Hello報(bào)文中所指定的某些參數(shù),就能形成鄰居關(guān)系。

圖3 通過交互Hello報(bào)文形成鄰居關(guān)系

泛洪L(zhǎng)SA

通過泛洪L(zhǎng)SA通告鏈路狀態(tài)信息

形成鄰居關(guān)系的路由器之間進(jìn)一步交互LSA形成鄰接關(guān)系,如圖4所示。每臺(tái)路由器根據(jù)自己周圍的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成LSA,LSA描述了路由器所有的鏈路、接口、鄰居及鏈路狀態(tài)等信息,路由器通過交互這些鏈路信息來了解整個(gè)網(wǎng)絡(luò)的拓?fù)湫畔?。由于鏈路的多樣性,OSPF協(xié)議定義了多種LSA類型。詳見OSPF LSA類型。

                        
圖4 通過泛洪L(zhǎng)SA通告鏈路狀態(tài)信息

組建LSDB

通過組建LSDB形成帶權(quán)有向圖

通過LSA的泛洪,路由器會(huì)把收到的LSA匯總記錄在LSDB中。最終,所有路由器都會(huì)形成同樣的LSDB,如圖5所示。LSA是對(duì)路由器周圍網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的描述,而LSDB則是對(duì)整個(gè)自治系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的描述,LSDB是LSA的匯總。(歡迎關(guān)注公眾號(hào)@網(wǎng)絡(luò)工程師阿龍

圖5 通過組建LSDB形成帶權(quán)有向圖

SPF算法計(jì)算

通過SPF算法計(jì)算并形成路由

如圖6所示,當(dāng)LSDB同步完成之后,每一臺(tái)路由器都將以其自身為根,使用SPF算法來計(jì)算一個(gè)無環(huán)路的拓?fù)鋱D來描述它所知道的到達(dá)每一個(gè)目的地的最短路徑(最小的路徑代價(jià))。這個(gè)拓?fù)鋱D就是最短路徑樹,有了這棵樹,路由器就能知道到達(dá)自治系統(tǒng)中各個(gè)節(jié)點(diǎn)的最優(yōu)路徑。

圖6 通過SPF算法計(jì)算并形成路由

維護(hù)和更新路由表

維護(hù)和更新路由表

根據(jù)SPF算法得出最短路徑樹后,每臺(tái)路由器將計(jì)算得出的最短路徑加載到OSPF路由表形成指導(dǎo)數(shù)據(jù)轉(zhuǎn)發(fā)的路由表項(xiàng),并且實(shí)時(shí)更新,如圖7所示。同時(shí),鄰居之間交互Hello報(bào)文進(jìn)行保活,維持鄰居關(guān)系或鄰接關(guān)系,并且周期性地重傳LSA。

圖7 維護(hù)和更新路由表

4OSPF報(bào)文類型

OSPF的報(bào)文類型可以分為以下五種:

  • Hello報(bào)文
  • DD報(bào)文
  • LSR報(bào)文
  • LSU報(bào)文
  • LSAck報(bào)文

Hello報(bào)文

  • 鄰居發(fā)現(xiàn):使能了OSPF功能的接口會(huì)周期性地發(fā)送Hello報(bào)文,與網(wǎng)絡(luò)中其他收到Hello報(bào)文的路由器協(xié)商報(bào)文中的指定參數(shù),決定是否建立鄰居關(guān)系。
  • 建立雙向通信:如果路由器發(fā)現(xiàn)收到的Hello報(bào)文的鄰居列表中有自己Router ID,則認(rèn)為已經(jīng)和對(duì)端建立了雙向通信,鄰居關(guān)系建立。
  • 指定DR和BDR:Hello報(bào)文包含DR優(yōu)先級(jí)和Router ID等信息,每臺(tái)路由器將自己選出的DR和BDR寫入Hello報(bào)文的DR和BDR字段中,然后進(jìn)行DR和BDR的選舉,詳細(xì)的選舉原則和過程請(qǐng)參見DR和BDR選舉。
  • ?;?/strong>:在建立鄰居關(guān)系后,使能OSPF功能的接口仍周期性地發(fā)送Hello報(bào)文維護(hù)鄰居關(guān)系,如果在一定的時(shí)間間隔內(nèi)沒有收到鄰居發(fā)來的Hello報(bào)文,則中斷鄰居關(guān)系。(歡迎關(guān)注公眾號(hào)@網(wǎng)絡(luò)工程師阿龍

DD報(bào)文

兩臺(tái)路由器在鄰接關(guān)系初始化時(shí),DD報(bào)文(Database Description packet)用來協(xié)商主從關(guān)系,此時(shí)報(bào)文中不包含LSA的Header。在兩臺(tái)路由器交換DD報(bào)文的過程中,一臺(tái)為Master,另一臺(tái)為Slave。由Master規(guī)定起始序列號(hào),每發(fā)送一個(gè)DD報(bào)文序列號(hào)加1,Slave方使用Master的序列號(hào)作為確認(rèn)。

鄰接關(guān)系建立之后,路由器使用DD報(bào)文描述本端路由器的LSDB,進(jìn)行數(shù)據(jù)庫同步。DD報(bào)文里包括LSDB中每一條LSA的Header(LSA的Header可以唯一標(biāo)識(shí)一條LSA),即所有LSA的摘要信息。LSA Header只占一條LSA的整個(gè)數(shù)據(jù)量的一小部分,這樣可以減少路由器之間的協(xié)議報(bào)文流量。對(duì)端路由器根據(jù)LSA Header就可以判斷出是否已有這條LSA。

LSR報(bào)文

兩臺(tái)路由器互相交換過DD報(bào)文之后,需要發(fā)送LSR報(bào)文(Link State Request packet)向?qū)Ψ秸?qǐng)求更新LSA。LSR報(bào)文里包括所需要的LSA的摘要信息。

LSU報(bào)文

LSU報(bào)文(Link State Update packet)用來向?qū)Χ寺酚善靼l(fā)送其所需要的LSA或者泛洪本端更新的LSA,其報(bào)文內(nèi)容是多條完整的LSA的集合。為了實(shí)現(xiàn)泛洪的可靠性傳輸,需要LSAck報(bào)文對(duì)其進(jìn)行確認(rèn),對(duì)沒有收到確認(rèn)報(bào)文的LSA進(jìn)行重傳,重傳的LSA是直接發(fā)送到鄰居的。

LSAck報(bào)文

LSAck報(bào)文(Link State Acknowledgment packet)用來對(duì)接收到的LSU報(bào)文進(jìn)行確認(rèn),內(nèi)容是需要確認(rèn)的LSA的Header。一個(gè)LSAck報(bào)文可對(duì)多個(gè)LSA進(jìn)行確認(rèn)。

5OSPF支持的網(wǎng)絡(luò)類型

OSPF根據(jù)鏈路層協(xié)議類型,將網(wǎng)絡(luò)分為如下四種類型:

  • MA類型
  • NBMA類型
  • P2MP類型
  • P2P類型

MA類型

廣播類型(Broadcast)

當(dāng)鏈路層協(xié)議是Ethernet或FDDI(Fiber Distributed Digital Interface)時(shí),缺省情況下,OSPF認(rèn)為網(wǎng)絡(luò)類型是Broadcast。

在該類型的網(wǎng)絡(luò)中:

  • 通常以組播形式發(fā)送Hello報(bào)文、LSU報(bào)文和LSAck報(bào)文。其中,224.0.0.5的組播地址為OSPF設(shè)備的預(yù)留IP組播地址;224.0.0.6的組播地址為OSPF DR/BDR的預(yù)留IP組播地址。
  • 以單播形式發(fā)送DD報(bào)文和LSR報(bào)文。

NBMA類型

NBMA類型(Non-Broadcast Multi-Access)

當(dāng)鏈路層協(xié)議是幀中繼或X.25時(shí),缺省情況下,OSPF認(rèn)為網(wǎng)絡(luò)類型是NBMA。

在該類型的網(wǎng)絡(luò)中,以單播形式發(fā)送協(xié)議報(bào)文(Hello報(bào)文、DD報(bào)文、LSR報(bào)文、LSU報(bào)文、LSAck報(bào)文)。

P2MP類型

點(diǎn)到多點(diǎn)P2MP類型(Point-to-Multipoint)

沒有一種鏈路層協(xié)議會(huì)被缺省的認(rèn)為是P2MP類型。點(diǎn)到多點(diǎn)必須是由其他的網(wǎng)絡(luò)類型強(qiáng)制更改的。常用做法是將非全連通的NBMA改為點(diǎn)到多點(diǎn)的網(wǎng)絡(luò)。

在該類型的網(wǎng)絡(luò)中:

  • 以組播形式(224.0.0.5)發(fā)送Hello報(bào)文。
  • 以單播形式發(fā)送其他協(xié)議報(bào)文(DD報(bào)文、LSR報(bào)文、LSU報(bào)文、LSAck報(bào)文)。(歡迎關(guān)注公眾號(hào)@網(wǎng)絡(luò)工程師阿龍

P2P類型

點(diǎn)到點(diǎn)P2P類型(Point-to-Point)

當(dāng)鏈路層協(xié)議是PPP、HDLC或LAPB時(shí),缺省情況下,OSPF認(rèn)為網(wǎng)絡(luò)類型是P2P。

在該類型的網(wǎng)絡(luò)中,以組播形式(224.0.0.5)發(fā)送協(xié)議報(bào)文(Hello報(bào)文、DD報(bào)文、LSR報(bào)文、LSU報(bào)文、LSAck報(bào)文)。

6DR和BDR選舉

Router ID

在DR和BDR選舉的過程中,如果兩臺(tái)路由器的DR優(yōu)先級(jí)相等,需要進(jìn)一步比較兩臺(tái)路由器的Router ID,Router ID大的路由器將被選為DR或BDR。

Router ID是用于在自治系統(tǒng)中唯一標(biāo)識(shí)一臺(tái)運(yùn)行OSPF的路由器的32位整數(shù)。每個(gè)運(yùn)行OSPF的路由器都有一個(gè)Router ID。Router ID的格式和IP地址的格式是一樣的。

OSPF的Router ID的選取有兩種方式:手動(dòng)配置和設(shè)備自動(dòng)選取。在實(shí)際網(wǎng)絡(luò)部署中,考慮到協(xié)議的穩(wěn)定,推薦手工配置Loopback接口的IP地址做為Router ID。

如果沒有手動(dòng)配置OSPF的Router ID,設(shè)備會(huì)選取全局Router ID作為OSPF的RouterID,如果二者都沒有配置,設(shè)備會(huì)按照一定的規(guī)則自動(dòng)選取。具體的選取規(guī)則,請(qǐng)參見路由的Router ID。

以下3種情況會(huì)進(jìn)行Router ID的重新選?。?/p>

  • 通過本命令重新配置OSPF的Router ID
  • 重新配置全局Router ID,并且重新啟動(dòng)OSPF進(jìn)程
  • 原來被選舉為全局Router ID的IP地址被刪除并且重新啟動(dòng)OSPF進(jìn)程

選舉的原因

在廣播網(wǎng)絡(luò)和NBMA網(wǎng)絡(luò)中,任意兩臺(tái)路由器之間都要傳遞路由信息。如圖8所示,網(wǎng)絡(luò)中有n臺(tái)路由器,則需要建立n*(n-1)/2個(gè)鄰接關(guān)系。這使得任何一臺(tái)路由器的路由變化都會(huì)導(dǎo)致多次傳遞,浪費(fèi)了帶寬資源。

為解決這一問題,OSPF定義了DR。通過選舉產(chǎn)生DR后,所有其他設(shè)備都只將信息發(fā)送給DR,由DR將網(wǎng)絡(luò)鏈路狀態(tài)LSA廣播出去。

為了防止DR發(fā)生故障,重新選舉DR時(shí)會(huì)造成業(yè)務(wù)中斷,除了DR之外,還會(huì)選舉一個(gè)備份指定路由器BDR。這樣除DR和BDR之外的路由器(稱為DR Other)之間將不再建立鄰接關(guān)系,也不再交換任何路由信息,這樣就減少了廣播網(wǎng)和NBMA網(wǎng)絡(luò)上各路由器之間鄰接關(guān)系的數(shù)量。

圖8 DR和BDR選舉

選舉的原則

在廣播網(wǎng)絡(luò)和NBMA網(wǎng)絡(luò)中,為了穩(wěn)定地進(jìn)行DR和BDR選舉,OSPF規(guī)定了一系列的選舉規(guī)則:選舉制、終身制、繼承制。

選舉制

選舉制是指DR和BDR不是人為指定的,而是由本網(wǎng)段中所有的路由器共同選舉出來的。如圖9所示,路由器接口的DR優(yōu)先級(jí)決定了該接口在選舉DR、BDR時(shí)所具有的資格,本網(wǎng)段內(nèi)DR優(yōu)先級(jí)大于0的路由器都可作為“候選人”。選舉中使用的“選票”就是Hello報(bào)文,每臺(tái)路由器將自己選出的DR寫入Hello報(bào)文中,發(fā)給網(wǎng)段上的其他路由器。當(dāng)處于同一網(wǎng)段的兩臺(tái)路由器同時(shí)宣布自己是DR時(shí),DR優(yōu)先級(jí)高者勝出。如果優(yōu)先級(jí)相等,則Router ID大者勝出。如果一臺(tái)路由器的優(yōu)先級(jí)為0,則它不會(huì)被選舉為DR或BDR。

                     
圖9 DR和BDR選舉的原則—選舉制
終身制

終身制也叫非搶占制。每一臺(tái)新加入的路由器并不急于參加選舉,而是先考察一下本網(wǎng)段中是否已存在DR。如圖10所示,如果目前網(wǎng)段中已經(jīng)存在DR,即使本路由器的DR優(yōu)先級(jí)比現(xiàn)有的DR還高,也不會(huì)再聲稱自己是DR,而是承認(rèn)現(xiàn)有的DR。因?yàn)榫W(wǎng)段中的每臺(tái)路由器都只和DR、BDR建立鄰接關(guān)系,如果DR頻繁更換,則會(huì)引起本網(wǎng)段內(nèi)的所有路由器重新與新的DR、BDR建立鄰接關(guān)系。這樣會(huì)導(dǎo)致短時(shí)間內(nèi)網(wǎng)段中有大量的OSPF協(xié)議報(bào)文在傳輸,降低網(wǎng)絡(luò)的可用帶寬。終身制有利于增加網(wǎng)絡(luò)的穩(wěn)定性、提高網(wǎng)絡(luò)的可用帶寬。實(shí)際上,在一個(gè)廣播網(wǎng)絡(luò)或NBMA網(wǎng)絡(luò)上,最先啟動(dòng)的兩臺(tái)具有DR選舉資格的路由器將成為DR和BDR。

                   
圖10 DR和BDR選舉的原則—終身制
繼承制

如圖11所示,繼承制是指如果DR發(fā)生故障了,那么下一個(gè)當(dāng)選為DR的一定是BDR,其他的路由器只能去競(jìng)選BDR的位置。這個(gè)原則可以保證DR的穩(wěn)定,避免頻繁地進(jìn)行選舉,并且DR是有備份的(BDR),一旦DR失效,可以立刻由BDR來承擔(dān)DR的角色。由于DR和BDR的數(shù)據(jù)庫是完全同步的,這樣當(dāng)DR故障后,BDR立即成為DR,履行DR的職責(zé),而且鄰接關(guān)系已經(jīng)建立,所以從角色切換到承載業(yè)務(wù)的時(shí)間會(huì)很短。同時(shí),在BDR成為新的DR之后,還會(huì)選舉出一個(gè)新的BDR,雖然這個(gè)過程所需的時(shí)間比較長(zhǎng),但已經(jīng)不會(huì)影響路由的計(jì)算了。

                         
圖11 DR和BDR選舉的原則—繼承制

選舉過程

廣播鏈路或者NBMA鏈路上DR和BDR的選舉過程如下:
  1. 接口UP后,發(fā)送Hello報(bào)文,同時(shí)進(jìn)入到Waiting狀態(tài)。在Waiting狀態(tài)下會(huì)有一個(gè)WaitingTimer,該計(jì)時(shí)器的長(zhǎng)度與DeadTimer是一樣的。默認(rèn)值為40秒,用戶不可自行調(diào)整。OSPF接口狀態(tài)的詳細(xì)描述,請(qǐng)參見OSPF接口狀態(tài)機(jī)。
  2. 在WaitingTimer觸發(fā)前,發(fā)送的Hello報(bào)文是沒有DR和BDR字段的。在Waiting階段,如果收到Hello報(bào)文中有DR和BDR,那么直接承認(rèn)網(wǎng)絡(luò)中的DR和BDR,而不會(huì)觸發(fā)選舉。直接離開Waiting狀態(tài),開始鄰居同步。
  3. 假設(shè)網(wǎng)絡(luò)中已經(jīng)存在一個(gè)DR和一個(gè)BDR,這時(shí)新加入網(wǎng)絡(luò)中的路由器,不論它的Router ID或者DR優(yōu)先級(jí)有多大,都會(huì)承認(rèn)現(xiàn)網(wǎng)中已有的DR和BDR。(歡迎關(guān)注公眾號(hào)@網(wǎng)絡(luò)工程師阿龍
  4. 當(dāng)DR因?yàn)楣收螪own掉之后,BDR會(huì)繼承DR的位置,剩下的優(yōu)先級(jí)大于0的路由器會(huì)競(jìng)爭(zhēng)成為新的BDR。
  5. 只有當(dāng)不同Router ID,或者配置不同DR優(yōu)先級(jí)的路由器同時(shí)起來,在同一時(shí)刻進(jìn)行DR選舉才會(huì)應(yīng)用DR選舉規(guī)則產(chǎn)生DR。該規(guī)則是:優(yōu)先選擇DR優(yōu)先級(jí)最高的作為DR,次高的作為BDR。DR優(yōu)先級(jí)為0的路由器只能成為DR Other;如果優(yōu)先級(jí)相同,則優(yōu)先選擇Router ID較大的路由器成為DR,次大的成為BDR,其余路由器成為DR Other。

選舉過程驗(yàn)證

五臺(tái)路由器組成一個(gè)廣播網(wǎng)絡(luò),R5作為純二層設(shè)備,R1~R4作為路由設(shè)備。R1~R4都規(guī)劃在OSPF的Area0區(qū)域內(nèi),各路由器的IP地址及Router ID如圖12所示。

圖12 DR和BDR選舉組網(wǎng)圖
網(wǎng)絡(luò)中可以正常選舉出DR和BDR時(shí)

假設(shè)R1~R4各接口的配置已經(jīng)完成,這里僅給出OSPF相關(guān)的配置。

R1的配置

#
ospf 1 Router ID 10.1.1.1 
  area 0.0.0.0 
  network 192.168.1.0 0.0.0.255 
#

R2的配置

#
ospf 1 Router ID 10.2.2.2
  area 0.0.0.0 
  network 192.168.1.0 0.0.0.255 
#

R3的配置

#
ospf 1 Router ID 10.3.3.3 
  area 0.0.0.0 
  network 192.168.1.0 0.0.0.255 
#

R4的配置

#
ospf 1 Router ID 10.4.4.4
  area 0.0.0.0 
  network 192.168.1.0 0.0.0.255 
#

配置完成后,待網(wǎng)絡(luò)穩(wěn)定后查看當(dāng)前網(wǎng)絡(luò)中DR和BDR的選舉情況。

在R1上查看OSPF的鄰居信息。

<R1> display ospf peer

         OSPF Process 1 with Router ID 10.1.1.1
                 Neighbors

 Area 0.0.0.0 interface 192.168.1.1(GigabitEthernet1/0/1)'s neighbors
 Router ID: 10.2.2.2         Address: 192.168.1.2
   State: Full  Mode:Nbr is Master  Priority: 1
   DR: 192.168.1.1  BDR: 192.168.1.2   MTU: 0
   Dead timer due in 38  sec
   Retrans timer interval: 5
   Neighbor is up for 00:22:16
   Authentication Sequence: [ 0 ]

 Router ID: 10.3.3.3         Address: 192.168.1.3
   State: Full  Mode:Nbr is Master   Priority: 1
   DR: 192.168.1.1  BDR: 192.168.1.2   MTU: 0
   Dead timer due in 35  sec
   Retrans timer interval: 5
   Neighbor is up for 00:21:30
   Authentication Sequence: [ 0 ]

 Router ID: 10.4.4.4         Address: 192.168.1.4
   State: Full  Mode:Nbr is Master   Priority: 1
   DR: 192.168.1.1  BDR: 192.168.1.2   MTU: 0
   Dead timer due in 33  sec
   Retrans timer interval: 5
   Neighbor is up for 00:20:24
   Authentication Sequence: [ 0 ]

可以看出,該網(wǎng)絡(luò)已經(jīng)完成了DR和BDR的選舉,R1是DR,R2是BDR,R3和R4是DR Other。這里R1是DR,R2是BDR跟系統(tǒng)的啟動(dòng)順序是直接相關(guān)的。本例中按照R1、R2、R3、R4的順序依次啟動(dòng)設(shè)備,所以R1和R2首先完成了初始化,自然成為了DR和BDR。

在R1、R2、R3和R4上查看OSPF鄰居的概要信息。

<R1> display ospf 1 peer brief

         OSPF Process 1 with Router ID 10.1.1.1
                   Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id         Interface                  Neighbor id      State
 0.0.0.0         GigabitEthernet1/0/1       10.2.2.2         Full
 0.0.0.0         GigabitEthernet1/0/1       10.3.3.3         Full
 0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         Full
 ----------------------------------------------------------------------------
 Total Peer(s):     3
<R2> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.2.2.2
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1       10.1.1.1         Full
0.0.0.0         GigabitEthernet1/0/1       10.3.3.3         Full
0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         Full
----------------------------------------------------------------------------
Total Peer(s):     3
<R3> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.3.3.3
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1       10.1.1.1         Full
0.0.0.0         GigabitEthernet1/0/1       10.2.2.2         Full
0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         2-Way
----------------------------------------------------------------------------
Total Peer(s):     3
<R4> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.4.4.4
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1        10.1.1.1         Full
0.0.0.0         GigabitEthernet1/0/1        10.2.2.2         Full
0.0.0.0         GigabitEthernet1/0/1        10.3.3.3         2-Way
----------------------------------------------------------------------------
Total Peer(s):     3

可以看出,R1、R2和其他三臺(tái)路由器的鄰居關(guān)系都是Full,而R3和R4之間的鄰居關(guān)系是2-Way狀態(tài)。這表示DR、BDR與鄰居間建立的是鄰接關(guān)系,而DR Other之間建立的只是鄰居關(guān)系。OSPF鄰居狀態(tài)的詳細(xì)描述,請(qǐng)參見OSPF鄰居狀態(tài)機(jī)。

網(wǎng)絡(luò)中無法選舉出BDR時(shí)

如果在R2、R3、R4的接口GE1/0/1上執(zhí)行ospf dr-priority命令將接口的DR優(yōu)先級(jí)配置為0,那么這個(gè)時(shí)候這三臺(tái)路由器將失去DR和BDR的選舉資格,只能作為DR Other,網(wǎng)絡(luò)中僅存在一臺(tái)具備DR和BDR選舉資格的路由器,就是R1。

在R1上查看OSPF鄰居信息。

可以看到,此時(shí)DR是R1,BDR顯示為None,即網(wǎng)絡(luò)中不存在BDR。

<R1> display ospf peer

         OSPF Process 1 with Router ID 10.1.1.1
                 Neighbors

 Area 0.0.0.0 interface 192.168.1.1(GigabitEthernet1/0/1)'s neighbors
 Router ID: 10.2.2.2         Address: 192.168.1.2
   State: Full  Mode:Nbr is Master  Priority: 0
   DR: 192.168.1.1  BDR: None   MTU: 0
   Dead timer due in 38  sec
   Retrans timer interval: 5
   Neighbor is up for 00:04:31
   Authentication Sequence: [ 0 ]

 Router ID: 10.3.3.3         Address: 192.168.1.3
   State: Full  Mode:Nbr is Master   Priority: 0
   DR: 192.168.1.1  BDR: None   MTU: 0
   Dead timer due in 35  sec
   Retrans timer interval: 5
   Neighbor is up for 00:03:45
   Authentication Sequence: [ 0 ]

 Router ID: 10.4.4.4         Address: 192.168.1.4
   State: Full  Mode:Nbr is Master   Priority: 0
   DR: 192.168.1.1  BDR: None   MTU: 0
   Dead timer due in 33  sec
   Retrans timer interval: 5
   Neighbor is up for 00:03:36
   Authentication Sequence: [ 0 ]

在R1、R2、R3和R4上查看OSPF鄰居的概要信息。

可以看出,R2、R3、R4分別和R1建立了鄰接關(guān)系(狀態(tài)為FULL),而R2、R3、R4之間的鄰居狀態(tài)只停留在2-Way的狀態(tài)。

<R1> display ospf 1 peer brief

         OSPF Process 1 with Router ID 10.1.1.1
                   Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id         Interface                  Neighbor id      State
 0.0.0.0         GigabitEthernet1/0/1       10.2.2.2         Full
 0.0.0.0         GigabitEthernet1/0/1       10.3.3.3         Full
 0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         Full
 ----------------------------------------------------------------------------
 Total Peer(s):     3
<R2> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.2.2.2
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1       10.1.1.1         Full
0.0.0.0         GigabitEthernet1/0/1       10.3.3.3         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         2-Way
----------------------------------------------------------------------------
Total Peer(s):     3
<R3> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.3.3.3
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1       10.1.1.1         Full
0.0.0.0         GigabitEthernet1/0/1       10.2.2.2         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         2-Way
----------------------------------------------------------------------------
Total Peer(s):     3
<R4> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.4.4.4
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1       10.1.1.1         Full
0.0.0.0         GigabitEthernet1/0/1       10.2.2.2         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.3.3.3         2-Way
----------------------------------------------------------------------------
Total Peer(s):     3

由此可知,如果在一個(gè)廣播網(wǎng)絡(luò)或NBMA網(wǎng)絡(luò)上只有一臺(tái)路由器具有選舉資格,那么這臺(tái)路由器將成為DR,并且在這個(gè)網(wǎng)絡(luò)上沒有BDR,其他所有的路由器都將只和DR建立鄰接關(guān)系。

網(wǎng)絡(luò)中無法選舉出DR和BDR時(shí)

在以上配置的基礎(chǔ)上,如果在R1的接口GE1/0/1上執(zhí)行ospf dr-priority命令將接口的DR優(yōu)先級(jí)配置為0,則R1也失去DR、BDR的選舉資格。此時(shí)該網(wǎng)絡(luò)中將沒有任何路由器具備DR和BDR的選舉資格。

在R1上查看OSPF鄰居信息。

<R1> display ospf peer

         OSPF Process 1 with Router ID 10.1.1.1
                 Neighbors

 Area 0.0.0.0 interface 192.168.1.1(GigabitEthernet1/0/1)'s neighbors
 Router ID: 10.2.2.2         Address: 192.168.1.2
   State: Full  Mode:Nbr is Master  Priority: 0
   DR: None  BDR: None   MTU: 0
   Dead timer due in 38  sec
   Retrans timer interval: 5
   Neighbor is up for 00:00:00
   Authentication Sequence: [ 0 ]

 Router ID: 10.3.3.3         Address: 192.168.1.3
   State: Full  Mode:Nbr is Master   Priority: 0
   DR: None  BDR: None   MTU: 0
   Dead timer due in 35  sec
   Retrans timer interval: 5
   Neighbor is up for 00:00:00
   Authentication Sequence: [ 0 ]

 Router ID: 10.4.4.4         Address: 192.168.1.4
   State: Full  Mode:Nbr is Master   Priority: 0
   DR: None  BDR: None   MTU: 0
   Dead timer due in 33  sec
   Retrans timer interval: 5
   Neighbor is up for 00:00:00
   Authentication Sequence: [ 0 ]

在R1、R2、R3和R4上查看OSPF鄰居的概要信息。

可以看出,此時(shí)所有的鄰居狀態(tài)都只停留在2-Way的狀態(tài),網(wǎng)絡(luò)不能建立鄰接關(guān)系,各個(gè)路由器之間不能完成路由信息的交互。

<R1> display ospf 1 peer brief

         OSPF Process 1 with Router ID 10.1.1.1
                   Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id         Interface                  Neighbor id      State
 0.0.0.0         GigabitEthernet1/0/1       10.2.2.2         2-Way
 0.0.0.0         GigabitEthernet1/0/1       10.3.3.3         2-Way
 0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         2-Way
 ----------------------------------------------------------------------------
 Total Peer(s):     3
<R2> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.2.2.2
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1       10.1.1.1         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.3.3.3         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         2-Way
----------------------------------------------------------------------------
Total Peer(s):     3
<R3> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.3.3.3
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1       10.1.1.1         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.2.2.2         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.4.4.4         2-Way
----------------------------------------------------------------------------
Total Peer(s):     3
<R4> display ospf 1 peer brief

        OSPF Process 1 with Router ID 10.4.4.4
                  Peer Statistic Information
----------------------------------------------------------------------------
Area Id         Interface                  Neighbor id      State
0.0.0.0         GigabitEthernet1/0/1       10.1.1.1         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.2.2.2         2-Way
0.0.0.0         GigabitEthernet1/0/1       10.3.3.3         2-Way
----------------------------------------------------------------------------
Total Peer(s):     3

由此可知,如果在一個(gè)廣播網(wǎng)絡(luò)或NBMA網(wǎng)絡(luò)上不存在具備DR和BDR選舉資格的路由器,那么這個(gè)網(wǎng)絡(luò)上將沒有DR或者BDR,而且也不會(huì)建立任何鄰接關(guān)系。這種情況下,網(wǎng)絡(luò)上所有路由器的鄰居狀態(tài)都將停留在2-Way狀態(tài)。

7OSPF狀態(tài)機(jī)

接口狀態(tài)機(jī)

OSPF設(shè)備從接口獲取鏈路信息后,與相鄰設(shè)備建立鄰接關(guān)系,交互這些信息。在建立鄰接關(guān)系之前,鄰居設(shè)備間需要明確角色分工才能正常建立連接。OSPF接口信息的State字段(可通過display ospf interface命令查看)表明了OSPF設(shè)備在對(duì)應(yīng)鏈路中的作用。

OSPF接口共有以下七種狀態(tài):
  • Down:接口的初始狀態(tài)。表明此時(shí)接口不可用,不能用于收發(fā)流量。
  • Loopback:設(shè)備到網(wǎng)絡(luò)的接口處于環(huán)回狀態(tài)。環(huán)回接口不能用于正常的數(shù)據(jù)傳輸,但可以通過Router-LSA進(jìn)行通告。因此,進(jìn)行連通性測(cè)試時(shí)能夠發(fā)現(xiàn)到達(dá)這個(gè)接口的路徑。
  • Waiting:設(shè)備正在判定網(wǎng)絡(luò)上的DR和BDR。在設(shè)備參與DR和BDR選舉前,接口上會(huì)啟動(dòng)Waiting定時(shí)器。在這個(gè)定時(shí)器超時(shí)前,設(shè)備發(fā)送的Hello報(bào)文不包含DR和BDR信息,設(shè)備不能被選舉為DR或BDR。這樣可以避免不必要地改變鏈路中已存在的DR和BDR。僅NMBA網(wǎng)絡(luò)、廣播網(wǎng)絡(luò)有此狀態(tài)。
  • P-2-P:接口連接到物理點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)或者是虛擬鏈路,這個(gè)時(shí)候設(shè)備會(huì)與鏈路連接的另一端設(shè)備建立鄰接關(guān)系。僅P2P、P2MP網(wǎng)絡(luò)有此狀態(tài)。
  • DROther:設(shè)備沒有被選為DR或BDR,但連接到廣播網(wǎng)絡(luò)或NBMA網(wǎng)絡(luò)上的其他設(shè)備被選舉為DR。它會(huì)與DR和BDR建立鄰接關(guān)系。
  • BDR:設(shè)備是相連的網(wǎng)絡(luò)中的BDR,并將在當(dāng)前的DR失效時(shí)成為DR。該設(shè)備與接入該網(wǎng)絡(luò)的所有其他設(shè)備建立鄰接關(guān)系。
  • DR:設(shè)備是相連的網(wǎng)絡(luò)中的DR。該設(shè)備與接入該網(wǎng)絡(luò)的所有其他設(shè)備建立鄰接關(guān)系。

OSPF接口根據(jù)不同的情況(即輸入事件)在各狀態(tài)中進(jìn)行靈活轉(zhuǎn)換,這樣就形成了一個(gè)高效運(yùn)作的接口狀態(tài)機(jī),如圖13所示。

圖13 OSPF接口狀態(tài)機(jī)

下表列出了不同狀態(tài)切換時(shí)的輸入事件InputEvent(圖13中簡(jiǎn)稱IE)。

輸入事件描述
IE1InterfaceUP:底層協(xié)議表明接口是可操作的。
IE2WaitTimer:等待定時(shí)器超時(shí),表明DR和BDR選舉等待時(shí)間結(jié)束。
IE3BackupSeen:設(shè)備已檢測(cè)過網(wǎng)絡(luò)中是否存在BDR。
發(fā)生這個(gè)事件主要有下面兩種方式:
· 接口收到鄰居設(shè)備的Hello報(bào)文,宣稱自己是BDR。
· 接口收到鄰居設(shè)備的Hello的報(bào)文,宣稱自己是DR,而沒有指明有BDR。
· 這都說明鄰居間已進(jìn)行了相互通信,可以結(jié)束Waiting狀態(tài)了。
IE4接口所在的設(shè)備在網(wǎng)絡(luò)中被選舉為DR。
IE5接口所在的設(shè)備在網(wǎng)絡(luò)中被選舉為BDR。
IE6接口所在的設(shè)備在網(wǎng)絡(luò)中沒有被選舉為DR或BDR。
IE7NeighborChange:與該接口相關(guān)的鄰居關(guān)系變化的事件發(fā)生,這表明DR和BDR需要重新選舉。
下面的這些鄰居關(guān)系變化可能會(huì)導(dǎo)致DR和BDR重新選舉:
· 接口所在的設(shè)備和一個(gè)鄰居設(shè)備建立了雙向通信關(guān)系。
· 接口所在的設(shè)備和一個(gè)鄰居設(shè)備之間丟失了雙向通信關(guān)系。
· 通過鄰居設(shè)備發(fā)送的Hello報(bào)文檢測(cè)到鄰居設(shè)備重新宣稱自己是DR或BDR。
· 通過鄰居設(shè)備發(fā)送的Hello報(bào)文再一次檢測(cè)到鄰居設(shè)備宣稱自己不再是DR或BDR。
· 通過鄰居設(shè)備發(fā)送的Hello報(bào)文再一次檢測(cè)到相鄰設(shè)備的DR優(yōu)先級(jí)都已經(jīng)改變。
IE8UnLoopInd:網(wǎng)管系統(tǒng)或者底層協(xié)議表明接口不再處于環(huán)回狀態(tài)。
IE9InterfaceDown:底層協(xié)議表明接口不可操作。任何一種狀態(tài)都可能觸發(fā)此事件切換到Down狀態(tài)。
IE10LoopInd:網(wǎng)管系統(tǒng)或者底層協(xié)議表明接口處于環(huán)回狀態(tài)。任何一種狀態(tài)都可能觸發(fā)此事件切換到Loopback狀態(tài)。

鄰居狀態(tài)機(jī)

在OSPF網(wǎng)絡(luò)中,相鄰設(shè)備間通過不同的鄰居狀態(tài)切換,最終可以形成完全的鄰接關(guān)系,完成LSA信息的交互。

OSPF鄰居信息的State字段(可通過display ospf peer命令查看)表明了OSPF設(shè)備的鄰居狀態(tài)。

OSPF鄰居共有以下八種狀態(tài):
  • Down:鄰居會(huì)話的初始階段。

表明沒有在鄰居失效時(shí)間間隔內(nèi)收到來自鄰居設(shè)備的Hello報(bào)文。

除了NBMA網(wǎng)絡(luò)OSPF路由器會(huì)每隔PollInterval時(shí)間對(duì)外輪詢發(fā)送Hello報(bào)文,包括向處于Down狀態(tài)的鄰居路由器(即失效的鄰居路由器)發(fā)送之外,其他網(wǎng)絡(luò)是不會(huì)向失效的鄰居路由器發(fā)送Hello報(bào)文的。

  • Attempt:這種狀態(tài)適用于NBMA網(wǎng)絡(luò),鄰居路由器是手工配置的。

鄰居關(guān)系處于本狀態(tài)時(shí),路由器會(huì)每隔HelloInterval時(shí)間向自己手工配置的鄰居發(fā)送Hello報(bào)文,嘗試建立鄰居關(guān)系。

  • Init:本狀態(tài)表示已經(jīng)收到了鄰居的Hello報(bào)文,但是對(duì)端并沒有收到本端發(fā)送的Hello報(bào)文,收到的Hello報(bào)文的鄰居列表并沒有包含本端的Router ID,雙向通信仍然沒有建立。

  • 2-Way:互為鄰居。本狀態(tài)表示雙方互相收到了對(duì)端發(fā)送的Hello報(bào)文,報(bào)文中的鄰居列表也包含本端的Router ID,鄰居關(guān)系建立。如果不形成鄰接關(guān)系則鄰居狀態(tài)機(jī)就停留在此狀態(tài),否則進(jìn)入ExStart狀態(tài)。

DR和BDR只有在鄰居狀態(tài)處于2-Way及之后的狀態(tài)才會(huì)被選舉出來。

  • ExStart:協(xié)商主從關(guān)系。建立主從關(guān)系主要是為了保證在后續(xù)的DD報(bào)文交換中能夠有序的發(fā)送。鄰居間從此時(shí)才開始正式建立鄰接關(guān)系。

  • Exchange:交換DD報(bào)文。本端設(shè)備將本地的LSDB用DD報(bào)文來描述,并發(fā)給鄰居設(shè)備。

  • Loading:正在同步LSDB。兩端設(shè)備發(fā)送LSR報(bào)文向鄰居請(qǐng)求對(duì)方的LSA,同步LSDB。

  • Full:建立鄰接。兩端設(shè)備的LSDB已同步,本端設(shè)備和鄰居設(shè)備建立了完全的鄰接關(guān)系。

OSPF鄰居狀態(tài)的切換如圖14所示。

圖14 OSPF鄰居狀態(tài)機(jī)

下表列出了不同狀態(tài)切換時(shí)的輸入事件InputEvent(圖13中簡(jiǎn)稱IE)。

下表 OSPF鄰居狀態(tài)切換的輸入事件

輸入事件描述
IE1Start:以HelloInterval間隔向鄰居設(shè)備發(fā)送Hello報(bào)文,嘗試建立鄰居關(guān)系。僅NMBA網(wǎng)絡(luò)適用。
IE2HelloReceived:從鄰居設(shè)備收到一個(gè)Hello報(bào)文。
IE32-WayReceived:從鄰居設(shè)備收到的Hello報(bào)文中包含了自己的RouterID,鄰居間建立了雙向通信關(guān)系。接下來會(huì)進(jìn)行判斷:
· IE3(Y):如果相鄰設(shè)備間應(yīng)當(dāng)建立鄰接關(guān)系,會(huì)將鄰居狀態(tài)切換為ExStart。
· IE3(N):如果相鄰設(shè)備間不應(yīng)當(dāng)建立鄰接關(guān)系,只建立鄰居關(guān)系,會(huì)將鄰居狀態(tài)切換為2-Way。
IE4NegotiationDone:鄰居間主從關(guān)系已經(jīng)協(xié)商完成,DD序列號(hào)已經(jīng)交換。
IE5ExchangeDone:鄰居間成功交換了數(shù)據(jù)庫描述報(bào)文。接下來會(huì)進(jìn)行判斷:
· IE5(Y):如果鏈路狀態(tài)請(qǐng)求列表為空,會(huì)將鄰居狀態(tài)切換為Full狀態(tài),表示鏈路狀態(tài)數(shù)據(jù)已全部交換完成,鄰居間建立了完全的鄰接關(guān)系。
· IE5(N):如果鏈路狀態(tài)請(qǐng)求列表不為空,會(huì)將鄰居狀態(tài)切換為L(zhǎng)oading狀態(tài),開始或繼續(xù)向鄰居發(fā)送LSR報(bào)文,請(qǐng)求還沒有接收到的鏈路狀態(tài)數(shù)據(jù)。
IE6LoadingDone:鏈路請(qǐng)求狀態(tài)列表為空。

8OSPF鄰接關(guān)系的建立

鄰居關(guān)系

使能OSPF功能的接口會(huì)周期性地發(fā)送Hello報(bào)文,與網(wǎng)絡(luò)中其他收到Hello報(bào)文的路由器協(xié)商報(bào)文中的指定參數(shù),包括區(qū)域號(hào)、驗(yàn)證模式、發(fā)送Hello報(bào)文的時(shí)間間隔、路由器失效時(shí)間等參數(shù)。

如果協(xié)商一致,則在返回的Hello報(bào)文的鄰居列表中添加發(fā)送該Hello報(bào)文的設(shè)備的Router ID,雙方建立雙向通信,鄰居關(guān)系建立。

鄰居關(guān)系建立后,如果在路由器失效時(shí)間內(nèi)沒有收到鄰居發(fā)來的Hello報(bào)文,則中斷鄰居關(guān)系。

鄰接關(guān)系

OSPF鄰接關(guān)系位于鄰居關(guān)系之上,兩端需要進(jìn)一步交換DD報(bào)文、交互LSA信息時(shí)才建立鄰接關(guān)系。

并非所有鄰居都會(huì)建立鄰接關(guān)系,是否建立鄰接關(guān)系主要取決網(wǎng)絡(luò)類型和DR/BDR。

在P2P鏈路和P2MP鏈路上,每一臺(tái)設(shè)備都需要交換LSA信息,因此只存在鄰接關(guān)系。

在廣播鏈路和NBMA鏈路上,因?yàn)镈R Other之間不需要交換LSA信息,所以建立的是鄰居關(guān)系。

而DR與BDR之間,DR、BDR與DR Other之間需要交互LSA信息,所以建立的是鄰接關(guān)系。

如圖1所示,兩臺(tái)DR Other各有三個(gè)鄰居,但是分別只有兩個(gè)鄰接。

鄰接關(guān)系建立過程

不同類型的網(wǎng)絡(luò),OSPF鄰接關(guān)系建立過程不同。

廣播網(wǎng)絡(luò)

在廣播網(wǎng)絡(luò)中,DR、BDR和網(wǎng)段內(nèi)的每一臺(tái)路由器都形成鄰接關(guān)系,但DR other之間只形成鄰居關(guān)系。

鄰接關(guān)系建立的過程如圖15所示。

         
 圖15 廣播網(wǎng)絡(luò)中鄰接關(guān)系的建立過程

建立鄰居關(guān)系

  • RouterA連接到廣播類型網(wǎng)絡(luò)的接口上使能了OSPF協(xié)議,并發(fā)送了一個(gè)Hello報(bào)文(使用組播地址224.0.0.5)。

此時(shí),RouterA認(rèn)為自己是DR設(shè)備(DR=1.1.1.1),但不確定鄰居是哪臺(tái)設(shè)備(Neighbors Seen=0)。

  • RouterB收到RouterA發(fā)送的Hello報(bào)文后,發(fā)送一個(gè)Hello報(bào)文回應(yīng)給RouterA,并且在報(bào)文中的Neighbors Seen字段中填入RouterA的Router ID(Neighbors Seen=1.1.1.1),表示已收到RouterA的Hello報(bào)文,并且宣告DR設(shè)備是RouterB(DR=2.2.2.2),然后RouterB的鄰居狀態(tài)機(jī)置為Init。

  • RouterA收到RouterB回應(yīng)的Hello報(bào)文后,將鄰居狀態(tài)機(jī)置為2-Way狀態(tài),下一步雙方開始發(fā)送各自的鏈路狀態(tài)數(shù)據(jù)庫。

在廣播網(wǎng)絡(luò)中,兩個(gè)接口狀態(tài)是DR Other的設(shè)備之間將停留在此步驟。

主從關(guān)系協(xié)商、DD報(bào)文交換

  • RouterA首先發(fā)送一個(gè)DD報(bào)文,宣稱自己是Master(即將DD報(bào)文中的MS字段置為1),并規(guī)定序列號(hào)Seq=X。I=1表示這是第一個(gè)DD報(bào)文,報(bào)文中并不包含LSA的摘要,只是為了協(xié)商主從關(guān)系。M=1說明這不是最后一個(gè)報(bào)文。

  • 為了提高發(fā)送的效率,RouterA和RouterB首先了解對(duì)端數(shù)據(jù)庫中哪些LSA是需要更新的。

如果某一條LSA在LSDB中已經(jīng)存在,就不再需要請(qǐng)求更新了。

為了達(dá)到這個(gè)目的,RouterA和RouterB先發(fā)送DD報(bào)文,DD報(bào)文中包含了對(duì)LSDB中LSA的摘要描述(每一條摘要可以唯一標(biāo)識(shí)一條LSA)。

為了保證報(bào)文在傳輸過程中的可靠性,在DD報(bào)文的發(fā)送過程中需要確定雙方的主從關(guān)系,作為Master的一方定義一個(gè)序列號(hào)Seq,每發(fā)送一個(gè)新的DD報(bào)文將Seq加1,作為Slave的一方,每次發(fā)送DD報(bào)文時(shí)使用接收到的上一個(gè)Master的DD報(bào)文中的Seq。

  • RouterB在收到RouterA的DD報(bào)文后,將鄰居狀態(tài)機(jī)改為ExStart,并且回應(yīng)一個(gè)DD報(bào)文(該報(bào)文中同樣不包含LSA的摘要信息)。

由于RouterB的Router ID較大,所以在報(bào)文中RouterB認(rèn)為自己是Master,并且重新規(guī)定了序列號(hào)Seq=Y。

  • RouterA收到報(bào)文后,同意了RouterB為Master,并將鄰居狀態(tài)機(jī)改為Exchange。

RouterA使用RouterB的序列號(hào)Seq=Y來發(fā)送新的DD報(bào)文,該報(bào)文開始正式傳送LSA的摘要。

在報(bào)文中RouterA將MS字段置為0,說明自己是Slave。

  • RouterB收到報(bào)文后,將鄰居狀態(tài)機(jī)改為Exchange,并發(fā)送新的DD報(bào)文來描述自己的LSA摘要,此時(shí)RouterB將報(bào)文的序列號(hào)改為Seq=Y 1。

上述過程持續(xù)進(jìn)行,RouterA通過重復(fù)RouterB的序列號(hào)來確認(rèn)已收到RouterB的報(bào)文。

RouterB通過將序列號(hào)Seq加1來確認(rèn)已收到RouterA的報(bào)文。當(dāng)RouterB發(fā)送最后一個(gè)DD報(bào)文時(shí),在報(bào)文中寫上M=0。

LSDB同步(LSA請(qǐng)求、LSA傳輸、LSA應(yīng)答)

  • RouterA收到最后一個(gè)DD報(bào)文后,發(fā)現(xiàn)RouterB的數(shù)據(jù)庫中有許多LSA是自己沒有的,將鄰居狀態(tài)機(jī)改為L(zhǎng)oading狀態(tài)。

此時(shí)RouterB也收到了RouterA的最后一個(gè)DD報(bào)文,但RouterA的LSA,RouterB都已經(jīng)有了,不需要再請(qǐng)求,所以直接將RouterA的鄰居狀態(tài)機(jī)改為Full狀態(tài)。

  • RouterA發(fā)送LSR報(bào)文向RouterB請(qǐng)求更新LSA。

RouterB用LSU報(bào)文來回應(yīng)RouterA的請(qǐng)求。RouterA收到后,發(fā)送LSAck報(bào)文確認(rèn)。

NBMA網(wǎng)絡(luò)

在NBMA網(wǎng)絡(luò)中,所有路由器只與DR和BDR之間形成鄰接關(guān)系。鄰接關(guān)系建立的過程如圖16所示。

       
   圖16 NBMA網(wǎng)絡(luò)中鄰接關(guān)系的建立過程

建立鄰居關(guān)系

  • RouterB向RouterA的一個(gè)狀態(tài)為Down的接口發(fā)送Hello報(bào)文后,RouterB的鄰居狀態(tài)機(jī)置為Attempt。

此時(shí),RouterB認(rèn)為自己是DR設(shè)備(DR=2.2.2.2),但不確定鄰居是哪臺(tái)設(shè)備(Neighbors Seen=0)。

  • RouterA收到Hello報(bào)文后將鄰居狀態(tài)機(jī)置為Init,然后再回復(fù)一個(gè)Hello報(bào)文。

此時(shí),RouterA同意RouterB是DR設(shè)備(DR=2.2.2.2),并且在Neighbors Seen字段中填入鄰居設(shè)備的Router ID(Neighbors Seen=2.2.2.2)。

在NBMA網(wǎng)絡(luò)中,兩個(gè)接口狀態(tài)是DR Other的設(shè)備之間將停留在此步驟。

主從關(guān)系協(xié)商、DD報(bào)文交換過程與廣播網(wǎng)絡(luò)中鄰接關(guān)系建立過程相同。

LSDB同步(LSA請(qǐng)求、LSA傳輸、LSA應(yīng)答)過程與廣播網(wǎng)絡(luò)中鄰接關(guān)系建立過程相同。

點(diǎn)到點(diǎn)網(wǎng)絡(luò)和點(diǎn)到多點(diǎn)網(wǎng)絡(luò)

在點(diǎn)到點(diǎn)/點(diǎn)到多點(diǎn)網(wǎng)絡(luò)中,鄰接關(guān)系的建立過程和廣播網(wǎng)絡(luò)一樣,唯一不同的是不需要選舉DR和BDR,DD報(bào)文在點(diǎn)到點(diǎn)網(wǎng)絡(luò)中是由組播發(fā)送的,在點(diǎn)到多點(diǎn)網(wǎng)絡(luò)中是由單播發(fā)送的。

9OSPF區(qū)域

簡(jiǎn)介

隨著網(wǎng)絡(luò)規(guī)模日益擴(kuò)大,當(dāng)一個(gè)大型網(wǎng)絡(luò)中的路由器都運(yùn)行OSPF路由協(xié)議時(shí),會(huì)出現(xiàn)以下問題:

  • 網(wǎng)絡(luò)拓?fù)浒l(fā)生變化概率增大,LSA泛洪嚴(yán)重,降低網(wǎng)絡(luò)帶寬利用率。
  • 路由器數(shù)量增多,LSDB龐大,占用大量存儲(chǔ)空間,并使得運(yùn)行SPF算法的復(fù)雜度增加。
  • 每臺(tái)路由器需要維護(hù)的路由表越來越大。

OSPF協(xié)議通過將自治系統(tǒng)劃分成不同的區(qū)域,將LSA泛洪限制在一個(gè)區(qū)域內(nèi),提高網(wǎng)絡(luò)的利用率和路由的收斂速率;

每個(gè)區(qū)域內(nèi)的路由器數(shù)量減少,維護(hù)的LSDB規(guī)模降低,SPF計(jì)算也僅限于區(qū)域內(nèi)的LSA;每臺(tái)路由器需要維護(hù)的路由表也越來越小。此外,多區(qū)域提高了網(wǎng)絡(luò)的擴(kuò)展性,有利于組建大規(guī)模的網(wǎng)絡(luò)。

區(qū)域是從邏輯上將路由器劃分為不同的組,每個(gè)組用區(qū)域號(hào)(Area ID)來標(biāo)識(shí)。區(qū)域的邊界是路由器,而不是鏈路。一個(gè)網(wǎng)段(鏈路)只能屬于一個(gè)區(qū)域,或者說每個(gè)運(yùn)行OSPF的接口必須指明屬于哪一個(gè)區(qū)域。

在了解OSPF區(qū)域之前,需要先了解與區(qū)域相關(guān)的兩個(gè)概念:路由器類型和路由類型。

路由器類型

OSPF協(xié)議中常用到的路由器類型如圖17所示。

       
圖17 路由器類型
路由器類型含義
區(qū)域內(nèi)路由器(Internal Router)該類設(shè)備的所有接口都屬于同一個(gè)OSPF區(qū)域。
區(qū)域邊界路由器ABR(Area Border Router)該類設(shè)備可以同時(shí)屬于兩個(gè)以上的區(qū)域,但其中一個(gè)必須是骨干區(qū)域。ABR用來連接骨干區(qū)域和非骨干區(qū)域,它與骨干區(qū)域之間既可以是物理連接,也可以是邏輯上的連接。
骨干路由器(Backbone Router)該類設(shè)備至少有一個(gè)接口屬于骨干區(qū)域。所有的ABR和位于Area0的內(nèi)部設(shè)備都是骨干路由器。
自治系統(tǒng)邊界路由器ASBR(AS Boundary Router)與其他AS交換路由信息的設(shè)備稱為ASBR。ASBR并不一定位于AS的邊界,它可能是區(qū)域內(nèi)設(shè)備,也可能是ABR。只要一臺(tái)OSPF設(shè)備引入了外部路由的信息,它就成為ASBR。

路由類型

AS區(qū)域內(nèi)和區(qū)域間路由描述的是AS內(nèi)部的網(wǎng)絡(luò)結(jié)構(gòu)。

AS外部路由則描述了應(yīng)該如何選擇到AS以外目的地址的路由。

OSPF將引入的AS外部路由分為Type1和Type2兩類。

表中按優(yōu)先級(jí)從高到低順序列出了路由類型。

路由類型含義
Intra Area Routes區(qū)域內(nèi)路由。從區(qū)域內(nèi)生成的且目的地屬于該區(qū)域的路由。
Inter Area Routes區(qū)域間路由。來自其他區(qū)域的路由。
External Routes外部路由。引入其他路由協(xié)議或不同OSPF進(jìn)程的路由。根據(jù)路由開銷的計(jì)算方式,外部路由可以分為以下兩類:
第一類外部路由(Type1 External):第一類外部路由的開銷=本設(shè)備到相應(yīng)的ASBR的開銷 ASBR到該路由目的地址的開銷。
第二類外部路由(Type2 External):第二類外部路由的開銷=ASBR到該路由目的地址的開銷。對(duì)于同一目的地址,第一類的外部路由的優(yōu)先級(jí)要大于第二類外部路由。

區(qū)域類型

OSPF的區(qū)域類型包括普通區(qū)域、Stub區(qū)域、NSSA區(qū)域。

普通區(qū)域

缺省情況下,OSPF區(qū)域被定義為普通區(qū)域。普通區(qū)域包括:

  • 標(biāo)準(zhǔn)區(qū)域:最通用的區(qū)域,它傳輸區(qū)域內(nèi)路由,區(qū)域間路由和外部路由。
  • 骨干區(qū)域:連接所有其他OSPF區(qū)域的中央?yún)^(qū)域,用Area 0表示。

骨干區(qū)域負(fù)責(zé)區(qū)域之間的路由,非骨干區(qū)域之間的路由信息必須通過骨干區(qū)域來轉(zhuǎn)發(fā)。

說明:

骨干區(qū)域自身必須保持連通。

所有非骨干區(qū)域必須與骨干區(qū)域保持連通。

Stub區(qū)域

Stub區(qū)域是一些特定的區(qū)域,Stub區(qū)域的ABR不傳播它們接收到的自治系統(tǒng)外部路由,因此這些區(qū)域中路由器的路由表規(guī)模以及路由信息傳遞的數(shù)量都會(huì)大大減少。

Stub區(qū)域是一種可選的配置屬性,但并不是每個(gè)區(qū)域都符合配置的條件。

一般情況下,Stub區(qū)域位于自治系統(tǒng)的邊界,是只有一個(gè)ABR的非骨干區(qū)域,為保證到自治系統(tǒng)外的路由依舊可達(dá),Stub區(qū)域的ABR將生成一條缺省路由,并發(fā)布給Stub區(qū)域中的其他非ABR路由器。

Totally Stub區(qū)域允許ABR發(fā)布Type3缺省路由,不允許發(fā)布自治系統(tǒng)外部路由和區(qū)域間的路由,只允許發(fā)布區(qū)域內(nèi)路由。

說明:

骨干區(qū)域不能配置成Stub區(qū)域。

如果要將一個(gè)區(qū)域配置成Stub區(qū)域,則該區(qū)域中的所有路由器都要配置Stub區(qū)域?qū)傩浴?/p>

Stub區(qū)域內(nèi)不能存在ASBR,因此自治系統(tǒng)外部的路由不能在本區(qū)域內(nèi)傳播。

虛連接不能穿過Stub區(qū)域。

NSSA(Not-So-Stubby Area)區(qū)域

NSSA是Stub區(qū)域的一個(gè)變形,它和Stub區(qū)域有許多相似的地方。

NSSA區(qū)域不允許存在Type5 LSA。

NSSA區(qū)域允許引入自治系統(tǒng)外部路由,攜帶這些外部路由信息的Type7 LSA由NSSA的ASBR產(chǎn)生,僅在本NSSA內(nèi)傳播。

當(dāng)Type7 LSA到達(dá)NSSA的ABR時(shí),由ABR將Type7 LSA轉(zhuǎn)換成Type5 LSA,泛洪到整個(gè)OSPF域中。

Totally NSSA區(qū)域不允許發(fā)布自治系統(tǒng)外部路由和區(qū)域間的路由,只允許發(fā)布區(qū)域內(nèi)路由。

說明:

骨干區(qū)域不能配置成NSSA區(qū)域。

如果要將一個(gè)區(qū)域配置成NSSA區(qū)域,則該區(qū)域中的所有路由器都要配置NSSA區(qū)域?qū)傩浴?/p>

NSSA區(qū)域的ABR會(huì)發(fā)布Type7 LSA缺省路由傳播到本區(qū)域內(nèi)。

所有域間路由都必須通過ABR才能發(fā)布。

虛連接不能穿過NSSA區(qū)域。

OSPF網(wǎng)絡(luò)劃分區(qū)域以后,一個(gè)區(qū)域內(nèi)參與SPF算法的只有區(qū)域內(nèi)的LSA,其他的區(qū)域的LSA不參與本區(qū)域的SPF算法。如圖18所示,Area 1中的鏈路質(zhì)量不好一直處于閃斷中,所以Area 1的SPF算法會(huì)頻繁運(yùn)算。但是這種影響僅局限在Area 1內(nèi),其他區(qū)域不會(huì)因此而重新進(jìn)行SPF運(yùn)算,網(wǎng)絡(luò)的震蕩被限制在一個(gè)更小的范圍內(nèi),提高了網(wǎng)絡(luò)的穩(wěn)定性。

                               
圖18 劃分區(qū)域后鏈路震蕩的影響范圍減小

Stub區(qū)域和Totally Stub區(qū)域

如圖19所示,OSPF劃分了Area 0和Area 2,并且Area 0內(nèi)的ASBR引入了外部路由。通常情況下,為了保證網(wǎng)絡(luò)的路由可達(dá)性,可能把網(wǎng)絡(luò)的各個(gè)角落的路由全都發(fā)布進(jìn)了OSPF。

此時(shí),雖然各路由設(shè)備都能夠到達(dá)網(wǎng)絡(luò)的各個(gè)角落了,但如果網(wǎng)絡(luò)越來越大,設(shè)備越來越多,那么每臺(tái)設(shè)備的路由表項(xiàng)就會(huì)越來越大,而維護(hù)一個(gè)大規(guī)模的路由表項(xiàng)是需要消耗很多CPU及內(nèi)存資源的。特別是對(duì)于一些邊緣區(qū)域,設(shè)備性能可能比較低,維護(hù)大規(guī)模的路由表項(xiàng)會(huì)對(duì)設(shè)備性能帶來巨大壓力。

                        
圖19 Stub區(qū)域和Totally Stub區(qū)域

從網(wǎng)絡(luò)優(yōu)化的角度考慮,通常在保證網(wǎng)絡(luò)可達(dá)性的同時(shí)應(yīng)盡量減小路由表項(xiàng)的規(guī)模,減少網(wǎng)絡(luò)中LSA報(bào)文的泛洪。Area 2如果作為一個(gè)常規(guī)區(qū)域,那么可能存在Type1、Type2、Type3、Type4、Type5共計(jì)5中類型的LSA。對(duì)于Area 2中的路由器,無論想到達(dá)區(qū)域外的哪個(gè)網(wǎng)絡(luò),都必須首先到達(dá)到ABR路由器,也就是說這個(gè)時(shí)候Area 2中的其他路由器并不需要了解外部網(wǎng)絡(luò)的細(xì)節(jié)。

這種情況下,就產(chǎn)生了OSPF的Stub區(qū)域。對(duì)于Area 2中的路由器來說,其實(shí)區(qū)域間的明細(xì)路由也沒必要都了解,僅保留一個(gè)出口讓Area 2中的路由器的數(shù)據(jù)包能夠出去就足夠了,這就產(chǎn)生了OSPF的Totally Stub區(qū)域。Totally Stub區(qū)域中,既不允許自治系統(tǒng)外部的路由在區(qū)域內(nèi)傳播,也不允許區(qū)域間路由在區(qū)域內(nèi)傳播,這樣就進(jìn)一步減少了區(qū)域內(nèi)LSA的數(shù)量。

NSSA區(qū)域和Totally NSSA區(qū)域

如圖20所示,假設(shè)Area 2原來作為一個(gè)Stub區(qū)域運(yùn)行,但是有個(gè)外部網(wǎng)絡(luò)需要通過Area 2接入到這個(gè)OSPF網(wǎng)絡(luò),也就是需要將自治系統(tǒng)外部路由引入并傳播到整個(gè)OSPF自治系統(tǒng)中。此時(shí)可以在RouterA上將外部路由注入到OSPF自治系統(tǒng),但是這樣RouterA將成為ASBR,因此,Area 2也就不是Stub區(qū)域了。針對(duì)這種場(chǎng)景,OSPF定義了NSSA區(qū)域。

                           
圖20 NSSA區(qū)域和Totally NSSA區(qū)域

相比于Stub區(qū)域,NSSA區(qū)域能夠?qū)⒆灾蜗到y(tǒng)外部路由引入并傳播到整個(gè)OSPF自治系統(tǒng)中,同時(shí)又不會(huì)學(xué)習(xí)來自O(shè)SPF網(wǎng)絡(luò)其它區(qū)域的路由。

在NSSA區(qū)域中,為保證到自治系統(tǒng)外的路由可達(dá),NSSA區(qū)域的ABR將生成一條缺省路由,并發(fā)布給NSSA區(qū)域中的其他路由器。

在NSSA區(qū)域中,可能同時(shí)存在多個(gè)ABR,為了防止路由環(huán)路產(chǎn)生,邊界路由器之間不計(jì)算對(duì)方發(fā)布的缺省路由。

一個(gè)區(qū)域內(nèi)所有路由器上配置的區(qū)域類型必須保持一致。

OSPF在Hello報(bào)文中使用N-bit來標(biāo)識(shí)路由器支持的區(qū)域類型,區(qū)域類型選擇不一致的路由器不能建立OSPF鄰居關(guān)系。

雖然協(xié)議有要求,但有些廠商實(shí)現(xiàn)時(shí)違背了這一原則,在OSPF DD報(bào)文中也置位了N-bit。

為了和這些廠商互通,交換機(jī)的實(shí)現(xiàn)方式是可以通過命令設(shè)置N-bit來兼容。

與Totally Stub區(qū)域類似,為了進(jìn)一步減少NSSA區(qū)域中LSA的數(shù)量,OSPF還定義了Totally NSSA區(qū)域。

OSPF區(qū)域間環(huán)路及防環(huán)方法

OSPF在區(qū)域內(nèi)部運(yùn)行的是SPF算法,這個(gè)算法能夠保證區(qū)域內(nèi)部的路由不會(huì)成環(huán)。

然而劃分區(qū)域后,區(qū)域之間的路由傳遞實(shí)際上是一種類似距離矢量算法的方式,這種方式容易產(chǎn)生環(huán)路。

為了避免區(qū)域間的環(huán)路,OSPF規(guī)定直接在兩個(gè)非骨干區(qū)域之間發(fā)布路由信息是不允許的,只允許在一個(gè)區(qū)域內(nèi)部或者在骨干區(qū)域和非骨干區(qū)域之間發(fā)布路由信息。

因此,每個(gè)ABR都必須連接到骨干區(qū)域。

假設(shè)OSPF允許非骨干區(qū)域之間直接傳遞路由,則可能會(huì)導(dǎo)致區(qū)域間環(huán)路。

如圖21所示,骨干區(qū)連接到其他網(wǎng)絡(luò)的路由信息會(huì)傳遞至Area 1。

                                 
圖21 OSPF區(qū)域間環(huán)路

假設(shè)非骨干區(qū)之間允許直接傳遞路由信息,那么這條路由信息最終又被傳遞回去,形成區(qū)域間的路由環(huán)路。

為了防止這種區(qū)域間環(huán)路,OSPF禁止Area 1和Area 3,以及Area 2和Area 3之間直接進(jìn)行路由交互,而必須通過骨干區(qū)域進(jìn)行路由交互。

這樣就能防止區(qū)域間環(huán)路的產(chǎn)生。

OSPF缺省路由

缺省路由是指目的地址和掩碼都是0的路由。

當(dāng)設(shè)備無精確匹配的路由時(shí),就可以通過缺省路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。

由于OSPF路由的分級(jí)管理,Type3缺省路由的優(yōu)先級(jí)高于Type5或Type7路由。

OSPF缺省路由通常應(yīng)用于下面兩種情況:

  • 由區(qū)域邊界路由器(ABR)發(fā)布Type3缺省Summary LSA,用來指導(dǎo)區(qū)域內(nèi)設(shè)備進(jìn)行區(qū)域之間報(bào)文的轉(zhuǎn)發(fā)。
  • 由自治系統(tǒng)邊界路由器(ASBR)發(fā)布Type5外部缺省ASE LSA,或者Type7外部缺省NSSA LSA,用來指導(dǎo)自治系統(tǒng)(AS)內(nèi)設(shè)備進(jìn)行自治系統(tǒng)外報(bào)文的轉(zhuǎn)發(fā)。

OSPF缺省路由的發(fā)布原則如下:

  • OSPF路由器只有具有對(duì)區(qū)域外的出口時(shí),才能夠發(fā)布缺省路由LSA。
  • 如果OSPF路由器已經(jīng)發(fā)布了缺省路由LSA,那么不再學(xué)習(xí)其它路由器發(fā)布的相同類型的缺省路由LSA。

即路由計(jì)算時(shí)不再計(jì)算其它路由器發(fā)布的相同類型的缺省路由LSA,但數(shù)據(jù)庫中存有對(duì)應(yīng)LSA。- 外部缺省路由的發(fā)布如果要依賴于其它路由,那么被依賴的路由不能是本OSPF路由域內(nèi)的路由,即不是本進(jìn)程OSPF學(xué)習(xí)到的路由。因?yàn)橥獠咳笔÷酚傻淖饔檬怯糜谥笇?dǎo)報(bào)文的域外轉(zhuǎn)發(fā),而本OSPF路由域的路由的下一跳都指向了域內(nèi),不能滿足指導(dǎo)報(bào)文域外轉(zhuǎn)發(fā)的要求。

不同區(qū)域缺省路由發(fā)布原則:

普通區(qū)域

缺省情況下,普通OSPF區(qū)域內(nèi)的OSPF路由器是不會(huì)產(chǎn)生缺省路由的,即使它有缺省路由。

當(dāng)網(wǎng)絡(luò)中缺省路由通過其他路由進(jìn)程產(chǎn)生時(shí),路由器必須將缺省路由通告到整個(gè)OSPF自治系統(tǒng)中。

實(shí)現(xiàn)方法是在ASBR上手動(dòng)通過命令進(jìn)行配置,產(chǎn)生缺省路由。

配置完成后,路由器會(huì)產(chǎn)生一個(gè)缺省ASE LSA(Type5 LSA),并且通告到整個(gè)OSPF自治系統(tǒng)中。

Stub區(qū)域

Stub區(qū)域不允許自治系統(tǒng)外部的路由(Type5 LSA)在區(qū)域內(nèi)傳播。

區(qū)域內(nèi)的路由器必須通過ABR學(xué)到自治系統(tǒng)外部的路由。

實(shí)現(xiàn)方法是ABR會(huì)自動(dòng)產(chǎn)生一條缺省的Summary LSA(Type3 LSA)通告到整個(gè)Stub區(qū)域內(nèi)。

這樣,到達(dá)自治系統(tǒng)的外部路由就可以通過ABR到達(dá)。

Totally Stub區(qū)域

Totally Stub區(qū)域既不允許自治系統(tǒng)外部的路由(Type5 LSA)在區(qū)域內(nèi)傳播,也不允許區(qū)域間路由(Type3 LSA)在區(qū)域內(nèi)傳播。

區(qū)域內(nèi)的路由器必須通過ABR學(xué)到自治系統(tǒng)外部和其他區(qū)域的路由。

實(shí)現(xiàn)方法是配置Totally Stub區(qū)域后,ABR會(huì)自動(dòng)產(chǎn)生一條缺省的Summary LSA(Type3 LSA)通告到整個(gè)Stub區(qū)域內(nèi)。

這樣,到達(dá)自治系統(tǒng)外部的路由和其他區(qū)域間的路由都可以通過ABR到達(dá)。

NSSA區(qū)域

NSSA區(qū)域允許引入通過本區(qū)域的ASBR到達(dá)的少量外部路由,但不允許其他區(qū)域的外部路由ASE LSA(Type5 LSA)在區(qū)域內(nèi)傳播。即到達(dá)自治系統(tǒng)外部的路由只能通過本區(qū)域的ASBR到達(dá)。

只配置了NSSA區(qū)域是不會(huì)自動(dòng)產(chǎn)生缺省路由的。

此時(shí),有兩種選擇:

  • 如果希望到達(dá)自治系統(tǒng)外部的路由通過該區(qū)域的ASBR到達(dá),而其它外部路由通過其它區(qū)域出去。此時(shí),ABR會(huì)產(chǎn)生一條Type7 LSA的缺省路由,通告到整個(gè)NSSA區(qū)域內(nèi)。這樣,除了某少部分路由通過NSSA的ASBR到達(dá),其它路由都可以通過NSSA的ABR到達(dá)其它區(qū)域的ASBR出去。
  • 如果希望所有的外部路由只通過本區(qū)域NSSA的ASBR到達(dá)。則必須在ASBR上手動(dòng)通過命令進(jìn)行配置,使ASBR產(chǎn)生一條缺省的NSSA LSA(Type7 LSA),通告到整個(gè)NSSA區(qū)域內(nèi)。這樣,所有的外部路由就只能通過本區(qū)域NSSA的ASBR到達(dá)。

上面兩種情況的區(qū)別是:

  • 在ABR上無論路由表中是否存在缺省路由0.0.0.0,都會(huì)產(chǎn)生Type7 LSA的缺省路由。
  • 在ASBR上只有當(dāng)路由表中存在缺省路由0.0.0.0時(shí),才會(huì)產(chǎn)生Type7 LSA的缺省路由。

因?yàn)槿笔÷酚芍皇窃诒綨SSA區(qū)域內(nèi)泛洪,并沒有泛洪到整個(gè)OSPF域中,所以本NSSA區(qū)域內(nèi)的路由器在找不到路由之后可以從該NSSA的ASBR出去,但不能實(shí)現(xiàn)其他OSPF域的路由從這個(gè)出口出去。Type7 LSA缺省路由不會(huì)在ABR上轉(zhuǎn)換成Type5 LSA缺省路由泛洪到整個(gè)OSPF域。

Totally NSSA區(qū)域

Totally NSSA區(qū)域既不允許其他區(qū)域的外部路由ASE LSA(Type5 LSA)在區(qū)域內(nèi)傳播,也不允許區(qū)域間路由(Type3 LSA)在區(qū)域內(nèi)傳播。

區(qū)域內(nèi)的路由器必須通過ABR學(xué)到其他區(qū)域的路由。

實(shí)現(xiàn)方法是配置Totally NSSA區(qū)域后,ABR會(huì)自動(dòng)產(chǎn)生一條缺省的Type3 LSA通告到整個(gè)NSSA區(qū)域內(nèi)。

這樣,其他區(qū)域的外部路由和區(qū)域間路由都可以通過ABR在區(qū)域內(nèi)傳播。

10OSPF LSA類型

簡(jiǎn)介

OSPF網(wǎng)絡(luò)中劃分了不同的區(qū)域,每個(gè)區(qū)域都維護(hù)自己獨(dú)立的LSDB,同時(shí)路由器也被定義成不同的類型。封裝了路由描述信息的LSA根據(jù)路由器的類型也可以分門別類。

圖22是一個(gè)被劃分區(qū)域的OSPF網(wǎng)絡(luò)。R4上配置了靜態(tài)路由,在R4上將靜態(tài)路由引入到OSPF進(jìn)程中。

     
圖22 劃分區(qū)域的OSPF網(wǎng)絡(luò)

R1、R2、R3、R4的Router ID及各接口的IP地址如表所示。

表 數(shù)據(jù)規(guī)劃
設(shè)備Router ID接口IP地址
R110.1.1.1/32GE1/0/1:192.168.12.1/24
R210.2.2.2/32GE1/0/2:192.168.12.2/24 GE1/0/1:192.168.23.1/24
R310.3.3.3/32GE1/0/2:192.168.23.2/24 GE1/0/1:192.168.34.1/24
R410.4.4.4/32GE1/0/2:192.168.34.2/24

下面結(jié)合圖22所示的網(wǎng)絡(luò)介紹各類LSA。

Router-LSA

Router-LSA是一種最基本的LSA,即Type1 LSA。

OSPF網(wǎng)絡(luò)里的每一臺(tái)路由設(shè)備都會(huì)發(fā)布Type1 LSA。

這種類型的LSA用于描述設(shè)備的鏈路狀態(tài)和開銷,在路由器所屬的區(qū)域內(nèi)傳播。

以R2為例,如圖23所示,R2在Area 0、Area 1會(huì)分別發(fā)布Router-LSA。

                        
 圖23 Type1 Router-LSA

以R2在接口GE1/0/1上泛洪的一條Router-LSA為例,該LSA中包含的信息如圖24所示。

圖24 Router-LSA信息

LSA報(bào)文包括LSA頭部和LSA信息字段。所有類型的LSA報(bào)文,其LSA頭部包含的字段都是一樣的,唯一不同的是Link State ID字段含義。在LSA頭部中,主要關(guān)注以下三個(gè)字段:

  • Link-State Advertisement Type:LSA類型。
  • Link State ID:鏈路狀態(tài)ID。在Router-LSA中代表始發(fā)該LSA的設(shè)備的Router ID,這里即是R2自己的Router ID。
  • Advertising Router:通告路由器。

Router-LSA的信息字段有三個(gè),用于將自己連接的所有鏈路的狀況以及開銷告訴該LSA泛洪區(qū)域的其他路由器。

圖3所示的LSA描述的信息為:鏈路類型(Type)為一個(gè)傳送網(wǎng)絡(luò)(Transit),DR接口的IP地址(ID)為192.168.23.2,和網(wǎng)絡(luò)相連的通告路由器接口的IP地址是192.168.23.1(Data),到達(dá)該網(wǎng)絡(luò)的開銷(Metric)是1。收到該LSA報(bào)文的路由器根據(jù)這些鏈路狀態(tài)的描生成拓?fù)洹?/p>

其中,Link Type有四種類型,并且ID和Data的值會(huì)根據(jù)Link Type而有不同:

  • P2P(點(diǎn)對(duì)點(diǎn)):此時(shí)ID表示鄰居路由設(shè)備的Router ID,Data表示和網(wǎng)絡(luò)相連的通告路由器接口的IP地址。
  • Transit(傳送網(wǎng)絡(luò)):此時(shí)ID表示DR接口的IP地址,Data表示和網(wǎng)絡(luò)相連的通告路由器接口的IP地址。
  • Stub(末梢網(wǎng)絡(luò)):此時(shí)ID表示IP網(wǎng)絡(luò)或子網(wǎng)地址,Data表示網(wǎng)絡(luò)的IP地址或子網(wǎng)掩碼。
  • Virtual Link(虛鏈路):此時(shí)ID表示鄰居路由設(shè)備的Router ID,Data表示通告路由器接口的MIB-II ifIndex值。

Network-LSA

Network-LSA,也就是Type2 LSA,由DR(Designated Router)產(chǎn)生,描述本網(wǎng)段的鏈路狀態(tài),在所屬的區(qū)域內(nèi)傳播。

如圖25所示,R3向R2發(fā)送一條Network-LSA,列出了所有與DR形成完全鄰接關(guān)系的路由器的Router ID。

                     
圖25 Type2 Network-LSA

該Network-LSA中包含的信息如圖26所示。

圖26 Network-LSA信息

在Network-LSA中,Link State ID字段的含義是DR接口上的IP地址。

通過Router-LSA和Network-LSA在區(qū)域內(nèi)洪泛,區(qū)域內(nèi)每個(gè)路由器可以完成LSDB同步,這就解決了區(qū)域內(nèi)部的通信問題。

Network-summary-LSA

Network-summary-LSA,也叫Type3 LSA,由ABR發(fā)布,用來描述區(qū)域間的路由信息。

ABR將Network-summary-LSA發(fā)布到一個(gè)區(qū)域,通告該區(qū)域到其他區(qū)域的目的地址。

實(shí)際上,ABR是將區(qū)域內(nèi)部的Type1和Type2的信息收集起來并匯總之后擴(kuò)散出去,這就是Summary的含義。

如圖27所示,R2作為ABR,將Area 0和Area 1中的路由信息分別發(fā)布對(duì)方區(qū)域。

圖27 Type3 Network-summary-LSA

如圖28所示,是R2在接口GE1/0/1上發(fā)布的一條Network-summary-LSA。

圖28 Network-summary-LSA信息

在Network-summary-LSA中,Link State ID字段代表該LSA所描述網(wǎng)絡(luò)的網(wǎng)絡(luò)地址。從LSA的信息中可以看出,該LSA由R2發(fā)布(10.2.2.2),可以到達(dá)192.168.12.0,掩碼為255.255.255.0的網(wǎng)絡(luò),代價(jià)為1。R2將Area 1中的網(wǎng)絡(luò)地址在Area 0中發(fā)布,從而讓Area 0中的路由器知道去該網(wǎng)絡(luò)的路徑,實(shí)現(xiàn)區(qū)域間的通信。

如果—臺(tái)ABR在與它本身相連的區(qū)域內(nèi)有多條路由可以到達(dá)目的地,那么它將只會(huì)始發(fā)單一的一條網(wǎng)絡(luò)匯總LSA到骨干區(qū)域,而且這條網(wǎng)絡(luò)匯總LSA是上述多條路由中代價(jià)最低的。

Network-summary-LSA不會(huì)通告給Totally Stub和Totally NSSA區(qū)域。

ASBR-Summary-LSA

ASBR-summary-LSA,也叫Type4 LSA,由ABR發(fā)布,描述到ASBR的路由信息,并通告給除ASBR所在區(qū)域的其他相關(guān)區(qū)域。

如圖29所示,R3作為ABR通告ASBR-summary-LSA到Area 0中。

    
圖29 Type4 ASBR-summary-LSA

ASBR-summary-LSA信息如圖30所示。其中,Link State ID表示該LSA所描述的ASBR的Router ID(10.4.4.4),即R4,發(fā)布該LSA的路由設(shè)備是R3(10.3.3.3),R3到達(dá)R4的代價(jià)是1。

圖30 ASBR-summary-LSA信息

AS-external-LSA

AS-external-LSA,也叫Type5 LSA,由ASBR產(chǎn)生,描述到AS外部的路由,通告到除Stub區(qū)域和NSSA區(qū)域以外所有的區(qū)域。

如圖31所示,R4作為ASBR發(fā)布了一條OSPF AS到外部目的網(wǎng)絡(luò)的路由信息。

                
圖31 Type5 AS-external-LSA

AS-external-LSA中包含的信息如圖32所示。其中,Link State ID代表外部網(wǎng)絡(luò)目的IP地址,轉(zhuǎn)發(fā)地址是指到達(dá)該外部網(wǎng)絡(luò)的數(shù)據(jù)包應(yīng)該被轉(zhuǎn)發(fā)到的地址。此處的轉(zhuǎn)發(fā)地址為0.0.0.0表示數(shù)據(jù)包將被轉(zhuǎn)發(fā)到始發(fā)ASBR上。

圖32 AS-external-LSA信息

NSSA LSA

除了上述幾種LSA之外,還有一種比較特殊的LSA,NSSA LSA,也叫Type7 LSA。NSSA LSA由ASBR產(chǎn)生,描述到AS外部的路由,僅在NSSA區(qū)域內(nèi)傳播。NSSA區(qū)域的ABR收到NSSA LSA時(shí),會(huì)有選擇地將其轉(zhuǎn)化為Type5 LSA,以便將外部路由信息通告到OSPF網(wǎng)絡(luò)的其它區(qū)域。

如果圖22中的Area 2為NSSA區(qū)域,R4的接口GE1/0/2會(huì)始發(fā)一條NSSA LSA,如圖33所示。

圖33 NSSA LSA

NSSA LSA所有的字段與AS-external-LSA字段均相同,但這兩種LSA泛洪的區(qū)域不同。AS-external-LSA是在整個(gè)AS泛洪,而NSSA LSA僅在NSSA區(qū)域中泛洪。

NSSA區(qū)域允許引入外部路由,但描述外部路由信息的NSSA LSA只能在本區(qū)域泛洪。為了使外部路由能被引入到除NSSA區(qū)域以外的其他區(qū)域,NSSA LSA在ABR(R3)上會(huì)轉(zhuǎn)換成AS-external-LSA,并且泛洪到骨干區(qū)直至整個(gè)自治系統(tǒng)中。

  • P-bit(Propagate bit)用于告知轉(zhuǎn)化路由器該條Type7 LSA是否需要轉(zhuǎn)化。
  • 缺省情況下,轉(zhuǎn)化路由器是NSSA區(qū)域中Router ID最大的ABR。
  • 只有P-bit置位并且FA(Forwarding Address)不為0的NSSA LSA才能轉(zhuǎn)化為AS-external-LSA。FA用來表示發(fā)送的某個(gè)目的地址的報(bào)文將被轉(zhuǎn)發(fā)到FA所指定的地址。
  • 區(qū)域邊界路由器產(chǎn)生的NSSA LSA缺省路由不會(huì)置位P-bit。

Opaque LSA

Opaque LSA包括Type9 LSA,Type10 LSA和Type11 LSA,用于OSPF的擴(kuò)展通用機(jī)制。

  • Type9 LSA僅在接口所在網(wǎng)段范圍內(nèi)傳播。用于支持GR的Grace LSA就是Type9 LSA的一種。
  • Type10 LSA在區(qū)域內(nèi)傳播。用于支持TE的LSA就是Type10 LSA的一種。
  • Type11 LSA在自治系統(tǒng)內(nèi)傳播,目前還沒有實(shí)際應(yīng)用的例子。

LSA在各區(qū)域中傳播的支持情況如表所示。

表 LSA在各區(qū)域中傳播的支持情況
區(qū)域類型Router-LSA(Type1)Network-LSA(Type2)Network-summary-LSA(Type3)ASBR-summary-LSA(Type4)AS-external-LSA(Type5)NSSA LSA(Type7)
普通區(qū)域(包括標(biāo)準(zhǔn)區(qū)域和骨干區(qū)域)
Stub區(qū)域
Totally Stub區(qū)域
NSSA區(qū)域
Totally NSSA區(qū)域

end


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服