OSPF協議的七個狀態機

2021-09-08 20:18:15 字數 2171 閱讀 6529

ospf採用spf演算法計算路由,從演算法上保證不會產生路由環路。基於鏈路狀態的。預設管理距離為110,使用ip資料報進行封閉,協議號89,組播位址為224.0.0.5(未選出了dr/bdr)和224.0.0.6(選出了dr/bdr)。

動態路由協議自帶備份功能。路由器通過路由表**資料。

ospf協議並不傳遞路由條目,而是傳遞鏈路狀態資訊,並根據該資訊來計算路由.

在乙個網路中,路由器採用相同協議情況下:一台路由器從兩個方向接收到去目的地,依靠頻寬決定(cost開銷值)

在乙個網路中,路由器採用不同協議情況下:一台路由器從兩個方向收到相同的目的地,比較管理距離(優先順序)

來看一下ospf的七個狀態。

看上圖:兩個路由器已開啟ospf的介面,但是沒有從鄰居收到任何資訊,這是down狀態,也是鄰居的初始狀態。

路由器之間通過互動問候(hello),建立和維護鄰居關係。(檢測對方還活著)

hello包的訊息格式

1、網路掩碼

是發生資料報的介面的掩碼。接收和發生必要一致,否則丟棄。

2 hello時間間隔

是指傳送hello資料報的以秒計算時間間隔。傳送和接收必須一致否則鄰居不能建立。

3路由器優先順序

用作選舉dr和bdr的。如果為0 ,表示不參與選舉。

4 路由器無效時間間隔

以秒計算的始發路由器等待鄰居傳送hello資料報的時長。

如果接收和傳送不等丟棄資料報,鄰居無法建立。

5 指定路由器

網路上指定路由器的介面ip。如果無設定0.0.0.0。

6 備份指定路由器

網路上指定備份路由器的介面ip。如果無設定0.0.0.0。

7 鄰居

在路由器無效時間間隔內收到的有效的鄰居的rid。

a傳送了hello包,b也收到了a的hello包,但是b發現這個包裡面沒有自己的router-id,雖然收到了hello包,但是裡面沒有自己的名字。這就是init狀態。

現在b也傳送乙個hello包給a,a收到了鄰居的hello包,並且在包裡面發現了自己的router-id,這就進入2-way狀態,雙向通訊狀態,形成鄰居關係。

在這階段會選舉dr/bdr,dr好比是山寨中的大哥,那bdr就是二哥,大哥掛了就由二哥頂替。那怎麼選舉呢?看優先順序,越大越優,優先順序相同,就比較router-id越大越優。

選舉dr

的作用:多路訪問中為了減少鄰接關係

選舉dr/bdr完成後,現在進入exstart,在這狀態每個路由器都會傳送dbd報文,根據dbd報文中的rout id,也是越大越優,此時選舉出master,確認主從關係。這個master是可以搶占的,如果後面加入進來的路由器(router-id)更優就會搶占成為管理員。

dbd作用

1、建立鄰接關係

2、不帶有lsa頭部的dd,用於選舉主從

3、帶有頭部的dd,用於交換鏈路狀態摘要訊息

master會安排dbd報文的傳送順序。大家看,在這兩個路由器中,b路由器的rout id較大,所以b路由器先傳送dbd報文,裡面攜帶它自己的鏈路狀態資料庫,其次路由器a也傳送dbd報文給b。從而交換鏈路狀態。

此時路由器a根據路由器b報文,發現鏈路狀態資料庫中缺失某條資訊,那a會發請求報文lsr,讓b把相應的資訊發給自己。b收到a發來的lsr請求後,把它要的資訊通過lsu更新報文發給a,傳送lsack確認報文。說已經收到了。a接收到了會儲存lsdb中,從而實現lsdb完全同步。

OSPF的七種狀態機

router id 在乙個ospf域內,用於標識每台路由器的id。選舉規則 1.手工指定 建議 2.如果沒有手工指定,使用loopback介面中最大的ip位址作為router id 3.如果沒有配置loopback介面,那麼使用物理介面中最大的ip位址作為router id 鏈路狀態資訊 鏈路資訊包...

OSPF的 8 狀態機

1 down 狀態 初始狀態,在nbma網路上,down狀態仍然可以靜態配置的鄰居傳送hello報文 2 attempt 狀態 此狀態只存在nbma網路中,沒有收到鄰居的任何資訊,但是週期性的向鄰居傳送報文,盡最大努力建立鄰居,每隔hello間隔就傳送hello報文。需要收到指定鄰居。3 init ...

OSPF的演算法及狀態機

open shortest path first spf演算法 圍繞該演算法計算路由資訊的協議open 指ietf發明的一種針對ip的路由協議 ospf的工作過程 建鄰居 傳資料 做計算 router id唯一標識乙個路由器,產生 ospf的建立鄰居方式 hello報文的作用 鏈路狀態資訊 不是資料...