OSPF路由協議新手指南
路由協議的種類繁多是每一個協議學習者都知道的。那么今天我們就來認識一下OSPF路由協議。這個協議的使用彌補了RIP協議的不足,更能適應現在大規模的異構網絡的鏈接。
OSPF路由協議
20世紀80年代中期,RIP已不能適應大規模異構網絡的互連,OSPF(Open Shortest Path First,開放最短路徑優先)路由協議隨之產生。它是網間工程任務組織(1ETF)的內部網關協議工作組為IP網絡而開發的一種路由協議。
1.OSPF路由協議簡介
OSPF是一種基于鏈路狀態的路由協議,需要每個路由器向其同一管理域的所有其他路由器發送鏈路狀態廣播信息。在OSPF的鏈路狀態廣播中包括所有接口信息、所有的量度和其他一些變量。利用OSPF的路由器首先必須收集有關的鏈路狀態信息,并根據一定的算法計算出到每個節點的最短路徑。而基于距離向量的路由協議僅向其鄰接路由器發送有關路由更新信息。
開放最短路由優先協議OSPF是IETF組織開發的一個基于鏈路狀態的內部網關協議。目前使用的是版本2(RFC2328),其特性如下:
適應范圍。支持各種規模的網絡,最多可支持幾百臺路由器。
快速收斂。在網絡的拓撲結構發生變化后立即發送更新報文,使這一變化在自治系統中同步。
無自環。由于OSPF根據收集到的鏈路狀態用最短路徑樹算法計算路由,從算法本身保證了不會生成自環路由。
區域劃分。允許自治系統的網絡被劃分成區域來管理,區域間傳送的路由信息被進一步抽象,從而減少了占用的網絡帶寬。
等值路由。支持到同一目的地址的多條等值路由。
路由分級。使用4類不同的路由,按優先順序來說分別是:區域內路由、區域間路由、第1類外部路由、
第2類外部路由。
支持驗證。支持基于接口的報文驗證以保證路由計算的安全性。
組播發送。支持組播地址。#p#
2.OSPF路由協議計算過程
每個支持OSPF協議的路由器都維護著一份描述整個自治系統拓撲結構的鏈路狀態數據庫LSDB(Link State Database)。每臺路由器根據自己周圍的網絡拓撲結構生成鏈路狀態廣播LSA(Link State Advertisement),通過相互之間發送協議報文將LSA發送給網絡中其他路由器。這樣每臺路由器都收到了其他路由器的LSA,所有的LSA放在一起便組成了鏈路狀態數據庫。
OSPF路由協議利用鏈路狀態算法建立和計算到每個目標網絡的最短路徑,該算法本身十分復雜,下面簡單、概括地描述了鏈路狀態算法工作的總體過程:
初始化階段,路由器將產生鏈路狀態通告,該鏈路狀態通告包含了該路由器全部鏈路狀態。
所有路由器通過組播的方式交換鏈路狀態信息,每臺路由器接收到鏈路狀態更新報文時,將拷貝一份到本地數據庫,然后再傳播給其他路由器。
當每臺路由器都有一份完整的鏈路狀態數據庫時,路由器應用算法針對所有目標網絡計算最短路徑樹,結果內容包括:目標網絡、下一跳地址、花費,是IP路由表的關鍵部分。
如果沒有鏈路花費、網絡增刪變化,OSPF將會十分安靜,如果網絡發生了任何變化,OSPF通過鏈路狀態進行通告,但只通告變化的鏈路狀態,變化涉及到的路由器將重新運行算法,生成新的最短路徑樹。
每臺路由器都使用算法計算出一棵以自己為根的最短路徑樹,這棵樹給出了到自治系統中各節點的路由,外部路由信息為葉子節點,外部路由可由廣播它的路由器進行標記以記錄關于自治系統的額外信息。顯然,各個路由器各自得到的路由表是不同的。
此外,OSPF路由協議為使每臺路由器能將本地狀態信息(如可用接口信息、可達鄰居信息等)廣播到整個自治系統中,在路由器之間要建立多個鄰接關系,這使得任何一臺路由器的路由變化都會導致多次傳遞,既沒有必要,也浪費了寶貴的帶寬資源。為解決這一問題,OSPF協議定義了“指定路由器"DR(Designated Router),所有路由器都只將信息發送給DR,由DR將網絡鏈路狀態廣播出去。這樣就減少了多址訪問網絡上各路由器之間鄰接關系的數量。