route命令
阿新 • • 發佈:2022-03-11
轉載:https://www.kancloud.cn/chunyu/php_basic_knowledge/2106519
route命令詳解
route命令用於顯示和操作IP靜態路由表。
路由表,指的是路由器或者其他網際網路網路裝置上儲存的表,該表中存有到達特定網路終端的路徑,在某些情況下,還有一些與這些路徑相關的度量。路由器的主要工作就是為經過路由器的每個資料包尋找一條最佳的傳輸路徑,並將該資料有效地傳送到目的站點。由此可見,選擇最佳路徑的策略即路由演算法是路由器的關鍵所在。為了完成這項工作,在路由器中儲存著各種傳輸路徑的相關資料——路由表(Routing Table),供路由選擇時使用,表中包含的資訊決定了資料轉發的策略。
route命令從/proc/net/route
檔案中取資料,裝置名不變、目的地址從右到左每兩位十六進位制顯示,標誌位有1、3兩種,分別是U和UG,掩碼和目的地
命令格式:
- route [-CFvnee]
- route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I][reject] [mod] [dyn] [reinstate] [[dev] If]
- route [-v] [-A family] del [-net|-host] target [gw Gw][netmask Nm] [metric N] [[dev] If]
- route [-V] [--version] [-h] [--help]
option:
- -v:顯示詳細的處理資訊
- -A family:用指定的地址族(如inet,inet6)
- -n:以數字形式代替解釋主機名形式來顯示地址
- -e:用netstat(8)的格式來顯示選路表
- -ee:使用更詳細的資訊來顯示
- -net:到一個網路的路由表
- -host:到一個主機的路由表
- -F:顯示核心的FIB選路表。其格式可以用-e 和 -ee選項改變
- -C:顯示核心的路由快取
- del :刪除一條路由
- add:新增一條路由
- target:指定目標網路或主機。可以用點分十進位制形式的IP地址或主機/網路名
- netmask Nm:為新增的路由指定網路掩碼
- gw Gw:為發往目標網路/主機的任何分組指定閘道器。注意:指定的閘道器首先必須是可達的。也就是說必須為該閘道器預先指定一條靜態路由。如果你為本地介面之一指定這個閘道器地址的話,那麼此閘道器地址將用於決定此介面上的分組將如何進行路由
- metric M:把選路表中的路由值欄位(由選路程序使用)設為M
- mss M:把基於此路由之上的連線的TCP最大報文段長度設為M位元組。這通常只用於優化選路設定。預設值為536
- window W:把基於此路由之上的連線的TCP視窗長度設為W位元組。這通常只用於AX.25網路和不能處理背對背形式的幀的裝置
- irtt I:把基於此路由之上的TCP連線的初始往返時間設為I毫秒(1-12000)。這通常也只用於AX.25網路。如果省略此選項,則使用RFC1122的預設值300ms
- reject:設定一條阻塞路由以使一條路由查詢失敗。這用於在使用預設路由前先遮蔽掉一些網路。但這並不起到防火牆的作用
- mod, dyn, reinstate:設定一條動態的或更改過的路由。這些標誌通常只由選路程序來設定。這隻用於診斷目的
- dev If:強制使路由與指定的裝置關聯,因為否則核心會自己來試圖檢測相應的裝置(通常檢查已存在的路由和加入路由的裝置的規格)。在多數正常的網路上無需使用
命令示例 | 解釋 |
---|---|
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 | 向"eth0"新增一條指向網路192.56.76.x的路由 |
route add -host 10.60.60.143 gw 10.20.30.40 | 新增到主機的路由 |
route add default gw mango-gw | 新增一條預設路由(如果無法匹配其它路由則用它)。使用此路由的所有分組將通過閘道器"mango-gw"進行傳輸。實際使用此路由的裝置取決於如何到達"mango-gw" - 先前必須設好到"mango-gw"的靜態路由。 |
route add 10.0.0.0 netmask 255.0.0.0 reject | 此命令為私有網路"10.x.x.x."設定一條阻塞路由 |
route del -net 192.56.76.0 netmask 255.255.255.0 dev eth0 | 刪除192.56.76.0的路由 |
route del default gw 192.168.1.1 eth0 | 刪除預設路由 |
route 輸出結果解析:
- Destination:目標網路或目標主機
- Gateway:閘道器地址或 '*' (如未設定)
- Genmask:目標網路的子網掩碼;'255.255.255.255'為主機,'0.0.0.0'為預設路由
- Flags:路由標誌
- U (route is up) :路由正常
- H (target is a host) :主機路由
- G (use gateway) :使用閘道器的間接路由
- R (reinstate route for dynamic routing) :為動態選路恢復路由
- D (dynamically installed by daemon or redirect) :該路由由選路程序或重定向動態建立
- M (modified from routing daemon or rederict) :該路由已由選路程序或重定向修改
- ! (reject route) :阻塞路由
- Metric:通向目標的距離(通常以跳來計算)
- Ref:使用此路由的活動程序個數(Linux核心並不使用)
- Use:查詢此路由的次數。根據-F 和 -C的使用,此數值是路由快取的損失數或採樣數
- Iface:使用此路由傳送分組的介面(網絡卡名字)
- MSS:基於此路由的TCP連線的預設最大報文段長度
- Window:基於此路由的TCP連線的預設視窗長度
- irtt:初始往返時間。核心用它來猜測最佳TCP協議引數而無須等待(可能很慢的)應答
- HH (cached only):為快取過的路由而訪問硬體報頭快取的ARP記錄和快取路由的數量。如果快取過路由的介面(如lo)無須硬體地址則值為-1
- Arp (cached only):無論快取路由所用的硬體地址情況如何都進行更新
[root@izwz91quxhnlkan8kjak5hz proc]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.31.253 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-f572ccdc289a
[root@izwz91quxhnlkan8kjak5hz proc]# route -e
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-f572ccdc289a
[root@izwz91quxhnlkan8kjak5hz proc]# route -ee
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
default gateway 0.0.0.0 UG 0 0 0 eth0 0 0 0
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0 0 0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker 0 0 0
172.18.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 0 0 0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-f57 0 0 0
永久修改路由:
直接執行route命令來新增路由,是不會永久儲存的,當網絡卡重啟或者機器重啟之後,該路由就失效了。要想永久儲存,可以儲存到配置檔案。linux 預設只支援一條預設路由,當重新啟動網口時,會把其他預設路由去掉,只剩下一條該網口生成的預設路由。
-
/etc/sysconfig/static-routes
檔案為路由固化檔案,但是linux系統一般不會自動生成,需要手動建立。 - 在檔案內編輯路由,路由格式是固定的:
- 新增預設路由:any net 0.0.0.0 netmask 0.0.0.0 gw 10.60.60.1
- 新增網路路由:any net 1.1.1.0 netmask 255.255.255.0 gw 10.60.60.1
route 和 ip route的區別:
-
ip route
以其最簡單的形式可用於顯示輸出主路由表。該命令的輸出與route
的輸出明顯不同。 - 可以通過
ip route show table local
命令檢視本地路由表,而route
命令無法檢視。 -
ip route add
與route add
一樣,可以用於新增路由,但是ip route add
提供了更多route
命令無法實現的選項,如prohibit
、from
、src