OSPF邻接关系的建立步骤
OSPF鄰接關系建立過程剖析
在OSPF網絡中,為了交換路由信息,鄰居設備之間首先要建立鄰接關系,鄰居(Neighbors)關系和鄰接(Adjacencies)關系是兩個不同的概念。鄰居關系:OSPF設備啟動后,會通過OSPF接口向外發送Hello報文,收到Hello報文的OSPF設備會檢查報文中所定義的參數,如果雙方一致就會形成鄰居關系,兩端設備互為鄰居。鄰接關系:形成鄰居關系后,如果兩端設備成功交換DD報文和LSA,才建立鄰接關系。OSPF狀態機
OSPF共有8種狀態機,分別是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。
1、Down:鄰居會話的初始階段,表明沒有在鄰居失效時間間隔內收到來自鄰居路由器的Hello數據包。
2、Attempt:該狀態僅發生在NBMA網絡中,表明對端在鄰居失效時間間隔(dead interval)超時后仍然沒有回復Hello報文。此時路由器依然每發送輪詢Hello報文的時間間隔(poll interval)向對端發送Hello報文。
3、Init:收到Hello報文后狀態為Init。
4、2-way:收到的Hello報文中包含有自己的Router ID,則狀態為2-way;如果不需要形成鄰接關系則鄰居狀態機就停留在此狀態,否則進入Exstart狀態。
5、Exstart:開始協商主從關系,并確定DD的序列號,此時狀態為Exstart。
6、Exchange:主從關系協商完畢后開始交換DD報文,此時狀態為Exchange。
7、Loading:DD報文交換完成即Exchange done,此時狀態為Loading。
8、Full:LSR重傳列表為空,此時狀態為Full。
OSPF鄰接關系建立過程圖解:
注:此圖為網圖,諒解博主懶病犯了。哈哈。。
鄰接關系建立過程詳解(Broadcast類型):【對比著圖更容易理解哦】
1、在Down狀態下路由器發出第一個hello包。當R2收到一個Hello包,并且在這個hello包中看不到自已的ID,則將自已和鄰居的關系轉到Init狀態。Init是一個one way 狀態,當R1和R2都認識對方后就會進入2-Way狀態。
2、當收到包含自己router-id的hello包時,將自己和鄰居的狀態置為2-way。在Two Way時,將選舉DB/BDR(MA網絡)。進入Two way狀態后(即從Exstart開始),表示這兩個路由器已經建立了鄰居關系了。但最終能不能鄰接關系要看最后是不是FULL。
3、Exstart:Exstart交互的是firstDBD,主要是用于選舉主從關系(router-id大的為主),確定接下來DD報文的序列號(用主的序列號),為lsdb同步做準備。
進入Exstart狀態后,R1和R2分別向對方發送firstDBD報文,并將I位置為1,代表是第一個DBD報文;M位置為1,代表不是最后一個DBD報文;MS位置為1,最初會自己認為自己是主。當收到對方的first DBD報文后,通過router-id選舉出主從,由主來決定seq的值。
根據上圖中能看到第二個DBD報文中包含seq值,第一個報文的seq值為n+1,以此類推。當主發送以此DBD報文,從必須給予一次回復,這是由于OSPF是基于IP的,沒有確認機制,需要seq做隱式確認,保證了可靠性。
4、Exchange: Exchange是通過DBD交換LSA的頭部信息。
5、Loading:等待收到M位為0的DD報文時,才進入loading。
進入Loading之后,R1開始向R2發送LS request報文,請求那些在Exchange狀態下通過DD報文發現的,而且在本地LSDB中沒有的鏈路狀態信息。R2收到LS Request報文之后,向R1發送LS Update報文,在LS Update報文中,包含了那些被請求的鏈路狀態的詳細信息。R1收到LS Update報文之后,R1向R2發送LS Ack報文,確保信息傳輸的可靠性。
6、FULL:lsdb同步完成,鄰接關系的完整建立。
轉載來源:https://blog.51cto.com/xiaojiejt/1939388
?著作權歸作者所有:來自51CTO博客作者SupermanNet的原創作品,如需轉載,請注明出處,否則將追究法律責任
總結
以上是生活随笔為你收集整理的OSPF邻接关系的建立步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java实验二答案天津商业大学_天津商业
- 下一篇: lte盲重定向_LTE重选、切换、重定向