route命令詳解與使用實例

  1. 使用背景
    需要接入兩個網絡,一個是部署環境所在內網環境,這個環境是上不了外網, 外網環境很可能是一個無線網絡。如果兩者都連接上,很可能導致有一方不能起作用,即外網或內網上不了,常常需要使用繁瑣的“禁用網絡連接”、“啓用網絡連接”的操作來進行內外網的切換,甚是麻煩。

爲了解決這個問題,可以使用route命令來使得同時內外網都可用。

  1. route命令
    route命令是在本地 IP 路由表中顯示和修改條目網絡命令。

route命令的語法如下:

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
route命令常用的命令如下:

1)route delete:刪除路由;
2)route print:打印路由的Destination;
3)route add:添加路由;
4)route change:更改現存路由。

一般使用route delete、route add、route print這三條命令可解決路由的所有功能。

2.1 打印路由信息

   打印路由信息使用命令:route print。

===========================================================================
Interface List
0x1 MS TCP Loopback interface
0x2 00 26 18 31 4f d1 Realtek RTL8168C(P)/8111C(P) PCI-E Gigabit Ether
net NIC - 數據包計劃程序微型端口

0x50004 00 53 45 00 00 00 WAN (PPP/SLIP) Interface

===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 116.69.106.119 116.69.106.119 1
0.0.0.0 0.0.0.0 192.168.2.226 192.168.2.79 20
115.168.64.94 255.255.255.255 116.69.106.119 116.69.106.119 1
116.69.106.119 255.255.255.255 127.0.0.1 127.0.0.1 50
116.255.255.255 255.255.255.255 116.69.106.119 116.69.106.119 50
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.2.0 255.255.255.0 192.168.2.79 192.168.2.79 20
192.168.2.79 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.2.255 255.255.255.255 192.168.2.79 192.168.2.79 20
224.0.0.0 240.0.0.0 192.168.2.79 192.168.2.79 20
224.0.0.0 240.0.0.0 116.69.106.119 116.69.106.119 1
255.255.255.255 255.255.255.255 116.69.106.119 116.69.106.119 1
255.255.255.255 255.255.255.255 192.168.2.79 192.168.2.79 1

Default Gateway: 116.69.106.119

Persistent Routes:
None
第一列是網絡目的地址。列出了路由器連接的所有的網段。

第二行網絡掩碼列提供這個網段本身的子網掩碼,而不是連接到這個網段的網卡的子網掩碼。這基本上能夠讓路由器確定目的網絡的地址類。

第三列是網關。一旦路由器確定它要把這個數據包轉發到哪一個目的網絡,路由器就要查看網關列表。網關表告訴路由器這個數據包應該轉發到哪一個IP地址才能達到目的網絡。

第四列接口列告訴路由器哪一個網卡連接到了合適的目的網絡。從技術上說,接口列僅告訴路由器分配給網卡的IP地址。那個網卡把路由器連接到目的網絡。然而,路由器很聰明,知道這個地址綁定到哪一個物理網卡。

第五列是測量。測量本身是一種科學。該值越小的,可信度越高

下面說說每一行內容代表的內容:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 116.69.106.119 116.69.106.119 1
這表示發向任意網段的數據通過本機接口116.69.106.119被送往一個默認的網關:116.69.106.119,它的管理距離是1,管理距離指的是在路徑選擇的過程中信息的可信度,管理距離越小的,可信度越高。

第二行的內容:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.2.226 192.168.2.79 20
這表示發向任意網段的數據通過本機接口192.168.2.79被送往網關192.168.2.226,但是因爲該行的管理距離(Metric)比第一行大,即表示第二行的可信度沒有第一行高,所以在默認情況下會優先選擇第一行的網關出去。

第三行的內容:
Network Destination Netmask Gateway Interface Metric
115.168.64.94 255.255.255.255 116.69.106.119 116.69.106.119 1

第四行的內容:
Network Destination Netmask Gateway Interface Metric
116.69.106.119 255.255.255.255 127.0.0.1 127.0.0.1 50
表示從自己的主機發送到自己主機的數據包,如果使用的是自己主機的IP地址,跟使用迴環地址效果相同,通過同樣的途徑被路由,也就是如果我有自己的站點,我要瀏覽自己的站點,在IE地質欄裏面輸入localhost與116.69.106.119是一樣的,儘管localhost被解析爲 127.0.0.1。

第五行的內容:
Network Destination Netmask Gateway Interface Metric
116.255.255.255 255.255.255.255 116.69.106.119 116.69.106.119 50
這裏的目的地址是一個局域廣播地址,系統對這樣的數據包的處理方法是把本機116..69.106.119作爲網關,發送局域廣播幀,這個幀將被路由器過濾。

第六行的內容:
Network Destination Netmask Gateway Interface Metric
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

2.2 刪除路由信息
所用的命令爲:

route delete 網絡目的地址 [mask] [子網掩碼]
例如想要刪除網絡目的地址爲192.168.2.0,子網掩碼爲255.255.255.0的路由,可用:

route delete 192.168.2.0 mask 255.255.0.0
刪除路由時還可以用模糊匹配,例如要刪除以115開頭的IP路由表中的所有路由時,可用:

route delete 115*

2.3 添加路由信息

   添加路由信息使用如下命令:

route add 網絡目的地址 mask 子網掩碼網關 [metric] [測量值]
例如若要向帶有255.255.0.0子網掩碼、10.27.0.1網關,測量值爲7的10.41.0.0的目標地址添加一條路由,可使用如下命令:

route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7
3. 應用實例

以調試環境爲例,需要接入內網進行調試,內網地址爲5.0.217.47。另外接了個無線,可以上外網自動分配了個192.168.2.110。
插上內網網線,併成功連接上外網後,此時內網是通的,但是外網連接不上。在命令窗口使用ipconfig和route print命令可以打印出當前的信息:

route print

Interface List
0x1 MS TCP Loopback interface
0x2 00 26 18 31 4f d1 Realtek RTL8168C(P)/8111C(P) PCI-E Gigabit Ether
net NIC - 數據包計劃程序微型端口
0x3 00 24 2c e7 57 11 Atheros AR5006X Wireless Network Adapter - 數據
包計劃程序微型端口

===========================================================================

Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 5.0.217.1 5.0.217.47 10
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.110 25
5.0.217.0 255.255.255.192 5.0.217.47 5.0.217.47 10
5.0.217.47 255.255.255.255 127.0.0.1 127.0.0.1 10
5.255.255.255 255.255.255.255 5.0.217.47 5.0.217.47 10
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.110 192.168.1.110 25
192.168.1.110 255.255.255.255 127.0.0.1 127.0.0.1 25
192.168.1.255 255.255.255.255 192.168.1.110 192.168.1.110 25
224.0.0.0 240.0.0.0 5.0.217.47 5.0.217.47 10
224.0.0.0 240.0.0.0 192.168.1.110 192.168.1.110 25
255.255.255.255 255.255.255.255 5.0.217.47 5.0.217.47 1
255.255.255.255 255.255.255.255 192.168.1.110 192.168.1.110 1

Default Gateway: 192.168.1.1

Persistent Routes:
None

ipconfig

Windows IP Configuration
Ethernet adapter 本地連接:
Connection-specific DNS Suffix . :
IP Address… … … … : 5.0.217.47
Subnet Mask … … … . . : 255.255.255.192
Default Gateway … … … :
Ethernet adapter 無線網絡連接:
Connection-specific DNS Suffix . :
IP Address… … … … : 192.168.1.110
Subnet Mask … … … . . : 255.255.255.0
Default Gateway … … … : 192.168.1.1
由route print命令的結果的第一行可以看到,只所以訪問不到外網,是因爲默認的情況是通過5.0.217.1的內網的網關出去的。

爲了達到能同時訪問內外網的需求,只需要刪除掉0.0.0.0的路由後,添加兩條路由即可,將5開頭的地址都通過5.0.217.1網關路由出去,而其餘的地址都通過無線的網關192.168.1.110出去。參考如下:

route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
route add 5.0.0.0 mask 255.0.0.0 5.0.217.1

此時運行route print命令,可看到運行結果如下:

route print

Interface List
0x1 MS TCP Loopback interface
0x2 00 26 18 31 4f d1 Realtek RTL8168C(P)/8111C(P) PCI-E Gigabit Ether
net NIC - 數據包計劃程序微型端口
0x3 00 24 2c e7 57 11 Atheros AR5006X Wireless Network Adapter - 數據

包計劃程序微型端口

===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.110 1
5.0.0.0 255.0.0.0 5.0.217.1 5.0.217.47 1
5.0.217.0 255.255.255.192 5.0.217.47 5.0.217.47 10
5.0.217.47 255.255.255.255 127.0.0.1 127.0.0.1 10
5.255.255.255 255.255.255.255 5.0.217.47 5.0.217.47 10
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.110 192.168.1.110 25
192.168.1.110 255.255.255.255 127.0.0.1 127.0.0.1 25
192.168.1.255 255.255.255.255 192.168.1.110 192.168.1.110 25
224.0.0.0 240.0.0.0 5.0.217.47 5.0.217.47 10
224.0.0.0 240.0.0.0 192.168.1.110 192.168.1.110 25
255.255.255.255 255.255.255.255 5.0.217.47 5.0.217.47 1
255.255.255.255 255.255.255.255 192.168.1.110 192.168.1.110 1

Default Gateway: 192.168.1.1

Persistent Routes:
None
可看到默認是通過無線的192.168.1.110出去的,此時內外網都可以同時用了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章