2007年9月4日星期二

Windows XP 下Route 指令應用簡介




Windows XP Route 指令應用簡介




Windows XP 裡頭內建一個相當實用的路由指令- Route,可以用來查詢路由表及新增或移除某個路由路徑,尤其適用於安裝兩片以上網路卡的系統。封包很可能因為網路設定錯誤的問題,造成連線緩慢異常,甚而無法以您期望的方式傳送封包,這時 route 指令是很方便的除錯工具,底下就簡單說明 route 指令的語法。

Route print
用來顯示路由表




此例中實際只安裝ㄧ片網路卡,此路由表中的幾個欄位:

Network Destination
表示路由的網路目的地,可以是 IP 網段或IP位址。

Netmask
表示子網路遮罩,用來配合 Network Destination 的運算。

Gateway
是封包欲送往的 IP 位址,如果目的 IP 位址與 Netmask AND 邏輯運算,剛好與 Network Destination 相同,封包就會送到此 Gateway IP 位址。

Interface
是此電腦送出封包的 IP 位址。

Metric
則是傳送成本的參考數字,通常與網路連接速度有關,Windows XP 本身有自動計算 Metric 的能力,以本表中範例而言100Mbps 的網路速度 Metric 設為 20,迴路(loopback)的 Metric 設為 1,越低的 Metric 表示速度越快。

接著針對每一筆路由表作說明:

1.
第一筆(Network Destination0.0.0.0 .... )是預設路徑(default route),只要路由表找不到傳送路徑的封包,最後都會由會交由預設路徑傳送,因為不論是什麼 IP 位址與 0.0.0.0 的網路遮罩作 AND 運算,結果都是 0.0.0.0,因此封包會被傳送到 192.168.1.1 此一Gateway

2.
第二筆(Network Destination127.0.0.1 ... )是迴路路徑,因此所有要傳送到 127.x.x.x 的封包最候都會送到 127.0.0.1 IP 位址,也就是電腦自己。

3.
第三筆(Network Destination192.168.1.0)是電腦目前所處的網段路徑,所有要送到 192.168.1.0 都封包都直接由電腦本身 192.168.1.3 IP 送出,不需透過其他路由器。

4.
第四筆(Network Destination192.168.1.3)是電腦本身的 IP 位址,所以要把封包送給自己,就直接送到 127.0.0.1 這個內部IP位址。

5.
第五筆(Network Destination192.168.1.255)是電腦目前所處網段的廣播路徑,要傳送到 192.168.1.255 的網段廣播封包,都直接由電腦本身 192.168.1.3 IP 送出,不需透過其他路由器。

6.
第六筆(Network Destination224.0.0.0)是於多重傳播路徑,所有要送到 224.x.x.x IP 位址都會直接交由電腦本身 192.168.1.3 IP 送出,不需透過其他路由器。

7.
第七筆(Network Destination255.255.255.255)代表廣播位址,也就是 255.255.255.255 目的位址的封包都會直接交由電腦本身 192.168.1.3 IP 送出,不會透過其他路由器,所有在 192.168.1.x 網段的電腦都會收到此封包。

在路由表的選擇上,可能會有兩條以上符合的路徑可供選擇,這時候應該如何選擇路徑?以傳送目的地 192.168.1.100 的封包為例,在上述的路由表第一筆與 Netmask 0.0.0.0 AND 運算結果符合 Network Destination 0.0.0.0,與第三筆 Netmask 255.255.255.0 AND 的運算結果也符合 Network Destination 192.168.1.0;這時路徑會選擇以Netmask 轉換為二進制之後含1最多那一筆來傳送,因此封包最後將由第三筆路徑做處理。

上述是一張網路卡時的路由表運作,如果加入另一張網路卡時,封包將會如何傳送?我們還是先列出路由表。




由表中可以發現所有原有路徑變成兩份,因此可能有兩條路徑可以選擇,以 default route 路徑而言就有 192.168.1.1 192.168.216.254 兩條 Gateway 可走,因此路徑的選擇就依 Metric 大小來決定,metric 越小表示成本越低,所以路徑將選擇較低的 default route,因而表中顯示預設閘道(default gateway)會是 Metric 較低的 192.168.216.254。如果 Metric 一樣,這時就以隨機方式選擇路徑;如果原來的 default route 的網路連線斷了,那路徑將主動切換到另一條 default route


其他常用route 指令

● route
add 用來加入路由路徑
例如:route add 192.168.0.0 mask 255.255.0.0 192.168.1.1 if 0x2 metric 20

指出 Network DestinationNetmaskGatewayInterface metric


● route
-p add 用來永久加入路由路徑,使用-p 參數可以保留路徑設定,不會因為電腦重開機而消失。
例如:route -p add 192.168.0.0 mask 255.255.0.0 192.168.1.1 if 0x2 metric 20


● route
delete用來刪除路由路徑。
例如:route delete 192.168.0.0 mask 255.255.0.0


● route
change用來修改現有的路徑設定。
例如:route change 192.168.0.0 mask 255.255.0.0 192.168.1.1 if 0x2 metric 10

將原先路徑設定的 metric 20 改為 10,這種修改最直接的影響就是改變路徑的選擇,如果有兩條路徑可以選之時,metric 較低的路徑將被優先考慮