route add命令的主要作用是添加靜態路由,通常的格式是:
route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2
參數含義:^destination ^mask ^gateway metric^ ^interface
destination【網段地址】
mask【子網掩碼】
gateway【網關地址】
metric 【路由跳數】
if【端口號】
一般情況下,不涉及本機地址,除非你要做測試。
其中:
可以省略【路由跳數】參數;
當通往該網關地址的路徑唯一時,【端口號】參數可以省略。(因為在多端口的路由交換設備上,可能存在通往同一個IP地址的多條備份路徑。)
mask 是關鍵字,不能省略。
route add 134.105.0.0 mask 255.255.0.0 134.105.64.1
意思是:所有需要發往134.105.0.0/16地址段的IP數據包,全部由134.105.64.1路徑轉發。
這個命令在大型IP網絡組建時經常用到,在不同廠商的設備上命令格式可能不同,但原理是一樣的。
如果有多條路由,根據不同的路由協議(比如rip, ospf等)的規定,一般優先選擇網段地址小的路由。比如,當以下兩條路由同時被添加的時候:
route add 134.105.0.0 mask 255.255.0.0 134.105.64.1
route add 134.105.128.0 mask 255.255.128.0 134.105.0.1
目標地址是134.105.128.1的IP包會優先選擇第二條路由。
***************************************************
! /bin/bash
sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 172.24.16.1 metric 5
多網卡
不久前,我單位通過光纖專用線路,以局域網方式接入了Internet。由於沒有采用路由器,因此內部網絡用戶對Internet和內部城域網的所有訪問均通過代理服務器完成,采用完全代理方式。在代理服務器上安裝了三塊網卡,兩塊網卡采用公網IP地址,接入Internet和城域網;另
一塊網卡則采用私有IP地址,通過代理服務器實現內部網與Internet、城域網的連接。
網絡基本情況
根據不同的使用需要,將不同部門、不同機房划分為若干子網,使用不同網段的私有IP地址。因此,網絡中存在不同網段的信息包經過代理服務器的路由問題。
其中代理服務器對內部網卡的IP是192.168.4.9,連接城域網的網卡IP是10.99.2.2,連接Internet的網卡IP是211.167.148.150。另外機房也使用了代理,兩塊網卡的IP分別是192.168.4.96和192.168.0.1。
問題一
192.168.4.0這一網段的子網能正常訪問外部網絡,網段為192.168.0.0的機房能訪問校園網,卻不能連接外部網絡。通過ping命令檢查,能ping通192.168.4.1等主機,但是在ping代理服務器(192.168.4.9)時,得到“Request timed out”的反應,看來是192.168.4.9這台主機的回應包未能被正確地路由到192.168.0.0網段。
首先將對內網卡設置默認網關192.168.4.96,這樣設置以后,雖然機房的計算機能訪問外部網絡,但是速度很慢。同時,以前能正常訪問外部網絡的192.168.4.0網段,訪問速度也變得出奇的慢。員工們也開始埋怨,這是什么寬帶,比家里撥號的速度還要慢!
看來這種方法是不可行的。通過Route print命令,觀察代理服務器的路由,有這么一條:
Network Destination Netmask Gateway 0.0.0.0 0.0.0.0 192.168.4.96 Interface Metric 192.168.4.96
通過分析我們可以知道,關鍵是上面那條路由有問題,它的目標地址是0.0.0.0,所以所有的回應包被送到了網關192.168.4.96。而我們的要求是192.168.0.0網段的回應包發到192.168.4.96,其他的就直接發到對應的主機。這時筆者想到,如果將上面路由中的目標地址改為192.168.0.0,是不是可以實現這一目的呢?
路由配置方法
通過查找相關資料,筆者發現只要把機房與當前代理服務器所在的網關地址做一下路由即可。當前的內網划分了兩個VLAN,服務器所在VLAN的網關是192.168.4.9,機房網關接入內網網卡IP是192.168.4.96。需要運行的命令是:
route -p delete 0.0.0.0 mask 0.0.0.0 192.168.4.96 route -p add 192.168.0.0 mask 255.255.255.0 192.168.4.96
經過調試,將機房內部網卡的網關設置為192.168.0.1,至此,以前出現的網速慢的問題得到解決。
問題二
后來想想,其實這個問題也是一直存在的,只不過由於以前一直被網速慢的問題困擾,所以沒有注意到。網絡總是出現停頓,而QQ的使用卻很正常。
比較了使用兩塊網卡和三塊網卡工作時的路由情況,發現其實這個問題和上面的問題是類似的,都是因為網關的設置造成數據包路由信息發生混亂,通過禁用城域網網卡雖然解決了經常斷網的問題,但是不能訪問城域網,所以決定修改路由:
route -p delete 0.0.0.0 mask 0.0.0.0 10.99.2.1
經過這次實踐,發現內部網卡的網絡屬性不能設置網關和DNS服務器,不然會造成數據包路由信息發生混亂。通過修改路由,采用三網卡代理時出現的網絡問題得到解決。用Route命令手工修改路由簡單實用,希望能夠對廣大中小企業用戶有所啟示。
route命令主要用於手動配置靜態路由表
例:增加一條通過網關到達令一子網的路由
route add net remote_net_ip gateway_ip 1
其中add代表要增加路由,net表示路由到達的是一個網絡而不是一台主機,1代表遠端網絡需通過網關才能到達
(直接通過網絡接口相連時,該參數用0)
命令格式:
route add -net remote_net_ip gateway_ip -netmask netmask
route add -host host_ip local_interface_ip -interface
使用"delete","change"命令參數可以對路由表中的路由信息進行刪除和修改
使用"netstat -rn"命令查看當前的路由信息
如果靜態路由表配置錯誤的話,不管你的網卡參數在怎么設置的准確無誤也一樣無法連接網絡
利用命令 netstat -r 或 route print 可以查看本機路由表(圖1,2)
Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.78 20
第一個0.0.0.0表示目標IP
第二個0.0.0.0表示子掩碼
192.168.1.1是本機網關
192.168.1.78是本機IP
那個20表示度量值
這個路由條目就表示本機對所有網段的訪問都通過192.168.1.1這個網關
如果我們想定義路由條目的話(同時也想整下別人的話)
route delete 0.0.0.0 //首先對目標IP 0.0.0.0(也就表示所有網段)訪問時指向的網關進行刪除
route add 0.0.0.0 mask 0.0.0.0 192.168.1.254
//建立一組新的路由條目,重新建立對目標IP 0.0.0.0(也就表示所有網段)訪問時指向的網關,注意這里的網關必須和本機IP同一個網段,比如我的本機IP是192.168.1.78,那么這里的網關就必須是192.168.1.X,不然回提示出錯(圖3),但是本次建立的路由條目會在下次重起時自動消失還原,如果想永久建立的話需要加上一個 -p 參數
其實 route 的最大魅力就在於可以跨網段訪問,比如你所在在的網絡存在兩個網絡,外網(192.168.1.1)內網(10.0.0.1)
本機IP可以設置很多個,在TCP/IP屬性里點高級添加(圖4),但是默認的網關只能有一個,所以要想外網內網一起訪問我們只能借助於route命令,由於默認的是訪問外網的路由條目,所以我們只需要對10.0.0.0網段訪問指向的網關進行永久建立
route add 10.0.0.0 mask 255.0.0.0 10.0.0.1 -p
轉載:route命令詳解
屏蔽IP地址
通常情況下,使用防火牆來阻斷因特網交通是最好的辦法。但是,低端防火牆,比如Internet Connection Firewall並不能過濾單個IP地址。有一個過濾單個IP地址的辦法是調整電腦上的路由表。路由命令行工具可以解決這個問題。這是一個較難使用的工具。不懂路由知識而貿然調整可能會導致電腦與網絡失去連接。下面這樣的命令可以阻斷與IP地址為220.189.126.2的通信:
route –p add 220.189.126.2 MASK 255.255.255.255 192.168.1.0 METRIC 1 IF 2
需要根據你的計算機調整接口號碼,目的地IP應改為本地網絡上以前不存在的一個地址。
Route命令詳解
在本地 IP 路由表中顯示和修改條目。
語法
route [-f] [-p] [Command [Destination] [mask Net mask] [Gateway] [metric Metric]] [if Interface]]
參數
-f:
清除所有不是主路由(子網掩碼為 255.255.255.255 的路由)、環回網絡路由(目標為 127.0.0.0,網掩碼為 255.255.255.0 的路由)或多播路由(目標為 224.0.0.0,網掩碼為 240.0.0.0 的路由)的條目的路由表。如果它與命令之一(例如 add、change 或 delete)結合使用,表會在運行命令之前清除。
-p:
與 add 命令共同使用時,指定路由被添加到注冊表並在啟動 TCP/IP 協議的時候初始化 IP 路由表。默認情況下,啟動 TCP/IP 協議時不會保存添加的路由。與 print 命令一起使用時,則顯示永久路由列表。所有其它的命令都忽略此參數。永久路由存儲在注冊表中的位置是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes。
下表列出了有效的命令:
Add:添加路由
Change:更改現存路由
Delete:刪除路由
Print:打印路由
Destination:指定路由的網絡目標地址。目標地址可以是一個 IP 網絡地址(其中網絡地址的主機地址位設置為 0),對於主機路由是 IP 地址,對於默認路由是 0.0.0.0。mask subnetmask指定與網絡目標地址相關聯的網掩碼(又稱之為子網掩碼)。對於主機路由是 255.255.255.255 ,對於默認路由是 0.0.0.0。如果忽略,則使用子網掩碼 255.255.255.255。定義路由時由於目標地址和子網掩碼之間的關系,目標地址不能比它對應的子網掩碼更為詳細。換句話說,如果子網掩碼的一位是 0,則目標地址中的對應位就不能設置為 1。
Gateway:指定過由網絡目標和子網掩碼定義的可達到的地址集的前一個或下一個躍點 IP 地址。對於本地連接的子網路由,網關地址是分配給連接子網接口的 IP 地址。對於要經過一個或多個路由器才可用到的遠程路由,網關地址是一個分配給相鄰路由器的、可直接達到的 IP 地址。
Metric:為路由指定所需躍點數的整數值(范圍是 1 ~ 9999),它用來在路由表里的多個路由中選擇與轉發包中的目標地址最為匹配的路由。所選的路由具有最少的躍點數。躍點數能夠反映躍點的數量、路徑的速度、路徑可靠性、路徑吞吐量以及管理屬性。
if Interface:指定目標可以到達的接口的接口索引。使用 route print 命令可以顯示接口及其對應接口索引的列表。對於接口索引可以使用十進制或十六進制的值。對於十六進制值,要在十六進制數的前面加上 0x。忽略 if 參數時,接口由網關地址確定。
路由表中躍點數 一列的值較大是由於允許 TCP/IP 根據每個 LAN接口的 IP 地址、子網掩碼和默認網關的配置自動確定路由表中路由的躍點數造成的。默認啟動的自動確定接口躍點數確定了每個接口的速度,調整了每個接口的路由躍點數,因此最快接口所創建的路由具有最低的躍點數。要刪除大躍點數,請在每個 LAN 連接的 TCP/IP 協議的高級屬性中禁用自動確定接口躍點數。
如果是 print 或 delete 命令,可以忽略 Gateway 參數,使用通配符來表示目標和網關。Destination 的值可以是由星號 () 指定的通配符。如果指定目標含有一個星號 () 或問號 (?),它被看作是通配符,只打印或刪除匹配的目標路由。星號代表任意一字符序列,問號代表任一字符。例如, 10..1, 192.168.、 127.* 和 224 都是星號通配符的有效使用。
使用了無效的目標和子網掩碼(網掩碼)值的組合,會顯示“Route:bad gateway address netmask”錯誤消息。目標中有一位或多位設置為 1,而其在子網掩碼中的對應位設置為0時會發生這個錯誤。可以通過二進制表示法表示目標和子網掩碼來檢查這種情況。以二進制表示的子網掩碼包括表示目標網絡地址部分的一連串的 1 和表示目標主機地址部分的一連串的 0 兩個部分。查看目標以確定目標的主機地址部分(由子網掩碼所定義)是否有些位設置成了 1。
只有 Windows NT 4.0、Windows 2000、Windows Millennium Edition 和 Windows XP 的 route 命令支持 -p 參數。Windows 95 或 Windows 98 的 route 命令不支持該參數。
只有當網際協議 (TCP/IP) 協議在 網絡連接中安裝為網絡適配器屬性的組件時,該命令才可用。
route命令的常用舉例:
要顯示 IP 路由表的完整內容,請鍵入:Route print
要顯示 IP 路由表中以 10. 開始的路由,請鍵入:Route print 10.*
要添加默認網關地址為 192.168.12.1 的默認路由,請鍵入:
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1
要添加目標為 10.41.0.0,子網掩碼為 255.255.0.0,下一個躍點地址為 10.27.0.1 的路由,請鍵入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1
要添加目標為 10.41.0.0,子網掩碼為 255.255.0.0,下一個躍點地址為 10.27.0.1 的永久路由,請鍵入:
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1
要添加目標為 10.41.0.0,子網掩碼為 255.255.0.0,下一個躍點地址為 10.27.0.1,躍點數為 7 的路由,請鍵入:route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7
要添加目標為 10.41.0.0,子網掩碼為 255.255.0.0,下一個躍點地址為 10.27.0.1,接口索引為 0x3 的路由,請鍵入:route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3
要刪除目標為 10.41.0.0,子網掩碼為 255.255.0.0 的路由,請鍵入:
route delete 10.41.0.0 mask 255.255.0.0
要刪除 IP 路由表中以 10. 開始的所有路由,請鍵入:Route delete 10.*
要將目標為 10.41.0.0,子網掩碼為 255.255.0.0 的路由的下一個躍點地址由 10.27.0.1 更改為 10.27.0.25,請鍵入:Route change 10.41.0.0 mask 255.255.0.0 10.27.0.25
過修改文件/etc/defaultrouter可以設置一些默認路由