小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【OSPF】鄰居關(guān)系建立過程詳解

 喝茶知足常樂 2015-11-13
【OSPF】鄰居關(guān)系建立過程詳解
以上圖為例,在初始情況下,A、B在某個接口激活了OSPF后,都會開始在這個接口上去發(fā)組播的OSPF Hello包,目的是發(fā)現(xiàn)OSPF鄰居。Hello包里,有個active neighbor字段,用來存儲路由器在某個OSPF接口上發(fā)現(xiàn)的鄰居,當(dāng)然,初始情況下,這個Hello包里是不包含任何活躍的鄰居的(也就沒有active neighbor字段),因為他誰也沒發(fā)現(xiàn)。

當(dāng)OSPF路由器(B)在某個OSPF接口上收到鄰居發(fā)來的Hello包(里面沒有裝active neighbor),它會記錄下A(在自己的OSPF接口數(shù)據(jù)結(jié)構(gòu)中)并且將A的狀態(tài)視為init,然后將A的Router-ID存儲在自己將要發(fā)送的Hello包的active neighbor字段里發(fā)送出去,這樣A就會收到這個hello包,并且在這個hello包當(dāng)中找到自己的Router-ID,那么A會認(rèn)為,與B已經(jīng)完成了雙邊關(guān)系的建立,因此A會將B的鄰居狀態(tài)置為two-way。與此同時,A也會繼續(xù)發(fā)送Hello包,并且將B的Router-ID放置于Hello包的active neighbor字段中,而B收到這個Hello包并看見了自己的Router-ID后,B也會將A的狀態(tài)置為two-way,至此OSPF的第一個穩(wěn)態(tài)就達(dá)到了。

【OSPF】鄰居關(guān)系建立過程詳解

接下來A、B會進(jìn)入ex-start狀態(tài)并開始進(jìn)行Master、Slave的協(xié)商,協(xié)商M/S的目的是為了決定在后續(xù)的LSA交互中,誰來決定DD(Database Description)報文的序列號(Sequence Number),而Router-ID大的那個OSPF路由器的接口將會成為Master,由它來決定DD Sequence Number,對端則成為slave。這里要注意Master不是DR,要注意與DR的概念進(jìn)行區(qū)分。這個協(xié)商過程,是由交互DBD包實現(xiàn)的,使用的是空的DBD包,也就是不包含任何LSA頭部的DBD包,這個包當(dāng)中,有三個位非常關(guān)鍵:I、M、MS。用于ex-start階段協(xié)商Master/Slave的DBD包,I位(或叫做init位)都是置0的,另外MS位如果置1,表示DBD報文始發(fā)路由器認(rèn)為自己的Master,當(dāng)然起初大家都這么認(rèn)為,在一系列DBD交換后,就會得到選舉結(jié)果,被選舉為Slave的OSPF接口會將發(fā)送的DBD包MS位置為0;另外M位表示More,如果一個OSPF接口發(fā)送的DBD包M位置1,在表示這不是最后一個DBD,后續(xù)還有DBD包待發(fā)送。

當(dāng)OSPF接口收到一個DBD包且其中I位置0的時候,它就知道與該鄰居的ex-start階段已經(jīng)過去了,于是將鄰居的狀態(tài)置為ex-change,并存儲對端發(fā)來的DBD包所包含的LSA 頭部,當(dāng)然,他自己也發(fā)送關(guān)于自己OSPF Database(DB)的摘要給鄰居。如此一來,雙方都能通過DBD的交互,了解到對方OSPF DB中的摘要情況。在這個過程中,可能交互數(shù)個DBD報文,并要注意,這些報文的I位都置0,且M位一般也置0,除非這是某個OSPF接口發(fā)送的最后一個DBD包。

【OSPF】鄰居關(guān)系建立過程詳解

當(dāng)A收到一個M位置0的DBD包的時候,它就知道,這是鄰居發(fā)來的最后一個DBD包了,如果它搜集完這個鄰居(假設(shè)是B)發(fā)來的DBD并且發(fā)現(xiàn),這些DBD里有它感興趣的LSA,它期望更詳細(xì)的LSA信息時,它將B置為Loading狀態(tài),并且開始發(fā)送LSR報文去請求特定LSA的詳細(xì)信息。B收到這個LSR后,會以LSU進(jìn)行回應(yīng),其中就包含了對方請求的LSA詳細(xì)信息,因此,只有在LSU報文中,才能看到LSA的完整信息。收到LSU后,A將LSU中所包含的LSA放進(jìn)自己的LSDB,并且給B發(fā)一個Lsack進(jìn)行確認(rèn)。當(dāng)OSPF接口上所有的待請求的LSA全部收到更新后,它會將鄰居置為FULL。至此,OSPF鄰接關(guān)系的建立達(dá)到全毗鄰。

在這里我們有個地方需要留意,我們通常說,OSPF路由器A與B進(jìn)入了xx狀態(tài),其實這句話并不嚴(yán)謹(jǐn),原因之一,是因為OSPF是接口敏感型協(xié)議,許多的操作都是以O(shè)SPF接口作為立足點(diǎn)去考慮的,譬如鄰居關(guān)系的建立,再如DR和BDR,我們不能說一臺路由器是DR,準(zhǔn)確的說,應(yīng)該是某路由器的某個接口是DR;再者,說兩臺路由器之間是xx狀態(tài),這個也不嚴(yán)謹(jǐn),所謂的鄰居狀態(tài),必須是以某臺路由器為觀察點(diǎn),在其某個接口上觀察到的某個鄰居的狀態(tài),因此可能出現(xiàn)的一個情況是,在A上,看到的B的狀態(tài)為Loading,但是在B上,A的狀態(tài)已經(jīng)是FULL了。


下面是關(guān)于狀態(tài)機(jī)的詳細(xì)解釋:

1.Down 
在DOWN狀態(tài)下,OSPF接口仍然有嘗試發(fā)現(xiàn)鄰居的意愿,因此會不斷的發(fā)送組播hello包。

2.Attempt
如果一個路由器,它鄰居處于這種狀態(tài),則表示它從鄰居沒有收到任何信息,但是做了努力來與鄰居聯(lián)系。
僅在NBMA網(wǎng)絡(luò)上存在,當(dāng)NBMA網(wǎng)絡(luò)上具有DR選取資格的路由器和其鄰居路由器相連的接口開始變?yōu)橛行?Activ/e)時,或者當(dāng)這臺路由器成為DR或BDR時,這臺具有DR選取資格的路由器將會把鄰居路由器的狀態(tài)轉(zhuǎn)換到Attempt狀態(tài)。在Attempt狀態(tài)下,路由器將使用hellointerval時間代替pollinterval的時間來作為向鄰居發(fā)送hello數(shù)據(jù)包的時間間隔。

3.init 
當(dāng)OSPF接口收到鏈路上某個鄰居發(fā)來的第一個HELLO包的時候,它會在接口上將該鄰居置為init狀態(tài),注意這個hello包中可能并未包含任何的鄰居信息。但是這至少證明,我這個OSPF接口在這個鏈路上,至少有個活的鄰居。下面是一個沒有發(fā)現(xiàn)任何active neighbor的hello包:

【OSPF】鄰居關(guān)系建立過程詳解
4.Two-way
當(dāng)OSPF路由器在某個鏈路上發(fā)現(xiàn)了鄰居后,它自己發(fā)送的hello包里就會增加active neighbor字段,用于存儲在該鏈路上發(fā)現(xiàn)的OSPF鄰居。當(dāng)一臺OSPF router看到自己(的RouterID)出現(xiàn)在鄰居發(fā)過來的的hello分組中,它就會將該鄰居置為Two-way。該狀態(tài)是OSPF鄰居之間可以具有的最基本的關(guān)系,也是第一個穩(wěn)態(tài),但是此時兩者還不能共享路由信息。下面是一個已經(jīng)在鏈路上發(fā)現(xiàn)了鄰居1.1.1.1的hello:
【OSPF】鄰居關(guān)系建立過程詳解

5.ExStart
一臺OSPF路由器在將某個鄰居置為2way狀態(tài)后,就開始發(fā)送空的DBD包,用于協(xié)商master/slave。這個就是ex-start狀態(tài)。兩臺router間用空的BDB 分組確定master和slave關(guān)系(注意不是DR和BDR),
在DBD包中有3個標(biāo)記位用來管理鄰接關(guān)系的建立過程:
  • I位    或稱為初始位(initial bit) 用于ex-start協(xié)商主從關(guān)系的初始化協(xié)商的DBD包,該位置1
  • M位    或稱為后繼位(More bit) 如果這不是OSPFrouter發(fā)送的最后一個DBD,該位置1
  • MS位   或稱為主/從位(Master/slave bit) 如果始發(fā)路由器是Master,則該位置1
如果某臺OSPF router收到鄰居發(fā)來的DBD,I位也就是init位置0,則意味著ex-start狀態(tài)結(jié)束,并且MS/slave已經(jīng)選出來了,那么該路由器會將鄰居置為exchange狀態(tài),開始用包含LSA頭部的DBD交換各自的LSBD。
下面是一個用于初始化協(xié)商的DBD消息:

【OSPF】鄰居關(guān)系建立過程詳解
6.Exchange狀態(tài)
這個過程,雙方使用包含自己LSA頭部的DBD報文進(jìn)行交互,并且將對方發(fā)過來的LSA頭部、并且自己感興趣的LSA(或自己沒有的LSA)存儲在一個本地OSPF接口的隊列里,以便在下一個階段進(jìn)行LSA詳細(xì)信息的請求。當(dāng)某個OSPF接口收到鄰居發(fā)來的DBD,M位置0,則表示對方已經(jīng)發(fā)完DBD了,與此同時,如果該路由器的這個OSPF接口上存在待請求的LSA,那么它會將這個鄰居置為loading狀態(tài)。
下面是一個裝載了LSA頭部的DBD消息:

【OSPF】鄰居關(guān)系建立過程詳解

7.loading 狀態(tài)
OSPF router使用LSR去請求LSA的詳細(xì)信息,對方使用LSU發(fā)來更新,因此只有LSU里才有LSA的完整信息。在收到LSU后,一方面本地使用LSAack進(jìn)行確認(rèn),另一方面將LSU中包含的LSA裝載進(jìn)自己的LSDB。
以下是一個LSR消息,非常的簡單:

【OSPF】鄰居關(guān)系建立過程詳解

接著是一個LSU消息,里頭包含了LSA的完整信息,LSA這里暫時不做詳細(xì)介紹,請看下文:

【OSPF】鄰居關(guān)系建立過程詳解
8.Full Adjacency狀態(tài)
Loading 狀態(tài)結(jié)束后,也就是本地OSPF接口上再沒有待更新的LSA隊列后,將鄰居置為FULL。




本文為原創(chuàng)博文,版權(quán)歸屬紅茶三杯(http://blog.sina.com.cn/vinsoney),轉(zhuǎn)載請注明出處。



紅茶三杯

網(wǎng)絡(luò)工程 | 數(shù)據(jù)通信 | 項目管理
學(xué)習(xí) 沉淀 成長 分享
站點(diǎn):http://

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多