先前已經介紹過RIP、IGRP和EIGRP等等路由演算法,接下來本文將說明OSPF路由協定。OSPF是以最短路徑為主的路由協定,全名是Open Shortest Path First。OSPF路由協定是屬於IGP(Interior Gateway Protocol)協定,而且也是Classless的Link State路由協定。
事實上,Link-State路由演算法這樣的設計,主要是用來彌補Distance Vector路由演算法的缺點。Link-State路由演算法能夠針對網路的變化做出比較快速的回應動作。
「最佳網路路徑」,而這樣的資訊在各個路由器設備之間是不完全相同的。
當網路有所變化的時候,Link-State路由演算法會發送更新過的網路路徑資訊。平常的時候,Link-State路由演算法也會固定發送路徑更新資訊,預設為每隔30秒做一次。
「最佳網路路徑」,而這樣的資訊在各個路由器設備之間是不完全相同的。
根據這樣的概念,當時間久了之後,整個網路中所有的路由器設備,彼此之間的網路拓撲資料庫內容就越趨近一致,因為會互相同步。
「最佳網路路徑」,而這樣的資訊在各個路由器設備之間是不完全相同的。
LSA(Link State Advertisement)
「最佳網路路徑」,而這樣的資訊在各個路由器設備之間是不完全相同的。
LSA是Link-State Advertisement的縮寫,Link係指路由器設備的介面,而State則是指這個介面的敘述以及這個介面與鄰近設備的關係。
所謂「敘述」(Description),是包含這個介面的IP位址、子網路遮罩、所連接的網路型態等等的相關資訊,這些State和Link的相關資料就是Link State資料庫內的資料,Link State資料庫也就是Topology Database。
使用OSPF路由協定的路由器會定期發送這樣的LSA封包,或者當路由器狀態發生變化時,也會發送這樣的LSA封包。
一個LSA封包中包含了介面的資訊、所使用的網路路徑評判標準(Metric)以及其他相關的資訊。當然,關於路徑的選擇,OSPF路由協定是採用最短路徑優先演算法(Shortest Path First Algorithm)。
這裡提到Link State資料庫,也說明了LSA的概念,各位讀者應該就可以很清楚地看出,Link State資料庫從同一個區域(Area)中的各個路由器收到LSA封包。
所以,Link State資料庫就相當於各個路由器之間的網路架構圖,能夠清楚描述出各個路由器間的關係,從哪一個路由器到另一個路由器的最佳網路路徑是哪一條等等。
事實上,同一個區域(Area)中的所有路由器的Link State資料都是同一份,因為這些路由器同時分享這些路由資訊。
LSA的觸發更新時機
當網路發生問題的時候,Link-State路由演算法就會開始發送LSA網路封包,其發送的方法是透過群播(Multicast)的方式來對整個所在網路做發送的動作。
當網路內所有套用Link-State路由演算法的路由器設備收到這樣的LSA封包後,會複製一份LSA給自己用,而這份LSA會拿來更新自己的網路拓撲資料庫的內容,然後再把原本的LSA轉發給其他鄰近的路由器設備。
讀者可能會發現到,一旦有任何的路由器設備發送LSA封包出來,就會讓所有的路由器設備重新計算它們各自的網路路徑,更新它們的Routing Table。
也因為這樣,所以單一網路之中採用Link-State
路由演算法的路由器設備最好不要太多,不然一旦網路發生變化,就會迫使整個網路的所有路由器設備都要重新計算Routing Table以及最佳網路路徑等資料。
也因為這樣的設計,因此所有使用Link-State路由演算法的路由器都會持有一份完整的網路拓撲資訊,當然包含這些網路之間是如何連接等種種資料。另外,LSA的觸發是當網路變化時就會馬上送出,所以網路資料「收斂」速度比較快。
OSPF路由協定的階層架構
OSPF路由協定提供兩層式的網路架構環境,而在這兩層的網路架構中,有兩個主要的構成元素: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的資料筆數,而提升網路整體的效能。
這些可能有點艱深,因為篇幅有限,這裡就暫時不多提。
各個路由器扮演的角色
在這種雙層式網路架構內,各個路由器都扮演著許多不同的角色,而每種角色在OSPF路由協定和IS-IS路由協定中的名稱又不相同。
以下就分別列出在這種網路架構中的各種路由器角色:
1.在Backbone Area內,路由器C在OSPF路由協定中稱為Backbone Router,而在IS-IS路由協定中又稱做L2 Router。這種角色的路由器的工作就是提供不同Area之間的連接性。