Distance Vector Link State 路由協定 IGP EGP

正確選用內部路由協定 Link-State演算法簡介

2015-04-09
路由協定有很多種分類方式,依據所影響的範圍可以分成內部路由協定(IGP)和外部路由協定(EGP)兩大類型,而對內部路由協定而言,若依據所採用的路由演算法來區分,則有Distance Vector、Link State以及混合兩者的方法等三種主要類型,而本篇將介紹其中的Link-State路由演算法,並說明其重要特性。
Link-State路由演算法簡介

所謂的路由演算法,就是如何選擇網路路徑以便於發送網路封包。而Link-State路由演算法,其實是使用所謂的SPF(Shortest Path First,最短路徑優先)演算法來決定網路路徑,顧名思義,就是以最短的網路路徑為最佳網路路經的優先考量,Link-State路由演算法就是採用這種方式來維護其存放網路路徑的資料庫內容。

Link-State路由演算法的儲存資料

Link-State路由演算法會使用以下五種資訊來維護整個路由資訊:

· LSA(Link-State Advertisements)
· 網路拓撲資料庫(Topological Database)
· 最短路徑優先演算法(SPF)
· 最短路徑優先樹狀結構
· 存放網路路徑的Routing Table

其中,網路拓撲資料庫也被稱為Neighbor-ship Database,而最短路徑優先樹狀結構也被稱為Link-State Database,而最後用來存放網路路徑的Routing Table就相當於存放「最佳路徑」的地方。

經典的Link-State路由演算法有OSPF路由協定和IS-IS路由協定,其中OSPF的概念與相關詳細運作內容被定義在RFC 2328文件內,若有興趣可以前往閱讀,RFC 2328的連結網址為「http://www.ietf.org/rfc/rfc2328.txt」。

基本上,Link-State路由演算法會從其他路由器中收集整個網路的路徑資訊,也就是說,整個網路內所有的路由器會互相交換並傳遞所知的網路路徑資訊,到最後,網路中的每台路由器設備都會對整個網路有一定的了解,因此整個網路內的每一台路由器設備都會有整個網路的路徑表,等到收集好整個網路的路徑資訊後,每台路由器設備會自行計算屬於自己的「最佳網路路徑」,而這樣的資訊在各個路由器設備之間是不完全相同的。

事實上,Link-State路由演算法這樣的設計主要是用來彌補Distance Vector路由演算法的缺點。Link-State路由演算法能夠針對網路的變化做出比較快速的回應動作。

當網路有所變化時,Link-State路由演算法會發送更新過的網路路徑資訊,而平常的時候,Link-State路由演算法也會固定發送路徑更新資訊,預設上是每隔30秒發送一次。根據這樣的概念,時間久了之後,整個網路上所有的路由器設備之間的網路拓撲資料庫內容就能愈趨一致,因為資料會互相做同步的動作。

為何稱為Link-State路由演算法

為什麼要稱為Link-State路由演算法?其實這裡所指的Link是代表路由器設備的連接埠介面,而State所代表的是由某個介面連接到鄰近路由器設備的連線關係資訊。

此連線關係的資訊包含:連接埠介面上的IP位址、子網路遮罩、所連接的網路種類,以及所連接的鄰近路由器設備的資訊等等。這些Link和State所累積起來的資料,就是這裡所指的Link-State的意思,也是代表網路拓撲資料庫的內容。

網路拓撲資料庫是用來計算網路中的最佳網路路徑,計算方式是使用著名的Dijkstra SPF演算法,並且會建立SPF的樹狀結構,而最佳網路路徑會從SPF樹狀結構中選出,然後放到Routing Table內。

透過LSA封包同步路由資料

當網路發生問題時,Link-State路由演算法就會開始發送LSA網路封包,其發送的方法是透過群播(Multicast)的方式對整個所在網路做發送的動作。

當網路上所有套用Link-State路由演算法的路由器設備收到這樣的LSA封包後,會複製一份LSA給自己用,而這份LSA會拿來更新自己網路拓撲資料庫的內容,然後再把原本的LSA轉發給其他鄰近的路由器設備。

讀者可能會發現到,一旦有任何的路由器設備發送LSA封包出來,就會讓所有的路由器設備重新計算各自的網路路徑,更新其Routing Table,也因為這樣,所以單一網路內採用Link-State路由演算法的路由器設備最好不要太多,不然,一旦網路發生變化,就會迫使整個網路內的所有路由器設備都要重新計算Routing Table和最佳網路路徑等資料。

由於這樣的設計,因此所有使用Link-State路由演算法的路由器都會持有一份完整的網路拓撲資訊,當然也包含這些網路之間是如何連接等種種資料。另外,LSA的觸發是當網路變化時就會馬上送出,所以網路資料「收斂」速度比較快。

Link-State的雙層網路架構說明

Link-State路由演算法提供兩層式的網路架構環境,而在這兩層的網路架構內有兩個主要的構成元素:Area和Autonomous System。

Autonomous System又稱為自治系統,有時候也稱為Domain,一個自治系統包含一堆使用相同路由設定的網路,而一個自治系統可以分成多個Area。Area指的是一群連續的網路,多個Area可組合成一個自治系統。整個雙層式網路架構就如同圖1內所示。


▲圖1 雙層式網路架構圖。

在圖1內,中間的網路區段與下面兩個網路區段所形成的網路就是自治系統。在每個自治系統中,會有一個稱為Backbone Area的網路,這個Backbone Area是與外部路由網路互相連接的區段,也負責外部路由網路與自治系統內部其他網路的溝通,所以也就是Transition Area。除了Backbone Area外,自治系統中其他的網路區段就是Non-Backbone Area。

這裡必須注意的是,自治系統內所有的Non-Backbone Area都必須連接到Backbone Area上,而在OSPF路由協定中,Non-Backbone Area可以被設定成為Stub Area,或者設定為Stubby Area,也可設定成所謂的NSSA(Not-So-Stubby Area)網路,以便於降低Link-State路由演算法所需的資料庫大小,並且能夠減少Routing Table的資料筆數,進而提升網路整體的效能。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!