文.胡凱捷
從這篇文章開始,筆者將整理出各種常見路由協定的疑難排解技巧,包含如何檢視路由協定的設定值,以 及如何做到即時的偵錯技巧。而為了讓讀者快速容易地了解偵錯的過程與指令的用法,都會透過範例來解說,這樣讀者就更能真正明白指令輸出結果的含意,而範例 中也會大略介紹設定路由協定環境的指令。這裡將介紹RIP路由協定、IGRP路由協定、EIGRP路由協定和OSPF路由協定等相當知名且常用的路由協 定。 | |
若要做路由協定相關的疑難排解,當然不一定只有以下所介紹的這些方法,而是要看當時遇到 的情況而定。有時候不一定是路由協定的問題,且偵錯方法也很多,通常可以查看Routing Table,或是透過「show running-config」指令來查看目前正在使用的路由器設定值,或是執行「show ip protocols」指令來查看協定的設定情況。 偵錯的方法其實千變萬化,唯有深入明白每一個環節,清楚所有運作的關鍵以及原理,才能夠真正靈活地運用偵錯的技巧。 RIP路由協定 先從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路由協定設定指令如下: RouterX(config)#router rip RouterX(config-router)#network 172.16.0.0 RouterX(config-router)#network 10.0.0.0 其中,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路由協定的指令如下: RouterZ(config)#router rip RouterZ(config-router)#network 192.168.2.0 RouterZ(config-router)#network 10.0.0.0 在設定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路由協定的指令如下: RouterY(config)#router rip RouterY(config-router)#network 10.0.0.0 因為10.1.1.0網段和10.1.2.0網段的Major Network Number相同,所以只要設定一次即可。 檢視RIP路由協定設定的方法 RouterZ#show ip protocols 由上面的執行結果可以看出路由器Z設定成使用RIP路由協定,這可以從執行結果的第一行看出。接著,由第二行可以發現這個路由資料會每隔30秒互相傳遞一次,而且能夠看出下一次傳送路由資訊的時間為15秒之後。而這每隔30秒傳送一次路由資訊的設定是可以改變的。 接著,觀察輸出結果的第三行「Invalid after 180 seconds, hold down 180, flushed after 240」。第一個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值。如果覺得這樣的檢視資訊過於複雜,也可以執行以下的指令以便顯示比較簡短的設定值: RouterZ#show ip interface brief RIP路由協定即時偵錯 RouterZ#debug ip rip 透過這個指令,可以在第一時間得知目前這台路由器如何更新自己的Routing Table以及如何影響其他路由器的Routing Table。上面的資訊看起來似乎很亂,接著就來一一解釋。一開始執行「debug ip rip」指令之後,第一行看到的是: RIP protocol debugging is on 這代表目前已經開啟偵錯模式。接著,路由器就會等待下一次要接收或發送路由更新的資訊。而接下來三行代表收到由其他路由器送過來的路由更新: 00:04:06: RIP: received v1 update from 10.1.2.7 on Serial2 00:04:06: 10.1.1.0 in 1 hops 00:04:06: 172.16.1.0 in 2 hops 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方式送出。而後面兩行顯示所送出的路由更新資料有哪些。 00:04:11: RIP: sending v1 update to 255.255.255.255 via Ethernet0(192.168.2.1) 00:04:11: network 10.0.0.0, metric 1 00:04:11: network 172.16.1.0, metric 3 從這裡的第二行可以看出路由器Z想傳送的資料就是「透過我這台路由器,經過一台設備可到達10.0.0.0網段」,同樣地,下一行代表「透過我這台路由 器,一共經過三台設備可到達172.16.1.0網段」。至於執行結果的最後兩行,讀者也就可以清楚明白其含意了。(更多精采文章詳見網管人第54期) |