OSPF狀態機


轉載自:https://baijiahao.baidu.com/s?id=1666668760826453979&wfr=spider&for=pc

 

 

OSPF共有8種狀態機,分別是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。

Down:鄰居會話的初始階段,表明沒有在鄰居失效時間間隔內收到來自鄰居路由器的Hello數據包。

Attempt:該狀態僅發生在NBMA網絡中,表明對端在鄰居失效時間間隔(dead interval)超時前仍然沒有回復Hello報文。此時路由器依然每發送輪詢Hello報文的時間間隔(poll interval)向對端發送Hello報文。

Init:收到Hello報文后狀態為Init。

2-way:收到的Hello報文中包含有自己的Router ID,則狀態為2-way;如果不需要形成鄰接關系則鄰居狀態機就停留在此狀態,否則進入Exstart狀態。

Exstart:開始協商主從關系,並確定DD的序列號,此時狀態為Exstart。

Exchange:主從關系協商完畢后開始交換DD報文,此時狀態為Exchange。

Loading:DD報文交換完成即Exchange done,此時狀態為Loading。

Full:LSR重傳列表為空,此時狀態為Full。

接下來,我們來聊聊幾個主要的狀態:

1、Init

每台路由器只與啟用了OSPF,接口宣告到OSPF進程,就會開始發OSPF報文。

當收到別人發過來的Hello報文,

 

 

一開始,R5收到R4發過來的Hello包,查看,只看到R4的router id 4.4.4.4 ,沒有看到自己,所以狀態置為init狀態,並且R5已發現自己有個鄰居是R4。

 

 

R4收到R5發過來的Hello包,查看,只看到R5的router id 5.5.5.5 ,沒有看到自己,所以狀態置為init狀態,並且R4已發現自己有個鄰居是R5。

 

 

R5再次收到R4發過來的Hello包,查看,看到R4的router id 4.4.4.4,還看到自己R5的router id 5.5.5.5 ,認為雙向通信沒問題,所以狀態置為2-way。

同理,R4再次收到R5發過來的Hello包,查看,看到R5的router id 5.5.5.5,還看到自己R5的router id 4.4.4.4,認為雙向通信沒問題,所以狀態置為2-way。

到這里,OSPF的鄰居狀態就算建立完成。如果要交付LSA信息,還得繼續建立鄰接關系,才能交付,然后再去計算路由。

當鏈路兩端的設備都進入2-way狀態后,如果是MA或NBMA網絡,會進行DR/BDR的選舉。該選舉是為了減少廣播型網絡和NBMA網絡中建立鄰接關系的數量。

如果存在DR的情況下,其他DR-Other只會和DR建立鄰接關系,DR-Other之間建立鄰居關系,但是不會建立鄰接關系,狀態一直處於2-way狀態。

DR/BDR的選舉規則:

1、比較路由器優先級,大的優先;

2、比較router id。大的優先;

當選舉出DR后,網絡內的DR-Other和DR開始建立鄰接關系,進入下一個狀態Exstart。

這個階段,兩端設備通過交互DD報文,來選舉主從關系,主從的目的,就是選舉誰是老大,后續的DD報文序列號以他為准,作為參考點進行更新。

龍哥要畫重點了,注意了,第一個DD報文,是沒有攜帶LSA頭部信息的。

  

  

 

 現在我們來了解一下,主從關系是通過什么選舉出來的呢?

 

 

DD報文有個三位很重要,I,M,MS位。

I 是表示該報文是初始報文,第一個DD報文。

M 表示后面還有DD報文,如果是0,表示沒有DD報文了。

MS 置1表示該報文為主,0表示為從。

所以第一個DD報文,都各自認為自己是主,所以MS都置1。

 

 

 R4:發現自己的router id比R5小,所以認慫了,為從,置為0:

 R5:發現自己的router id比R4大,所以嘚瑟了,為主,置為1,序列號+1

 

 

 主從設備選舉完后,設備的狀態從Exstart狀態變為Exchange狀態,從設備(R4)會使用主設備(R5)的序列號,發送攜帶摘要信息的DD報文。

如果R5從R4發送的摘要信息中發現存在本身沒有的LSA信息,則會向AR1發送LSR報文請求該LSA,此時狀態由exchange變為loading狀態。R4收到AR5的LSR請求報文,便會回復一個LSU報文攜帶AR2要請求的LSA明細信息。R5收到LSU報文同步完成后進入FULL狀態,並且向R5發送LSAck報文表示確定收到了LSU報文且同步完成,R4也會進入FULL狀態。該LSAck報文,就是因為OSPF是基於IP的,IP沒有確認機制,所以OSPF需要設置自身的確認機制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM