鏈路狀態通告 路由器 OSPF LSA 拓撲 網路

認識OSPF路由協定 活用相關指令設定參數值

2017-06-06
這裡將說明何謂鏈路狀態通告技術,並示範怎樣使用OSPF路由協定,以及如何顯示OSPF路由協定的各種設定值,並且拿OSPF路由協定與其他協定比較,找出該協定的特色所在。

何謂鏈路狀態通告

鏈路狀態通告的英文是Link-State Advertisement(以下通稱LSA)。Link係指路由器設備的介面,而State則是指這個介面的「敘述」以及這個介面與鄰近設備的關係。所謂「敘述」(Description),是包含這個介面的IP位址、子網路遮罩、所連接的網路型態等等的相關資訊,這些State和Link的相關資料就是Link State資料庫中的資料,Link State資料庫也就是Topology Database。

使用OSPF路由協定的路由器會定期發送這樣的LSA封包,或是一旦路由器狀態發生變化時,也會發送這樣的LSA封包。一個LSA封包內包含了介面的資訊、所使用的網路路徑評判標準(Metric)以及其他相關的資訊。當然,關於路徑的選擇,OSPF路由協定是使用最短路徑優先演算法。

這裡提到Link State資料庫,也提到LSA的概念,因此可以很清楚地看出,Link State資料庫從同一個區域(Area)中的各個路由器收到LSA封包。所以,Link State資料庫就相當於各個路由器之間的網路架構圖,可以清楚描述出各個路由器之間的關係,從哪一個路由器到另一個路由器的最佳網路路徑是哪一條等等。也因此,事實上同一個區域中的所有路由器的Link State資料都是同一份,因為這些路由器同時分享這些路由資訊。

LSA更新的觸發時機

當網路發生問題時,Link-State路由演算法就會開始發送LSA網路封包,其發送的方法是透過群播(Multicast)的方式來對整個所在網路做發送的動作。當網路上所有套用Link-State路由演算法的路由器設備收到這樣的LSA封包後,會複製一份LSA給自己用,而這份LSA會拿來更新自己的網路拓撲資料庫的內容,然後再把原本的LSA轉發給其他鄰近的路由器設備。

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

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

最短路徑優先演算法

學過演算法的人應該都聽過「最短路徑優先演算法(Shortest Path First Algorithm)」,有時候會簡稱SPF演算法。這個演算法是以「最短路徑」為考量的前提下,計算出由某一台路由器設備到達其他各個路由器設備的最佳網路路徑。

計算的時候,這個演算法會利用一個樹狀結構來比較到達各個路由器設備的路徑距離,而每次計算時會把每一台路由器設備放到樹狀結構的最頂端,之後才開始進行比較的動作。如圖1所示。


▲圖1 網路規劃範例。

圖1中就是要計算以路由器A為起始點到達每一段網路的花費。藉由標示出各段網路路徑的成本,就可以知道從路由器A到達每一段網路的成本是多少,以便決定最佳的網路路徑。

例如,想從路由器A發送網路封包到220.110.8.0的網路區段,最好的路徑為:路由器A發送給路由器C,路由器C再發送給路由器B,接著路由器B再透過路由器D傳送資料到220.110.8.0的網路。因為從路由器A透過路由器C傳給路由器B,其成本只要5+5=10,若從路由器A直接發送給路由器B則成本要15。而OSPF路由協定計算各段網路成本的公式如下:


也就是10的8次方除以網路頻寬值,而網路頻寬值的單位是bps,由這個計算公式也可以輕易地看出如果網路速度越快,頻寬就越大,其公式中的分母就越大,成本就越小。相反地,網路慢的區段算出來的成本就會比較高。

OSPF路由協定的LSA封包會透過穩定的方式傳送到同一個區域中的各台路由器內,以便保證每一台路由器的資料都是相同的,每一台路由器設備會把這些資料儲存到自己的Topological Database中,然後每一台路由器設備再去計算屬於自己的路由資訊。計算時會將自己當作是演算法中的根節點(Root Node),也就是網路路徑的出發點來開始計算。這裡所提到的最短路徑優先演算法是採用Dijkstra演算法來計算的,雖然每一台路由器設備都會計算屬於自己的路徑,但是這些路由器設備所根據的資料都是相同的。

OSPF路由協定指令介紹

以下介紹OSPF路由協定的指令,以圖2的網路架構圖為例來說明。


▲圖2 網路架構範例。

圖2中,有A、B和C三台路由器,以及四段網路區段,分別是172.16.1.0/24、10.1.1.0/24、10.2.2.0/24以及192.168.1.0/24。假設要為以上這三台路由器A、B和C都設定成使用IGRP路由協定,則設定流程如下所述:

啟動OSPF路由協定

這裡先介紹單一區域(Single-Area)中如何設定OSPF路由協定,當然最重要的第一步驟就是先啟動OSPF路由協定,啟動指令如下:


這個指令的關鍵字是router ospf,後面接上的100指的是Process ID,這個Process ID用來指定這個路由計算的Process,該數字必須是單一獨特,可以是任意選擇的數字。同時,這個Process ID數字也不需要和其他使用OSPF路由協定的路由器設備上的Process ID相同。

設定OSPF路由協定連接的網路

第二步驟是設定路由器設備所連接的網路區段資訊。若要設定路由器A的相鄰網段,而因為路由器A附近的網段如圖3所示。


▲圖3 網路架構圖。

因此,應該執行如下的指令:



追蹤我們Featrue us

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

我知道了!