組播擴展OSPF

一個內部網關協議

OSPF(Open Shortest Path First開放式最短路徑優先)是一個內部網關協議(Interior Gateway Protocol,簡稱IGP),用於在單一自治系統(autonomous system,AS)內決策路由。是對鏈路狀態路由協議的一種實現,隸屬內部網關協議(IGP),故運作於自治系統內部。著名的迪克斯加演演算法被用來計算最短路徑樹。OSPF支持負載均衡和基於服務類型的選路,也支持多種路由形式,如特定主機路由和子網路由等。

工作過程


(1)了解自身鏈路
每台路由器了解其自身的鏈路,即與其直連的網路。
(2)尋找鄰居
不同於RIP,OSPF協議運行后,並不立即向網路廣播路由信息,而是先尋找網路中可與自己交換鏈路狀態信息的周邊路由器。可以交互鏈路狀態信息的路由器互為鄰居。
(3)創建鏈路狀態數據包
路由器一旦建立了鄰居關係,就可以創建鏈路狀態數據包。
(4)鏈路狀態信息傳遞
路由器將描述鏈路狀態的LSA泛洪到鄰居,最終形成包含網路完整鏈路狀態信息的鏈路狀態資料庫。
(5)計算路由
路由區域內的每台路由器都可以使用SPF演演算法來獨立計算路由。

工作原理


OSPF的簡單說就是兩個相鄰的路由器通過發報文的形式成為鄰居關係,鄰居再相互發送鏈路狀態信息形成鄰接關係,之後各自根據最短路徑演演算法算出路由,放在OSPF路由表,OSPF路由與其他路由比較后優的加入全局路由表。整個過程使用了五種報文、三個階段、四張表。

五種報文

Hello報文:建立並維護鄰居關係。
DBD報文:發送鏈路狀態頭部信息。
LSR報文:把從DBD中找出需要的鏈路狀態頭部信息傳給鄰居,請求完整信息。
LSU報文:將LSR請求的頭部信息對應的完整信息發給鄰居。
LSACK:收到LSU報文後確認該報文。
三個階段
鄰居發現:通過發送Hello報文形成鄰居關係。
路由通告:鄰居間發送鏈路狀態信息形成鄰接關係。
路由計算:根據最短路徑演演算法算出路由表。
四張表
鄰居表:主要記錄形成鄰居關係路由器。
鏈路狀態資料庫:記錄鏈路狀態信息。
OSPF路由表:通過鏈路狀態資料庫得出。
全局路由表:OSPF路由與其他比較得出。

定義


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路由器之間會將所有的鏈路狀態(LSA)相互交換,毫不保留,當網路規模達到一定程度時,LSA將形成一個龐大的資料庫,勢必會給OSPF計算帶來巨大的壓力;為了能夠降低OSPF計算的複雜程度,緩存計算壓力,OSPF採用分區域計算,將網路中所有OSPF路由器劃分成不同的區域,每個區域負責各自區域精確的LSA傳遞與路由計算,然後再將一個區域的LSA簡化和匯總之後轉發到另外一個區域,這樣一來,在區域內部,擁有網路精確的LSA,而在不同區域,則傳遞簡化的LSA。區域的劃分為了能夠盡量設計成無環網路,所以採用了Hub-Spoke的拓樸架構,也就是採用核心與分支的拓樸,如下圖:
區域的命名可以採用整數數字,如1、2、3、4,也可以採用IP地址的形式,0.0.0.1、0.0.0.2,因為採用了Hub-Spoke的架構,所以必須定義出一個核心,然後其它部分都與核心相連,OSPF的區域0就是所有區域的核心,稱為BackBone 區域(骨幹區域),而其它區域稱為Normal 區域(常規區域),在理論上,所有的常規區域應該直接和骨幹區域相連,常規區域只能和骨幹區域交換LSA,常規區域與常規區域之間即使直連也無法互換LSA,如上圖中Area 1、Area 2、Area 3、Area 4隻能和Area 0互換LSA,然後再由Area 0轉發,Area 0就像是一個中轉站,兩個常規區域需要交換LSA,只能先交給Area 0,再由Area 0轉發,而常規區域之間無法互相轉發。
OSPF區域是基於路由器的介面劃分的,而不是基於整台路由器劃分的,一台路由器可以屬於單個區域,也可以屬於多個區域,如下圖:
如果一台OSPF路由器屬於單個區域,即該路由器所有介面都屬於同一個區域,那麼這台路由器稱為Internal Router(IR),如上圖中的R2,R3和R4;如果一台OSPF路由器屬於多個區域,即該路由器的介面不都屬於一個區域,那麼這台路由器稱為Area Border Router (ABR),如上圖中的R1,ABR可以將一個區域的LSA匯總後轉發至另一個區域;如果一台OSPF路由器將外部路由協議重分佈進OSPF,那麼這台路由器稱為Autonomous System Boundary Router (ASBR),如上圖中,R5將EIGRP重分佈進OSPF,那麼R5就是ASBR,但是如果只是將OSPF重分佈進其它路由協議,則不能稱為ASBR。

網路類型


OSPF定義的5種網路類型:
● ● 點到點網路(point-to-point),由cisco提出的網路類型,自動發現鄰居,不選舉DR/BDR,hello時間10s。
1.1點到點網路,比如T1線路,是連接單獨的一對路由器的網路,點到點網路上的有效鄰居總是可以形成鄰接關係的,在這種網路上,OSPF包的目標地址使用的是224.0.0.5,這個組播地址稱為AllSPFRouters.
2.廣播型網路(broadcast),由cisco提出的網路類型,自動發現鄰居,選舉DR/BDR,hello時間10s。
3.非廣播型(NBMA)網路 (non-broadcast),由RFC提出的網路類型,手工配置鄰居,選舉DR/BDR,hello時間30s。
4.點到多點網路 (point-to-multipoint),由RFC提出,自動發現鄰居,不選舉DR/BDR,hello時間30s。
5.點到多點非廣播,由cisco提出的網路類型,手動配置鄰居,不選舉DR/BDR,hello時間30s。

OSPF協議主要優點


1、OSPF是真正的LOOP- FREE(無路由自環)路由協議。源自其演演算法本身的優點。(鏈路狀態及最短路徑樹演演算法)
2、OSPF收斂速度快:能夠在最短的時間內將路由變化傳遞到整個自治系統。
3、提出區域(area)劃分的概念,將自治系統劃分為不同區域后,通過區域之間的對路由信息的摘要,大大減少了需傳遞的路由信息數量。也使得路由信息不會隨網路規模的擴大而急劇膨脹。
4、將協議自身的開銷控制到最小。
5、通過嚴格劃分路由的級別(共分四極),提供更可信的路由選擇。
6、良好的安全性,ospf支持基於介面的明文及md5 驗證。
7、OSPF適應各種規模的網路,最多可達數千台。