2013年1月20日 星期日

RIP路由協定 小型網路首選


易於管理且原理簡單
RIP路由協定 小型網路首選

路由協定種類非常多,但要選擇哪一種路由協定,有時候確實不是那麼容易。如果要管理的是屬於比較小型的網路,那選擇就會多很多,在這麼多的選擇之中哪一種最容易使用呢?這裡推薦使用RIP路由協定。

在路由協定中最常被使用的是RIP,因為它的發展歷史比較悠久,而且與其他路由協定相較之下簡單許多。這篇文章將介紹RIP路由協定的特性、RIPv1與RIPv2的差別,以及如何在Cisco路由器上啟動和設定動態路由協定、如何設定RIP路由協定和相關的疑難排解等等。

RIP路由協定簡介 

RIP是Routing Information Protocol的縮寫,RIP路由協定是採用Distance Vector路由演算法之一,是一個相當著名的路由協定,因為RIP路由協定使用相當廣泛。所謂的Distance Vector路由演算法,簡單來說,就是用方向與所必須經過的設備數目(Hops)來決定路徑,並且會在鄰近的路由器設備間將這些路徑資料互相分享。

RIP路由協定是最被廣泛使用的IGP協定 

RIP路由協定也是IGP協定的其中一種。什麼是IGP呢?這就要先了解什麼是自治系統(Autonomous System,AS)。

一個自治系統指的是所有處於同樣的管理網域(Administrative Domain)下所有網路的集合,而一個管理網域指的是主機、路由器與內部連接網路的集合,而這個集合是歸屬於同樣的管理下運作。

有些路由協定是運作在同一個自治系統中,而某些路由協定則是運作在不同的自治系統之間,若以運作於自治系統的內部與外部來區分路由協定的話,可以分成內部路由協定(Interior Gateway Protocol)與外部路由協定(Exterior Gateway Protocol)。內部路由協定簡稱為IGP,而外部路由協定則簡稱為EGP。

RIP路由協定採用Distance Vector演算法

RIP路由協定是採用Distance Vector的路由演算法,除了RIP路由協定外,IGRP路由協定也是使用Distance Vector路由演算法。而RIP路由協定選擇最佳路由的標準(Metric)就是網路路徑中所必須經過的設備數目(Hop Count),而且所有的路由器設備每隔30秒會互相傳送路由資訊的更新。因此,RIP路由協定有以下幾個特性:
1. RIP路由協定採用Distance Vector路由演算法。
2. 根據網路路徑所必須經過的設備數目來決定最佳網路路徑。
3. 一條網路路徑最多只能允許經過15個路由器設備。
4. 預設上,路由器設備會每隔30秒互相傳遞網路路由資訊的更新。
5. RIP路由協定支援Load Balancing功能,預設支援四條Load Balancing網路路徑,最多支援六條網路路徑。

具備Load Balancing功能

所謂的Load Balancing,就是在具有相同路徑選擇時,將網路流量平均分配到這些網路路徑上,以便達到網路流量平均分攤的效果,減少每一條網路路徑的負擔。


▲網路架構圖範例。

以上面這個網路架構圖為例,假設伺服器X想要傳送封包給伺服器Y,而它們所處的網路使用RIP路由協定。由圖中可看出,伺服器X要到達伺服器Y,必須經過三個路由器設備,但是可以經由路由器A→B→D的網路路徑,也可以經由路由器A→C→D這樣的網路路徑。

若有開啟Load Balancing功能,則由伺服器X到伺服器Y的網路流量會被分成兩條,分別走剛剛所說的兩種不同的網路路徑,這就是Load Balancing功能。RIP路由協定最多只能支援六條路徑。

RIPv1與RIPv2差異比較

RIP路由協定又分為RIPv1和RIPv2兩個版本,兩個版本的RIP路由協定也不盡相同。其中,RIPv1路由協定屬於Classful路由協定,RIPv2則屬於Classless的路由協定,也因為如此,RIPv1路由協定不會傳送子網路遮罩,而RIPv2路由協定會在更新路由資訊時傳送子網路遮罩。

因為沒有子網路遮罩的資訊,所以RIPv1路由協定無法支援不定長度子網路遮罩,而RIPv2路由協定則有支援。

在傳送的方式上,RIPv1是使用廣播(Broadcast)的方式傳送路由資訊的更新,RIPv2路由協定則使用群播(Multicast)的方式來傳送,其所使用的群播位址是224.0.0.9。RIPv1與RIPv2兩者的差異如下表所示。

RIPv1路由協定與RIPv2路由協定比較



Cisco的路由器設備同時支援RIPv1和RIPv2路由協定,但是本文為了避免讀者混淆,這裡若沒有詳細指明版本的話,都是統一泛指RIPv1路由協定。 

動態路由設定 

接下來介紹如何使用RIP路由協定到Cisco路由器上。首先要設定動態路由,因為RIP路由協定屬於動態路由,因此啟動動態路由也是第一要務。啟動動態路由的大致步驟如下:
1. 選擇所要使用的路由協定。
2. 指定IP網路區段,但是不指定子網路遮罩。
基本上,這樣的步驟不只應用在RIP路由協定的動態路由,也適用於其他路由協定,例如IGRP、EIGRP和OSPF路由協定等,但如果要用在OSPF路由協定,第二步驟就要指定子網路遮罩。在各個介面上也必須先做好每個介面所必須的設定,例如IP位址、網路位址、子網路遮罩等等。

這裡的第二步驟必須針對所設定的路由器之全部有直接連接的網路區段做相對應的設定,也就是說,如果所要設定的路由器連接在172.16.0.0網路區段和160.90.0.0網路區段之間,那麼第二步驟就必須針對這兩個網路區段做設定。相關的詳細步驟與指令介紹如下。

步驟一:選擇所要使用的路由協定

第一步驟是選擇要套用的路由協定,以RIP路由協定為例,其指令如下:

請注意,這個指令必須在Configuration Mode底下執行,而指令的關鍵字是router,後面接上所要套用的路由協定,其可允許的值為RIP、IGRP、EIGRP或OSPF,大小寫都可以。

這個指令後面還可以再接上一些其他設定,例如若套用的路由協定需要設定自治系統,則指令後面必須再接上自治系統的設定,IGRP和EIGRP路由協定就需要自治系統。

若是使用OSPF路由協定的話,後面還可以接上本地端的Process ID。其詳細情形會在往後的文章中介紹。

步驟二:指定IP網路區段

第二步驟是指定這台路由器有直接接到哪些網路區段,假設路由器直接接到10.0.0.0網路區段,則指令範例如下:

因為第一步驟時已經執行router rip指令,所以會自動進入Router Mode,這個模式會在指令列顯示(config-router)。這個指令的關鍵字是network,設定這個資訊的用意在於告訴路由協定哪些介面可以接收與發送路由更新資訊。

而這個指令所接的IP網路區段資訊是「主要網路號碼」(Major Network Number)。因為RIPv1路由協定是Classful路由協定,傳送路由資訊時不帶子網路遮罩,所以這裡所使用的是Major Network Number。

而Major Network Number的判別分式與這個IP所處的IP位址類型有關,假設路由器某個網路區段的IP位址為10.1.2.3,則因為這個IP位址屬於Class A的IP位址,所以Major Network Number是10.0.0.0,最後三個位數都為零。

同理,如果IP為172.16.3.4,則Major Network Number為172.16.0.0,最後兩個位數為零。倘若IP為192.168.1.1,則Major Network Number為192.168.1.0,只有最後一個位數為零。

啟動RIP路由協定範例

假設網路架構圖如下圖所示,而現在要在每一台路由器設備上都套用RIP路由協定並加以啟動。


▲網路架構示意圖。

上圖中有X、Y和Z三台路由器設備,其中路由器X接到172.16.1.0和10.1.1.0兩個網段,其兩邊介面的IP分別為172.16.1.1和10.1.1.2,因此路由器X的RIP路由協定設定指令如下:

其中,172.16.0.0和10.0.0.0分別代表路由器所連接的兩個網路區段的Major Network Number。

同理,因為路由器Z接到192.168.2.0和10.1.2.0兩個網段,假設路由器Z針對這兩個網段的IP分別為192.168.2.1和10.1.2.3,則在路由器Z上設定RIP路由協定的指令如下:

在設定IP網路區段的Major Network Number時,哪一個網段先設定,哪一個網段後設定,並沒有差別,只要都有設定到就可以。

接著,剩下的就是路由器Y了。路由器Y連接到10.1.1.0和10.1.2.0兩個網段,假設路由器Y在這兩個網段的IP位址為10.1.1.5和10.1.2.7,則要在路由器Y上設定RIP路由協定的指令如下:

因為10.1.1.0網段和10.1.2.0網段的Major Network Number相同,所以只要設定一次即可。

檢視RIP路由協定設定值

使用剛剛的指令設定完RIP路由協定設定後,免不了要檢視一下剛剛所設定好的設定值。其檢視的指令如下:


 這裡以上面的範例來說明,假設要檢視路由器Z的RIP路由協定設定值,則執行結果如下:

從以上的執行結果可以看出,路由器Z設定成使用RIP路由協定,這一點由結果中的第一行就可以看出。

接著,由第二行可以看出這個路由資料會每隔30秒互相傳遞一次,而且可以發現下一次會傳送路由資訊的時間為15秒之後。當然,這每隔30秒傳送一次路由資訊的設定是可以改變的。接著,在輸出結果的第三行中顯示:

第一個180秒代表如果這台路由器Z經過180秒都沒有收到由其他路由器所傳過來的路由更新資訊,則路由器Z會將相關的路由路徑標示為可能無法到達,即Possibly Down。

「hold down 180」中所指的180則是Hold-Down Timer的時間,所以當路由器Z發現有Possibly Down的路由資訊時,就會馬上啟動Hold-Down Timer,如果經過180秒之後,都沒有再收到關於這筆路由資訊的更新的話,路由器Z就會把這筆路由資訊視為無法到達。

最後的「flushed after 240」所指的是,若經過240秒之後都沒有再收到任何關於這一筆路由資訊的更新,則路由器Z會把這筆資料從Routing Table中移除。

在顯示結果的後半部,有一行顯示「Routing for Networks:」,在此行後面接了兩個網段,這代表目前這台路由器將會處理這兩個網段的路由資訊。至於接在「Routing Information Sources:」後面的IP位址,則代表這些位址會傳送路由的更新資訊給目前這台路由器。

各位讀者應該可以聯想到,後面所接的120指的就是RIP路由協定的AD值。如果覺得這樣的檢視資訊過於複雜,也可以執行以下的指令以便顯示比較簡短的設定值:


檢視Routing Table中的資料

這個功能是經常被使用的功能,可檢視Routing Table中的資料,因為這對疑難排解頗有用途。再以上面的範例來講解,如果要檢視路由器Z的Routing Table,可執行以下的指令來檢視:

上面顯示的結果就是整個Routing Table的資料,而Routing Table中的資料代表目前這台路由器所熟知的網段資訊。

由以上的結果可以發現,一開始會列出所有的代碼意義對照表,因為代碼太多了,目前只要先注意代碼為R與C的即可,R代表使用此路徑是經由RIP路由協定學習而來,C代表此網路路徑是直接連接的,並不需要經過任何學習過程。

至於其他的代碼,稍微需要注意的有S,代表是靜態路由。另外,以後會介紹到的有I,代表此路徑是由IGRP路由協定學習而來,D則代表EIGRP路由協定,O則代表OSPF路由協定,i則代表IS-IS路由協定。

在上面的結果中,筆者把經由RIP路由協定所學習到的資料用粗體來表示,以便讀者查找。

再來比較重要的,當然就是顯示結果中最下方的Routing Table,這裡可以看到許多資訊。下面這一行代表目前這台路由器有192.168.2.0/24這網段:

再來下面這一行,則是顯示在192.168.2.0/24網段下的詳細子網段路由資訊:

在這一行中前面所顯示的C,代表這網段是直接連接的,由網路架構圖中也可以證實真的是這樣。這就是在Routing Table中的一筆資料。接著下面一行代表在10.0.0.0/24底下有兩個子網段的資訊。



繼續往下看,就可以發現這兩個子網段的路由資訊。如下所示,第一行前面的R,表示這筆網路路由是經由RIP路由協定學習而來,而同一行後面的資訊又多又複雜。

其實有個小秘訣,就是從後面往前看,會比較順一點。這裡以第一行為例,可以知道這筆路由是由目前這台路由器的Serial2介面出去,經過10.1.2.7的路由器之後,可以到達10.1.1.0網段,所以最後面的Serial2所代表的是目前這台路由器的介面,而10.1.2.7所代表的是下一台路由器的IP位址。

10.1.1.0網路IP位址的後面接著[120/1],其中120代表的是RIP路由協定的AD值,後面的1代表要經過一個路由器設備才能到達10.1.1.0網段。

而此行中間的00:00:06,代表這筆路由從最後一次更新後到目前為止已經過了6秒,所以透過這個值,就可以知道這筆路由有多新或是有多麼舊了。

以同樣的方法,就很容易明白第二行所要表示的意義是什麼,所以第二行是指經由目前這台路由器設備的Serial2介面出去,可以直接連接到10.1.2.0網段。

因為這邊寫著「10.1.2.0 is directly connected」,這代表10.1.2.0這個網段是直接連接的,不僅如此,前面的C也代表此網段和目前這台路由器是直接連接。

如果執行show ip route這個指令後,發現在Routing Table中沒有任何的資料,建議試試show running-config或show ip protocols指令來查看可能發生的錯誤在哪裡,並嘗試做疑難排解。

以下介紹一些與RIP路由協定相關的疑難排解方法。

RIP路由協定疑難排解 

若要做RIP路由協定的疑難排解,當然不一定只有以下這些方法,端看各位遇到的情況而定,有時候不一定是RIP路由協定的問題,通常可以查看Routing Table,或是透過show running-config指令來檢視目前正在使用的路由器設定值,或是執行show ip protocols指令來查看協定的設定情況。

此外,如果想即時查看目前這台路由器更新路由資訊的情況,可以執行debug ip rip指令,一旦執行這個指令,往後如果這台路由器收到或是發送任何路由資訊的更新時,就會把相關的資料列印在螢幕上,以便做即時的疑難排解。

這裡以本篇文章一開始的例子來講解,假設在路由器Z上執行debug ip rip指令,則執行結果如下列所示:

透過這個指令,就可以在第一時間得知目前這台路由器如何更新自己的Routing Table,或是如何影響其他路由器的Routing Table。讀者可能會覺得以上的資訊很亂,底下就一一來解釋。一開始執行debug ip rip指令後,第一行看到的是:

這代表目前已經開啟偵錯模式。接著,路由器會等待下一次要接收或是發送路由更新的資訊。而接下來三行,代表收到由其他路由器送過來的路由更新:

10.1.2.7是路由器Y在10.1.2.0網段的IP位址,因此,這裡第一行代表的就是「從本地端的Serial 2介面收到由10.1.2.7路由器所發送的RIPv1的路由更新資訊」,而下面兩行是顯示出所得到的路由更新有哪些,其中,第二行代表「從路由器Z開始算,經過一個路由器設備後,可以到達10.1.1.0網段」。

同樣地,第三行所代表的是「從路由器Z開始算,經過兩個路由器設備之後,可以到達172.16.1.0網段」。而接下來是這三行:

第一行代表目前正在從目前這台路由器Z的Ethernet0介面傳送路由更新資訊到其他設備中,假設Ethernet0是路由器Z接往192.168.2.0網段的介面,由這一行也可以看出所傳送的正是RIP路由協定,而且是v1版本。另外,255.255.255.255就是Broadcast位址,所以這個路由資訊是藉由Broadcast方式送出的。

接下來兩行顯示出所送出的路由更新資料包含哪些,由第二行可以看出路由器Z想傳送的資料就是「透過我這台路由器,經過一台設備可到達10.0.0.0網段」,下一行則表示「透過我這台路由器,一共經過三台設備可到達172.16.1.0網段」。至於最後兩行,讀者也就可以清楚明白其含意了。

RIP路由協定設定步驟與指令總整理

底下簡單整理出關於RIP路由協定的設定步驟,這樣一來,讀者就更能清楚明白整個設定流程要執行哪些指令,方便往後查找。其中,斜體字代表讀者要自行根據實際資料而變動的參數。

選擇路由協定


設定所連接的網段


顯示設定資料

或是

顯示Routing Table中的資料 

進行偵錯 

結語 

RIP路由協定的應用範圍,只能用於一條路徑上最多只能經過15個路由器設備。所以,如果所管理的網路會使用少於15個路由器設備,那麼採用RIP路由協定一定沒問題,而且還很方便使用。 

另外,RIP路由協定每隔30秒就會互相分享路由資料,這代表如果路由器設備變多,那這種分享路由資料的封包就會瘋狂增加,導致路由協定的運作讓網路頻寬使用量大增,這對使用者與管理者都不是一件好事。當然,這並不是代表小型網路就只能選擇RIP路由協定,而是RIP路由協定用於小型網路,在管理上會方便許多。 

如果和其他路由協定比較起來,RIP路由協定的管理方式簡單許多,運作原理也較為單純,其實路由可靠程度也不會非常差,算是簡單管理中最好的選擇。之後筆者會陸續介紹一些其他的路由協定讓各位比較。 

不過,有一點要注意的是,RIP路由協定使用的網路協定為UDP,採用520通訊埠。眾所周知,UDP可靠程度比較低,但是速度比較快。因此,如何做出最好的選擇,相信讀者會隨著筆者文章的介紹與解說,慢慢有更好的想法。筆者之後也會針對各種不同的路由協定互相做比較,供大家參考。

轉載自《網管人》


沒有留言:

張貼留言