淺談路由協定的分類與特性

2008-05-27
路由(Routing)是將網路封包決定要如何送往外部網路到達目的地的過程。一般而言,路由器為了維護路由資訊,通常會使用路由協定。而路由協定非常複雜,種類也多,為了管理Router以達到企業內部的網路路由,第一步就是要了解路由協定的種類與詳細運作過程。這個專欄從本篇開始將會陸續介紹各種Cisco Router所使用的知識給各位讀者。

路由簡介

Router最主要的工作就是決定要將網路封包送往何處,而為了達到這樣的目的,Router至少必須做到知道目的端的位址在哪裡、標示出來源端的位址並學習、尋找這個封包可能要送往的路徑有哪些、從可能的路徑中選出最佳路徑以及維護並更新這些路由所需的資料等事情。

當然,一般網路架構中免不了一定會有很多台Router設備,為了讓下圖中的10.120.2.0與172.16.1.0能找到路徑互相傳遞資料封包,中間的Router設備就必須互相「分享」所學習到的資料,加上可以得知本地端Router設備所直接連接到的終端設備,就可以形成一個表格,稱之為Routing Table。此Routing Tabl即可收集並整理出所有路由所需的資訊。

假設Router A與10.120.2.0這台電腦直接連接,若172.16.1.0曾經送封包經過Router A,則Router A會知道172.16.1.0這台電腦位於Router A的右邊介面,假設Router A右邊的介面為S0,左邊為E0,則Router A的Routing Table如下表所示:

@表1 Routing Table所記錄的路由資訊

網路連接情況 目的端位址 出口介面

Connected 10.120.2.0 E0

Learned 172.16.1.0 S0

在Router A中,會把從其他Router傳過來的路由資訊紀錄在自己的Routing Table之中。而針對那些直接連接於Router A的電腦,當然對於Router A來說,它已經可以確認每一台電腦可以透過哪些介面到達,因此,Router A會直接把所有直接連接到Router A的電腦與介面的對應關係輸入到Routing Table之中,換句話說,那些沒有直接連接到Router A上的電腦與介面的對應關係,一定要透過別台Router設備來學習而得知,或是由管理人員手動輸入。

靜態路由與動態路由

Router設備會根據Routing Table的資料來決定如何轉發資料封包,有兩種方式可以得知其他電腦與這台Router設備介面的對應關係,第一種方式就是由管理人員手動輸入,這種方式也稱為靜態路由(Static Route)。而另一種方式就是透過其他Router設備來學習,學習的方式就是透過路由協定(Routing Protocol)來交換資訊。Routing Protocol也是學習Router設備相關知識最重要的一環,不同的Routing Protocol有不同的使用時機,其運作方式也不盡相同,這種經過學習而建立出來的路由資訊,就稱為動態路由(Dynamic Route)。

▓靜態路由(Static Route)

靜態路由必須由管理人員手動輸入,好處是速度很快,不需要經過學習。但是缺點就是網路拓撲若有任何的改變,管理人員必須更新資料到Router設備之中,比較麻煩,也耗費人力,必須有個很好的維護能力才行。這種方式比較適合幾乎不會有變動的網路拓撲。

▓動態路由(Dynamic Route)

動態路由就不需要手動輸入,比較屬於Worry-Free的類型,一切的工作都交給Router設備之間去協調,互相交換並學習。管理人員只要做Routing Protocol的設定即可,但是這種方式比較耗費系統資源,速度也稍微慢。

靜態路由的設定

一般來說,靜態路由會使用在連接stub network之間的連線,stub network指的是只能透過單一路由路徑連接的網路,因此有時候也稱為leaf node。此外,靜態路由也常常被使用在指定預設閘道上,讓不知道要送往哪裡的網路封包送到預設閘道。使用在這些地方是因為這些設備的設定比較不容易變更,因此若使用靜態路由將可以節省不必要的學習過程。下面的網路架構圖,可以說明靜態路由的設定方式。

在網路架構圖中,若要在Router A上面設定可以透過Router A的S0介面到達172.16.1.0的子網路,可以採用靜態路由的方式。另外,筆者也打算用靜態路由的方式,在Router B上面設定要讓Router B知道若要從172.16.1.0這個Stub Network連到外面的網路的話,可以透過Router A來達成。

設定靜態路由

首先,先設定Router A設備的靜態路由,其設定靜態路由的語法是如下所示:

R_A(config)#ip route 172.16.1.0 255.255.255.0 172.16.2.1

其中,靜態路由指令的關鍵字是「ip route」,後面的172.16.1.0代表這筆靜態路由的目的地的網路IP位址。接著,255.255.255.0就是這個目的地子網路的網路遮罩,而最後的172.16.2.1則代表為了到達目的地而要經過的下一台Router設備的IP位址,因為Router A以及Router B位於同一個網路區段之內,所以對於Router A而言,Router B的IP位址是172.16.2.1,對於Router A前往172.16.1.0網路區段而言,Router B就是下一台Router設備。因此,Router B的IP位址需要設定。

如此一來,當Router A拿到一個要送往172.16.1.0子網路的封包時,Router A就會知道要把這個封包送給哪一個Router設備轉送。雖然對於Router A而言,要到達172.16.1.0子網路可能要經過很多很多台Router設備,但是,Router A不需要記錄下來每一台位於路途中的Router設備,只要知道「下一台」是誰就好了,至於接下來要再轉送給誰,那就是下一台Router設備的責任啦。

需要注意的是,設定靜態路由是在Global Configuration模式下執行的,因為這個靜態路由資訊是針對整台Router設備,並非在其他模式中設定。若要把這筆靜態路由設定成為「永久存在」,亦即介面都關掉了,也要讓這筆靜態路由存在的話,可以在指令的最後面加上「permanent」關鍵字,如下所示:

R_A(config)#ip route 172.16.1.0 255.255.255.0 172.16.2.1 permanent

靜態路由通常會用來做類似上面的用途,簡單來說,就是針對那些並非直接連接到這台Router設備的網路,手動增加路由資訊。但是必須注意的是,針對這種單一連線(Uni-directional)的靜態路由,其設定必須是連線的兩端都要設定才行。(完整精采內容請見網管人第10期)


追蹤我們Featrue us

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

我知道了!