路由協定有很多種分類方式,依據所影響的範圍可以分成內部路由協定(IGP)和外部路由協定(EGP)兩大類型,而對內部路由協定而言,若依據所採用的路由演算法來區分,則有Distance Vector、Link State以及混合兩者的方法等三種主要類型,而本篇將介紹其中的Link-State路由演算法,並說明其重要特性。
各個路由器所扮演的角色
在這種雙層式網路架構中,各個路由器都扮演著許多不同的角色,而每種角色在OSPF路由協定和IS-IS路由協定中的名稱又不相同,以下就分別列出在這種網路架構中的各種路由器角色:
1. 在Backbone Area中,路由器C在OSPF路由協定中
就叫做Backbone Router,而在IS-IS路由協定內又稱為L2 Router。這種角色的路由器的工作就是提供不同Area之間的連接性。
2. 在Backbone Area內,Router B被稱為Autonomous
System Boundary Router(ASBR),也就是自治系統邊界路由器,是用來連接外部路由網域和自治系統。
3. 在Non-Backbone Area中,路由器D與路由器E在
OSPF路由協定中稱為Area Border Routers(ABRs),而在IS-IS路由協定中則被喚作L1/L2 Routers。這種路由器用於連接不同的Area,並維護所連接的Area的Link-State路由資料庫,當然也負責轉送封包到其他的Area內。
4.在Non-Backbone Area中,除了ABR(也就
是L1/L2 Routers)之外的其他路由器,在OSPF路由協定中都稱為Non-Backbone Internal Router,而在IS-IS路由協定中則稱作L1 Routers,因為這種路由器是接在Non-Backbone Area的內部,因此所接觸的網路只限於Non-Backbone Area內部,基於此項理由,這些路由器只需維護所屬之Area相對應的路由資料庫即可。
至於路由器A,當然是屬於其他的自治系統。另外,ABR會向內部Area中其他路由器發送預設路由設定,讓所有其他路由器的預設路由都指向ABR,如此一來,當Non-Backbone Internal Router要發送網路封包到其他Area時,就會送到ABR的手上。
Link-State路由演算法的優點
由於Link-State路由演算法是使用雙層式網路架構,這種網路架構最大的優點就是,因為分成多個獨立的Area,所以能夠減少Routing Table中的資料筆數,提升網路效能。
另一個優點就是,每個Area內的網路異常都不會影響其他Area網路的正常運作。所以如果拿Link-State路由演算法與一般傳統式的Distance Vector路由演算法來比較的話,Link-State路由演算法所具備的優點如下所列(這裡所取用的Distance Vector路由演算法的範例為RIPv1或RIPv2):
1. Link-State路由演算法根據實際的網路路徑成本來
考量並選擇出最佳網路路徑,而這樣的成本計算更能反映出網路路徑的好壞。
2. Link-State路由演算法的路由資料更新頻率比較不
那麼高。
3. Link-State路由演算法將網路區分成雙層式網路架
構,而在這種架構內也分成多個Area,因為在同一個Area中所發生的網路變動,並不會影響到其他Area,所以路由資料的更新範圍比較小。此外,網路改變所造成的影響也比較少,並不需要牽動到整個網路所有的路由器。
4. Link-State路由演算法可用最快的速度達到網路路
由收斂,因為當網路發生變化時,Link-State路由演算法可以馬上送出更新過後的網路狀況給同質性網路內的所有路由器,所以收斂速度自然比Distance Vector路由演算法快。
5. 因為每個路由器都有完整的網路路徑資料,所以事
實上不太可能會發生像Distance Vector那樣的路由迴圈(Routing Loop)狀況。
6. 之前所提到的LSA網路封包,其實裡面是有序號
的,其所具備的資料也是有時限性的,所以套用Link-State路由演算法的路由器會選擇最新的LSA封包,並參考其裡面的內容。
7. 若有優良的網路設計,就可以減少Link-State路由
演算法中網路拓撲資料庫的資料筆數,這樣就可以減少SPF演算法的計算次數,也能夠降低演算法所花費的時間。
8. Link-State路由演算法的網路設定一般而言還算蠻
簡單的,但也不會因為如此就失去它原有的能力。當套用到比較複雜的網路環境時,藉由調整Link-State路由演算法設定參數值,也可以讓設定比較複雜且具有彈性,換句話說,Link-State路由演算法適用於簡單的網路環境,也可以應用在複雜的網路環境。
9. 在疑難排解上,Link-State路由演算法也比Distance
Vector路由演算法來得更容易,這裡指的是當網路管理人員要做疑難排解時,不需要牽動到太多路由器設備,因為每一台路由器設備都擁有整個網路的路由資料。
Link-State路由演算法的缺點
雖然上面列出了不少Link-State路由演算法的優點,但Link-State路由演算法還是有許多的缺點,以下就來加以說明:
1. Link-State路由演算法要維護的資料較多,也比
較複雜,與Distance Vector路由演算法相較,Link-State路由演算法除了Routing Table外,還要維護網路拓撲資料庫(Topology Database)、鄰近設備資料庫(Adjacency Database)以及封包轉發資料庫(Forwarding Database),所以一旦網路環境較為複雜時,這些資料所佔用的記憶體就會很多,所以硬體設備的需求較大。
2. 因為Link-State路由演算法是使用Dijkstra的最短路
徑演算法來計算網路內的最短路徑,而這種演算法需要大量的CPU運算時間,所以當網路架構很龐大,或者擁有很複雜的網路架構時,Link-State路由演算法就會佔用許多CPU運算。此外,如果網路中經常發生設備不穩定或網路連線不穩的情況,就會造成Dijkstra演算法計算頻率升高,如此一來也會讓CPU使用率飆高。
3. 前面提到,因為Link-State路由演算法可能讓CPU
使用率飆漲,也會佔用大量記憶體,所以可能的解決方案就是盡可能地善用雙層式網路架構,並且切割成多個Area,如此一來,每個Area內的網路就會比較簡單,同一個Area中的Link-State路由演算法計算次數也會比較少,而且Routing Table以及各種資料庫內的資料筆數也會較少。但是,這樣的網路設計會有許多的限制,例如切割好的各個Area網路必須是連續性的,而且每個Area中的每一台路由器設備要永遠都能接收並且發送LSA網路封包到同一個Area中的其他路由器設備。此外,每個Area中的Area Border Router都必須能夠連接到Backbone Area上,不然的話,這個Area就沒有辦法與其他的Area做資料傳輸的動作。
4. 在複雜的網路架構中,雖然可以把Link-State路由
演算法的設定調整成能夠適用於複雜的網路,但是設定的方式相當麻煩,是一項相當大的挑戰。
5. 前面關於Link-State路由演算法優點的介紹中提
到,疑難排解會比較簡單,其理由不外乎是因為Link-State路由演算法會將整個網路的資訊全部儲存起來,所以對某一台路由器設備做疑難排解時,還不至於需要動用其他路由器設備,但由於資料多且複雜,所以必須對Link-State路由演算法有相當的了解,才能較順利地疑難排解。