OSPF工作原理

2021-03-04 02:52:37 字數 1660 閱讀 8843

ospf是一種分層次的路由協議,其層次中最大的實體是as(自治系統),即遵循共同路由策略管理下的一部分網路實體。在每個as中,將網路劃分為不同的區域。每個區域都有自己特定的標識號。

對於主幹(backbone)區域,負責在區域之間分發鏈路狀態資訊。這種分層次的網路結構是根據ospf的實際提出來的。當網路中自治系統非常大時,網路拓撲資料庫的內容就更多,所以如果不分層次的話,一方面容易造成資料庫溢位,另一方面當網路中某一鏈路狀態發生變化時,會引起整個網路中每個節點都重新計算一遍自己的路由表,既浪費資源與時間,又會影響路由協議的效能(如聚合速度、穩定性、靈活性等)。

因此,需要把自治系統劃分為多個域,每個域內部維持本域一張唯一的拓撲結構圖,且各域根據自己的拓撲圖各自計算路由,域邊界路由器把各個域的內部路由總結後在域間擴散。這樣,當網路中的某條鏈路狀態發生變化時,此鏈路所在的域中的每個路由器重新計算本域路由表,而其它域中路由器只需修改其路由表中的相應條目而無須重新計算整個路由表,節省了計算路由表的時間。

ospf由兩個互相關聯的主要部分組成:「呼叫」協議和「可靠泛洪」機制。呼叫協議檢測鄰居並維護鄰接關係,可靠泛洪演算法可以確保統一域中的所有的ospf路由器始終具有一致的鏈路狀態資料庫,而該資料庫構成了對域的網路拓撲和鏈路狀態的對映。

鏈路狀態資料庫中每個條目稱為lsa(鏈路狀態通告),共有5種不同型別的lsa,路由器間交換資訊時就是交換這些lsa。每個路由器都維護乙個用於跟蹤網路鏈路狀態的資料庫,然後各路由器的路由選擇就是基於鏈路狀態,通過dijkastra演算法建立起來最短路徑樹,用該樹跟蹤系統中的每個目標的最短路徑。最後再通過計算域間路由、自治系統外部路由確定完整的路由表。

與此同時,ospf動態監視網路狀態,一旦發生變化則迅速擴散達到對網路拓撲的快速聚合,從而確定出新的網路路由表。

ospf的設計實現要涉及到指定路由器、備份指定路由器的選舉、協議包的接收、傳送、泛洪機制、路由表計算等一系列問題。本文僅就dijkstra演算法與路由表的計算進行討論。

二、dijkstra演算法

dijkstra演算法是路由表計算的依據,通過dijkstra演算法可以得到有關網路節點的最短路徑樹,r優先樹得到路由表。

1.dijkstra演算法的描述如下:

(1)初始化集合e,使之只包含源節點s,並初始化集合r,使之包含所有其它節點。初始化路徑列o,使其包含一段從s起始的路徑。這些路徑的長度值等於相應鏈路的量度值,並以遞增順序排列列表o。

(2)若列表o為空,或者o中第1個路徑長度為無窮大,則將r中所有剩餘節點標註為不可達,並終止演算法。

(3)首先尋找列表o中的最短路徑p,從o中刪除p。設v為p的最終節點。若v已在集合e中,繼續執行步驟2。否則,p為通往v的最短路徑。將v從r移至e。

(4)建立乙個與p相連並從v開始的所有鏈路構成的侯選路徑集合。這些路徑的長度是p的長度加上與p相連的長度。將這些新的鏈路插入有序表o中,並放置在其長度所對應的等級上。

繼續執行步驟2。

2.dijkstra演算法舉例:

下面我們以路由器a為例,來說明最短路徑樹的建立過程:

(1)路由器a找到了路由器b、c,將它們列入候選列表。

(2)從候選列表中找出最小代價項b,將b加入最短路徑樹並從候選列表中刪除。接著從b開始尋找,找到了d,將其放入候選列表。

(3)從列表中找出c,再由c又找到了d。但此時d的代價為4,所以不再加入候選列表。最後將d加入到最短路徑樹。此時候選列表為空,完成了最短路徑樹的計算。

三、ospf路由表的計算與實現

OSPF協議配置

實驗目的 1 了解和掌握ospf的原理 2 熟悉ospf的配置步驟 3 懂得如何配置ospf router id,了解dr bdr選舉過程 4 掌握hello interval的使用 5 學會使用ospf的authentication 實驗拓撲 實驗器材 如上圖,需用到路由器三颱,hub switc...

OSPF 協議總結

ospf的五個包 1 hello 9項內容,4個必要 2 dbd 資料庫描述資料報 主要描述始發路由器資料庫中的一些或者全部lsa資訊 主要包括介面的mtu,主從位ms,資料庫描述序列號等 3 lsr 鏈路狀態請求資料報 檢視收到的lsa是否在自己的資料庫,或是更新的lsa,如果是將向鄰居傳送請求 ...

OSPF綜合實驗

實驗課題 igp路由綜合實驗 實驗需求 1 ripv2 r1和r2之間啟用ripv2,並開啟md5認證 所有rip更新使用單播 2 ospf ospf區域規劃如圖所示,要求 每台路由器手工指定自己的lo0為router id area2中不能接收type5 lsa,r3產生一條預設路由 在r2和r3...