天天看點

route指令學習筆記

    

route

指令用來顯示并設定Linux核心中的網絡路由表,

route

指令設定的路由主要是靜态路由。要實作兩個不同的子網之間的通信,需要一台連接配接兩個網絡的路由器,或者同時位于兩個網絡的網關來實作。

    在Linux系統中設定路由通常是為了解決以下問題:該Linux系統在一個區域網路中,區域網路中有一個網關,能夠讓機器通路Internet,那麼就需要将這台機器的ip位址設定為Linux機器的預設路由。要注意的是,直接在指令行下執行route指令來添加路由,不會永久儲存,當網卡重新開機或者機器重新開機之後,該路由就失效了;可以在/etc/rc.local中添加route指令來保證該路由設定永久有效。

route的文法

route [opt]

  1. route的選項
選項 含義
-A 設定位址類型
-C 列印将Linux核心的路由緩存
-v 詳細資訊模式
-n 不執行DNS反向查找,直接顯示數字形式的IP位址
-e netstat格式顯示路由表
-net 到一個網絡的路由表
-host 到一個主機的路由表
  1. route的參數
參數 含義
Add 增加指定的路由記錄
Del 删除指定的路由記錄
Target 目的網絡或目的主機
gw 設定預設網關
mss 設定TCP的最大區塊長度(MSS),機關MB
window 指定通過路由表的TCP連接配接的TCP視窗大小
dev 路由記錄所表示的網絡接口

route的執行個體

  1. 顯示目前路由

    使用指令:

    route

    顯示目前的路由資訊。
    route指令學習筆記
    上述資料中表頭的含義說明:
字段名 含義
Destination 目标網絡或目标主機
Gateway 網關位址,如果沒有就顯示星号
Genmask 網絡掩碼
Flags 總共有多個旗标
Metric 距離、跳數。暫無用
Ref 不用管,恒為0
Use 該路由被使用的次數,可以粗略估計通向指定網絡位址的網絡流量
Iface 接口,即eth0,eth0等網絡接口名

其中Flags為路由标志,标記目前網絡節點的狀态,Flags标志說明:

辨別 含義
U Up表示此路由目前為啟動狀态。
H Host,表示此網關為一主機。
G Gateway,表示此網關為一路由器。
R Reinstate Route,使用動态路由重新初始化的路由。
D Dynamically,此路由是動态性地寫入。
M Modified,此路由是由路由守護程式或導向器動态修改。
! 表示此路由目前為關閉狀态。

上圖中,從上到下依次是路由排列順序(忽略中間的docker路由),依次是大域網到小域網。資料的傳遞根據這個路由表來判斷傳遞到哪邊。

例如:

若有一個資料包需要傳遞到

172.20.x.x

的包,找到

172.20.0.0

這個路由的時候就會直接從網口

ens33

傳遞出去。

若有一個網際網路上的包

14.215.177.38

,找到第2,3個

172.17.0.0

172.20.0.0

時,均沒有路由能夠比對,就傳遞到了

0.0.0.0

上的路由表上,然後傳遞出去。

  1. 添加路由

    增加一條到達

    13.1.1.0、24

    這個網段的路由,從網卡

    eth0

    出去

    route add -net 13.1.1.0 netmask 255.255.255.0 dev eth0

    route指令學習筆記
  2. 删除路由

    删除剛才添加的路由

    route del -net 13.1.1.0 netmask 255.255.255.0 dev eth0

    route指令學習筆記
  3. 增加一個預設網關

    設定一個預設網關,需要保證gateway(gw)的IP和eth0(本機IP)在同一個網段内。下面的

    172.20.36.0

    和網卡對應的位址

    172.20.35.40

    在同一網段,添加成功。

    route add default gw 172.20.36.0

    route指令學習筆記
    若網關位址和本機位址不在一個網段則會提示

    SIOCADDRT: 網絡不可達

    ,我們嘗試添加一個網段為

    12.1.1.13

    的網關時:
    route指令學習筆記

繼續閱讀