複製鏈接
請複製以下鏈接發送給好友

鏈路狀態路由協議

鎖定
鏈路狀態路由選擇協議又稱為最短路徑優先協議或分佈式數據庫協議,它基於Edsger Dijkstra的最短路徑優先(SPF)算法。 [1]  它比距離矢量路由協議複雜得多,但基本功能和配置卻很簡單,算法易理解。鏈路狀態協議從網絡或者網絡的限定區域內的所有其他路由器處收集信息,最終每個鏈路狀態路由器上都有一個相同的有關網絡的信息。並且每台路由器都可以獨立的計算各自的最優路徑。 [2] 
中文名
鏈路狀態路由協議
外文名
link state routing protocol
別    名
最短路徑優先協議
基礎算法
Edsger Dijkstra
定    義
最短路徑優先(SPF)算法

鏈路狀態路由協議路由協議

鏈路狀態路由協議是層次式的,網絡中的路由器並不向鄰居傳遞“路由項”,而是通告給鄰居一些鏈路狀態。與距離矢量路由協議相比,鏈路狀態協議對路由的計算方法有本質的差別。距離矢量協議是平面式的,所有的路由學習完全依靠鄰居,交換的是路由項。鏈路狀態協議只是通告給鄰居一些鏈路狀態。運行該路由協議的路由器不是簡單地從相鄰的路由器學習路由,而是把路由器分成區域,收集區域的所有的路由器的鏈路狀態信息,根據狀態信息生成網絡拓撲結構,每一個路由器再根據拓撲結構計算出路由。 [1] 

鏈路狀態路由協議工作過程

一、瞭解直連網絡
每台路由器瞭解其自身的鏈路(即與其直連的網絡)。這通過檢測哪些接口處於工作狀態(包括第3層地址)來完成。
對於鏈路狀態路由協議來説,直連鏈路就是路由器上的一個接口,與距離矢量協議靜態路由一樣,鏈路狀態路由協議也需要下列條件才能瞭解直連鏈路:正確配置了接口IP地址和子網掩碼並激活接口,並將接口包括在一條network語句中。
二、向鄰居發送Hello數據包
每台路由器負責“問候”直連網絡中的相鄰路由器。與EIGRP路由器相似,鏈路狀態路由器通過直連網絡中的其他鏈路狀態路由器互換Hello數據包來達到此目的。
路由器使用Hello協議來發現其鏈路上的所有鄰居,形成一種鄰接關係,這裏的鄰居是指啓用了相同的鏈路狀態路由協議的其他任何路由器。這些小型Hello數據包持續在兩個鄰接的鄰居之間互換,以此實現“保持激活”功能來監控鄰居的狀態。如果路由器不再收到某鄰居的Hello數據包,則認為該鄰居已無法到達,該鄰接關係破裂。
三、建立鏈路狀態數據包
每台路由器創建一個鏈路狀態數據包(LSP),其中包含與該路由器直連的每條鏈路的狀態。這通過記錄每個鄰居的所有相關信息,包括鄰居ID、鏈路類型和帶寬來完成。一旦建立了鄰接關係,即可創建LSP,並僅向建立鄰接關係的路由器發送LSP。LSP中包含與該鏈路相關的鏈路狀態信息、序列號、過期信息。
四、將鏈路狀態數據包泛洪給鄰居
每台路由器將LSP泛洪到所有鄰居,然後鄰居將收到的所有LSP存儲到數據庫中。接着,各個鄰居將LSP泛洪給自己的鄰居,直到區域中的所有路由器均收到那些LSP為止。每台路由器會在本地數據庫中存儲鄰居發來的LSP的副本。
路由器將其鏈路狀態信息泛洪到路由區域內的其他所有鏈路狀態路由器,它一旦收到來自鄰居的LSP,不經過中間計算,立即將這個LSP從除接收該LSP的接口以外的所有接口發出,此過程在整個路由區域內的所有路由器上形成LSP的泛洪效應。距離矢量路由協議則不同,它必須首先運行貝爾曼-福特算法來處理路由更新,然後才將它們發送給其他路由器;而鏈路狀態路由協議則在泛洪完成後再計算SPF算法,因此達到收斂狀態的速度比距離矢量路由協議快得多。LSP在路由器初始啓動期間、或路由協議過程啓動期間、或在每次拓撲發生更改(包括鏈路接通或斷開)時、或是鄰接關係建立、破裂時發送,並不需要定期發送。
五、構建鏈路狀態數據庫
每台路由器使用數據庫構建一個完整的拓撲圖並計算通向每個目的網絡的最佳路徑。就像擁有了地圖一樣,路由器現在擁有關於拓撲中所有目的地以及通向各個目的地的路由的詳圖。SPF算法用於構建該拓撲圖並確定通向每個網絡的最佳路徑。所有的路由器將會有共同的拓撲圖或拓撲樹,但是每一個路由器獨立確定到達拓撲內每一個網絡的最佳路徑。
在使用鏈路狀態泛洪過程將自身的LSP傳播出去後,每台路由器都將擁有來自整個路由區域內所有鏈路狀態路由器的LSP,都可以使用SPF算法來構建SPF樹。這些LSP存儲在鏈路狀態數據庫中。有了完整的鏈路狀態數據庫,即可使用該數據庫和最短路徑優先(SPF)算法來計算通向每個網絡的首選(即最短)路徑。 [2-3] 

鏈路狀態路由協議協議優點

與距離矢量路由協議相比,有如下優點:

鏈路狀態路由協議創建拓撲圖

鏈路狀態路由協議會創建拓撲圖,即SPF樹,而距離矢量路由協議沒有網絡的拓撲圖,僅有一個網絡列表,其中列出了通往各個網絡的開銷(距離)和下一跳路由器(方向)。因為鏈路狀態路由協議會交換鏈路狀態信息,所以SPF算法可以構建網絡的SPF樹,有了SPF樹,路由器可獨立確定通向每個網絡的最短路徑。

鏈路狀態路由協議快速收斂

有幾個原因使得鏈路狀態路由協議比距離矢量路由協議具有更快的收斂速度。收到一個鏈路狀態數據包(LSP)後鏈路狀態路由協議便立即將該LSP從除接收該LSP的接口以外的所有接口泛洪出去。使用距離矢量路由協議的路由器需要處理每個路由更新,並且在更新完路由表後才能將更新從路由器接口泛洪出去,即使對觸發更新也是如此。因此鏈路狀態路由協議可更快達到收斂狀態。不過EIGRP是一個明顯的例外。

鏈路狀態路由協議事件驅動更新

在初始LSP泛洪之後,鏈路狀態路由協議僅在拓撲發生改變時才發出LSP。該LSP僅包含受影響鏈路的信息。與某些距離矢量路由協議不同的是,鏈路狀態路由協議不會定期發送更新。

鏈路狀態路由協議層次式設計

鏈路狀態路由協議,如OSPF和IS-IS使用了區域的概念。多個區域形成了層次化的網絡結構,這有利於路由聚合(彙總),還便於將路由問題隔離在一個區域內。 [2]  [4] 

鏈路狀態路由協議協議要求

現代鏈路狀態路由協議設計旨在儘量降低對內存、CPU和帶寬的影響。使用並配置多個區域可減小鏈路狀態數據庫。劃分多個區域還可限制在路由域內泛洪的鏈路狀態信息的數量,並可僅將LSP發送給所需的路由器 [1] 

鏈路狀態路由協議內存要求

與距離矢量路由協議相比,鏈路狀態路由協議通常需要佔用更多的內存、CPU處理時間和帶寬。對內存的要求源於鏈路狀態數據庫的使用和創建SPF樹的需要。

鏈路狀態路由協議處理器要求

與距離矢量路由協議相比,鏈路狀態路由協議可能還需要佔用更多的CPU處理時間。與Bellman-Ford等距離矢量算法相比,SPF算法需要更多的CPU處理時間,因為鏈路狀態路由協議會創建完整的拓撲圖。

鏈路狀態路由協議帶寬要求

鏈路狀態數據包泛洪會對網絡的可用帶寬產生負面影響。這應該只出現在路由器初始啓動過程中,但在不穩定的網絡中也可能導致問題。

鏈路狀態路由協議協議比較

如今,用於IP路由的鏈路狀態路由協議有兩種。
最短路徑優先(OSPF)
OSPF由IETF的OSPF工作組設計,OSPF的開發始於1987年,如今正在使用的有OSPFv2和OSPFv3兩個版本。OSPF的大部分工作由John Moy完成。
中間系統到中間系統(IS-IS)
IS-IS由ISO設計的,它的雛形由DEC開發,名為DECnet Phase V,首席設計師是Radia Perlman.
IS-IS最初是為OSI協議簇而非TCP/IP協議簇而設計的,後來,集成化IS-IS,即雙IS-IS添加了對IP網絡的支持,儘管IS-IS路由協議一直主要供ISP和電信公司使用,但已有越來越多的企業開始使用IS-IS。
兩者既有很多共同點,也有很多不同之處。有很多分別擁護OSPF和IS-IS的派別,它們從未停止過對雙方優缺點的討論和爭辯。
ospf與is-is的相似之處
無類別;
使用鏈路狀態數據庫和Dijkstra算法
用Hello分組來建立和維護毗鄰關係;
用區域來組建層次化拓撲;支持區域間路由彙總;
在多路訪問型網絡中選舉指定路由器
鏈路狀態的表示方式、時效(aging)和度量值
更新,判斷和洪泛擴散;
收斂能力;
用與isp主幹網絡;
ospf與is-is的不同之處
is-is不會選舉BDR;
當有新的路由器加入時;isis會重新選舉;
每當DR發生改變時,就會洪泛一批新的LSA;
isis路由器和全部鄰接路由器都建立毗鄰關係,而不只和DR建立;
ospf與is-is區域間的其它不同之處
ospf基於一個主幹中心,其他區域都鏈接在主幹上(區域邊界落在ABR之內,每一條鏈路只屬於一個區域);
isis中區域邊界落在鏈路上(每一個isis路由器完全屬於一個第2層區域);
ospf單個區域支持50個路由器,isis支持100個;
ospf有更多特性,包括路由標籤、完全末梢區域、NSSA、以及虛擬鏈路。 [1] 
對於isis來説,區域邊界位於鏈路上,這樣可以顯著減少協議數據單元PDU(LSP)的使用,從而使一個區域中有更多的路由器。就cpu的使用效率和路由更新處理來説,isis更有效率,不僅是因為isis的鏈路狀態通告比ospf少,還因為isis添加和刪除前綴的操作比較少。isis對區域中的每台路由器只使用一個鏈路狀態分組,其中包括重發布前綴。使用默認定時器,isis比ospf更快的發現路由失效,從而收斂更快。isis中的定時器比ospf的更具可調性,所以能達到更精確的調節粒度。
參考資料
  • 1.    Rick Graziani Allan Johnson.思科網絡技術學院教程-路由協議和概念.北京:人民郵電出版社,2015.3
  • 2.    (美)阿齊茲,(美)馬蒂.IP路由協議疑難解析:人民郵電出版社,2013.7
  • 3.    尹淑玲.交換與路由技術教程:武漢大學出版社,2012.11
  • 4.    沈鑫剡.路由和交換技術 :清華大學出版社,2013.2