定義
OSPF路由協定是一種典型的鏈路狀態(Link-state)的路由協定,一般用於同一個路由域內。在這裡,
路由域是指一個
自治系統(Autonomous System),即AS,它是指一組通過統一的路由政策或路由協定互相交換路由信息的網路。在這個AS中,所有的OSPF
路由器都維護一個相同的描述這個AS結構的資料庫,該資料庫中存放的是路由域中相應鏈路的狀態信息,OSPF路由器正是通過這個資料庫計算出其OSPF路由表的。
作為一種鏈路狀態的
路由協定,OSPF將鏈路狀態組播數據LSA(Link State Advertisement)傳送給在某一區域內的所有路由器,這一點與距離
矢量路由協定不同。運行距離矢量路由協定的路由器是將部分或全部的
路由表傳遞給與其相鄰的路由器。
在信息交換的安全性上,OSPF規定了路由器之間的任何信息交換在必要時都可以經過認證或鑑別(Authentication),以保證只有可信的路由器之間才能傳播選路信息。OSPF支持多種鑑別機制,並且允許各個區域間採用不同的鑑別機制。OSPF對鏈路狀態算法在廣播式網路(如乙太網)中的套用進行了最佳化,以儘可能地利用硬體廣播能力來傳遞鏈路狀態報文。通常鏈路狀態算法的拓撲圖中一個結點代表一個路由器。若K個路由器都連線到乙太網上,在廣播鏈路狀態時,關於這K個路由器的報文將達到K的平方個。為此,OSPF在拓撲結構圖允許一個結點代表一個廣播網路。每個廣播網路上所有路由器傳送鏈路狀態報文,報告該網路中的路由器的鏈路狀態。
工作原理
OSPF的簡單說就是兩個相鄰的
路由器通過發報文的形式成為鄰居關係,鄰居再相互傳送鏈路狀態信息形成鄰接關係,之後各自根據最短路徑算法算出路由,放在OSPF路由表,OSPF路由與其他路由比較後優的加入全局路由表。整個過程使用了五種報文、三個階段、四張表。
五種報文
Hello報文:建立並維護鄰居關係。
DBD報文:傳送鏈路狀態頭部信息。
LSR報文:把從DBD中找出需要的鏈路狀態頭部信息傳給鄰居,請求完整信息。
LSU報文:將LSR請求的頭部信息對應的完整信息發給鄰居。
LSACK:收到LSU報文後確認該報文。
三個階段
鄰居發現:通過傳送Hello報文形成鄰居關係。
路由通告:鄰居間傳送鏈路狀態信息形成鄰接關係。
路由計算:根據最短路徑算法算出路由表。
四張表
鄰居表:主要記錄形成鄰居關係路由器。
鏈路狀態資料庫:記錄鏈路狀態信息。
OSPF路由表:通過鏈路狀態資料庫得出。
全局路由表:OSPF路由與其他比較得出。
工作過程
(1)了解自身鏈路
每台路由器了解其自身的鏈路,即與其直連的網路。
(2)尋找鄰居
不同於RIP,OSPF協定運行後,並不立即向網路廣播路由信息,而是先尋找網路中可與自己交換鏈路狀態信息的周邊路由器。可以互動鏈路狀態信息的路由器互為鄰居。
(3)創建鏈路狀態數據包
路由器一旦建立了鄰居關係,就可以創建鏈路狀態數據包。
(4)鏈路狀態信息傳遞
路由器將描述鏈路狀態的LSA泛洪到鄰居,最終形成包含網路完整鏈路狀態信息的鏈路狀態資料庫。
(5)計算路由
路由區域內的每台路由器都可以使用SPF算法來獨立計算路由。
OSPF協定主要優點
(1)OSPF 適合在大範圍的
網路:OSPF 協定當中對於
路由的跳數,它是沒有限制的,所以 OSPF 協定能用在許多場合,同時也支持更加廣泛的網路規模。只要是在組播的網路中,OSPF協定能夠支持數十台路由器一起運作。
(2)組播觸髮式更新:OSPF 協定在收斂完成後,會以觸發方式傳送
拓撲變化的信息給其他路由器,這樣就可以減少網路寬頻的利用率;同時,可以減小干擾,特別是在使用組播網路結構,對外發出信息時,它對其他設備不構成其他影響
(3)收斂速度快:如果網路結構出現改變,OSPF 協定的系統會以最快的速度發出新的報文,從而使新的拓撲情況很快擴散到整個網路;而且,OSPF 採用周期較短的 HELLO 報文來維護鄰居狀態。
(4)以開銷作為度量值:OSPF 協定在設計時,就考慮到了
鏈路頻寬對路由度量值的影響。OSPF 協定是以開銷值作為標準,而鏈路開銷和鏈路頻寬,正好形成了反比的關係,頻寬越是高,開銷就會越小,這樣一來,OSPF 選路主要基於
頻寬因素。
(5)OSPF 協定的設計是為了避免路由環路:在使用最短路徑的算法下,收到路由中的鏈路狀態,然後生成路徑,這樣不會產生環路。
(6)套用廣泛:目前廣泛的套用在網際網路上,其他會有大量的套用實例。證明這是使用最廣泛的IGP 之一。
OSPF區域
OSPF 中劃分區域的目的就是在於控制鏈路狀態信息
LSA 泛洪的範圍、減小鏈路狀態資料庫
LSDB的大小、改善網路的可擴展性、達到快速地收斂。
當網路中包含多個區域時,OSPF 協定有特殊的規定,即其中必須有一個 Area 0,通常也叫做骨幹區域(Backbone Area),當設計 OSPF 網路時,一個很好的方法就是從骨幹區域開始,然後再擴展到其他區域。骨幹區域在所有其他區域的中心,即所有區域都必須與骨幹區域物理或邏輯上相連,這種設計思想的原因是 OSPF 協定要把所有區域的路由信息引入骨幹區,然後再依次將路由信息從骨幹區域分發到其它區域中。
OSPF 將區域劃分為幾種類型。
骨幹區域 :作為中央實體,其他區域與之相連,骨幹區域編號為 0,在該區域中,各種類型的 LSA 均允許發布。
標準區域 :除骨幹區域外的默認的區域類型,在該類型區域中,各種類型的 LSA 均允許發布。
末梢區域 :即
STUB 區域,該類型區域中不接受關於 AS外部的路由信息,即不接受類型 5 的 AS 外部LSA,需要路由到自治系統外部的網路時,路由器使用
預設路由(0.0.0.0),末梢區域中不能包含有自治系統邊界路由器 ASBR。
完全末梢區域 :該類型區域中不接受關於 AS 外部的路由信息,同時也不接受來自 AS 中其他區域的匯總路由,即不接受類型 3、類型 4、類型 5 的 LSA,完全末梢區域也不能包換有自治系統邊界
路由器 ASBR。