Hello包結(jié)構(gòu)及OSPF路由器形成鄰居的過程
發(fā)布時間:
2022-08-24
Hello包結(jié)構(gòu)及OSPF路由器形成鄰居的過程,運行OSPF路由協(xié)議的路由器之間使用周期性地發(fā)送Hello包的方法建立和維持鄰居關(guān)系。
在OSI參考模型的網(wǎng)絡(luò)層上,Hello包也是向多點廣播組224.0.0.5發(fā)送的。這個多點廣播組是所有運行OSPF路由協(xié)議的路由器都能夠識別的。
默認地,運行OSPF路由協(xié)議的路由器每10秒鐘發(fā)出一次Hello包,但是在NBMA類型的網(wǎng)絡(luò)里,路由器每30秒鐘發(fā)出一次Hello包。
圖1是Hello包的包頭結(jié)構(gòu)。
圖1 Hello包的包頭結(jié)構(gòu)
Hello包的包頭實際上是OSPF包的包頭,當OSPF包頭的TYPE部分被置位為1時,該包成為Hello包。
在Hello包的包頭里,包含路由器的標識及區(qū)域標識,這是必不可少的信息。路由器標識的作用在于讓其他路由器能夠識別自己。兩臺路由器只有區(qū)域標識相同才能成為鄰居。另外,如果我們在運行OSPF路由協(xié)議的路由器上配置了鄰居驗證,驗證的數(shù)據(jù)也會包含在Hello包的包頭里,如果驗證口令不匹配,兩臺路由器也不能成為鄰居。
圖2表示的是Hello包的內(nèi)容。
圖2 Hello包的內(nèi)容
在圖2中,Hello Interval是發(fā)出Hello包的時間間隔,Dead Interval是鄰居關(guān)系失效的時間,也就是在Dead Interval規(guī)定的時間里如果沒有收到Hello包,則鄰居關(guān)系失效。兩臺路由器只有Hello Interval和Dead Interval相同才能形成鄰居關(guān)系。
Router Priority是路由器的優(yōu)先級。通過交換Hello包,路由器能夠了解鄰居的優(yōu)先級和路由器標識的大小,從而能夠在廣播多路訪問網(wǎng)絡(luò)中選舉出DR和BDR。
一旦DR和BDR被選出,它們會出現(xiàn)在Hello包的內(nèi)容里。一臺路由器發(fā)出的Hello包里還包括了它的所有鄰居路由器的標識。如果路由器在它收到的Hello包里看到了自己的標識,則該路由器認為發(fā)送Hello包的路由器和自己是鄰居關(guān)系。
下面的圖3到圖9,表示了路由器之間形成鄰居關(guān)系及建立拓撲表和形成路由表的過程。
圖3 DOWN狀態(tài)
圖9 Full狀態(tài)
首先請看圖3。
如圖3所示,在使用OSPF路由協(xié)議的網(wǎng)絡(luò)還沒有運行的時候,路由器A和路由器B互相還沒有向?qū)Ψ桨l(fā)送任何信息,這時兩臺路由器互相不知道對方的存在,這種狀態(tài)是DOWN狀態(tài)。
當使用OSPF路由協(xié)議的網(wǎng)絡(luò)開始運行時,其中總會有一臺路由器首先發(fā)出Hello包,如圖4所示。
圖4 初始狀態(tài)
在圖4中,路由器A首先發(fā)出Hello包,路由器B收到該Hello包并且將路由器A的標識記入鄰居表,這個狀態(tài)是初始狀態(tài)。
路由器B認識了路由器A之后,也會向路由器A發(fā)出Hello包,如圖5所示。
圖5 Two-Way狀態(tài)
在圖5中,路由器B也發(fā)出Hello包,其中不但有路由器B的標識,還有它所認識的鄰居的標識。路由器A收到該Hello包后,也會把路由器B的標識記入鄰居表。這時,兩臺路由器的鄰居表里都有了對方的信息,鄰居關(guān)系形成,這個狀態(tài)是Two-Wa y狀態(tài)。
由于兩臺路由器是使用以太線連接的,也就是說它們工作在廣播多路訪問網(wǎng)絡(luò)中,而不是點對點網(wǎng)絡(luò),所以,在形成鄰居關(guān)系之后要選舉DR,如圖6所示。
圖6 Exstart狀態(tài)
從圖6中我們可以看到,路由器A和路由器B通過互相交換Hello包比較兩者的優(yōu)先級和路由器標識。優(yōu)先級高的路由器將成為DR。如果優(yōu)先級相同,則路由器標識大的路由器成為DR。
在圖6中,兩臺路由器的優(yōu)先級都是默認的,是相同的,所以路由器標識較大的B路由器成為了DR。
這個過程是Exstart狀態(tài)。
選舉出DR之后,由DR首先向非DR發(fā)送網(wǎng)絡(luò)拓撲信息,然后非DR再把自己所知道的網(wǎng)絡(luò)拓撲信息發(fā)送給DR,如圖7所示。
圖7 Exchange狀態(tài)
路由器交換鏈路狀態(tài)信息的過程是Exchange狀態(tài)。
在這個過程中交換的是鏈路狀態(tài)數(shù)據(jù)庫的匯總信息。如果路由器A對某一條鏈路的信息不清楚,可以要求DR發(fā)送關(guān)于該鏈路的完整信息。
在圖8中,DR應(yīng)路由器A的請求,發(fā)送出某條鏈路的完整信息,這是Loading狀態(tài)。

圖8 Loading狀態(tài)
當Loading狀態(tài)結(jié)束時,路由器已經(jīng)學習到了完整的網(wǎng)絡(luò)拓撲,這個時候是Full狀態(tài),如圖9所示。
只有當達到了Full狀態(tài)的時候,運行OSPF路由協(xié)議的路由器才會從拓撲表里計算出路由表。在達到Full狀態(tài)之前,路由器沒有路由能力。
上一篇:
EIGRP路由協(xié)議與IGRP路由協(xié)議的比較
下一篇:
OSPF路由協(xié)議概述