相關連結:胖胖報部落格
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 Destination:0.0.0.0 .... )是預設路徑(default route),只要路由表找不到傳送路徑的封包,最後都會由會交由預設路徑傳送,因為不論是什麼 IP 位址與 0.0.0.0 的網路遮罩作 AND 運算,結果都是 0.0.0.0,因此封包會被傳送到 192.168.1.1 此一Gateway。
2. 第二筆(Network Destination:127.0.0.1 ... )是迴路路徑,因此所有要傳送到 127.x.x.x 的封包最候都會送到 127.0.0.1 IP 位址,也就是電腦自己。
3. 第三筆(Network Destination:192.168.1.0)是電腦目前所處的網段路徑,所有要送到 192.168.1.0 都封包都直接由電腦本身 192.168.1.3 的 IP 送出,不需透過其他路由器。
4. 第四筆(Network Destination:192.168.1.3)是電腦本身的 IP 位址,所以要把封包送給自己,就直接送到 127.0.0.1 這個內部IP位址。
5. 第五筆(Network Destination:192.168.1.255)是電腦目前所處網段的廣播路徑,要傳送到 192.168.1.255 的網段廣播封包,都直接由電腦本身 192.168.1.3 的 IP 送出,不需透過其他路由器。
6. 第六筆(Network Destination:224.0.0.0)是於多重傳播路徑,所有要送到 224.x.x.x 的 IP 位址都會直接交由電腦本身 192.168.1.3 的 IP 送出,不需透過其他路由器。
7. 第七筆(Network Destination:255.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 Destination、Netmask、Gateway、Interface 和 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 較低的路徑將被優先考慮。
====================================================================
以學校電腦教室為例,教師的主機有兩張網卡,
用的都是private ip,
一張是接電腦教室switch,跟學生電腦連接,走的是縣網,ip是192.168.16.200,gateway是192.168.16.254
另一張是接辦公室switch,跟辦公電腦連接,走的是中華電信ADSL,ip是192.168.1.18,gateway是192.168.1.1
假如我今天想讓教師電腦所有的上網都走adsl(比較快),但是跟學生與電腦教室硬碟、以及其他縣內教育網路的電腦聯結時則走縣網,那我需要做的設定有二:
1.route -p change 0.0.0.0 mask 0.0.0.0 192.168.1.1 if 0x10004(這邊的數值請看route print的值) matric 15(不一定要15,不過要讓這張的MATRIC比另一張的值來得低一點)
2.route -p add 163.22.0.0(縣網內的網段) mask 255.255.0.0 192.168.16.254 if 0x20002 matric 10(這裡的值一定要比default gatway低,不然就白設了)
這樣子一來,就可以達到快速上網/縣網,還有快速聯結電腦教室電腦的目的了
沒有留言:
張貼留言