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顯示當前的路由信息。
    在這裏插入圖片描述
    上述數據中表頭的含義說明:
字段名 含義
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.0172.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
    在這裏插入圖片描述
  2. 刪除路由
    刪除剛纔添加的路由
    route del -net 13.1.1.0 netmask 255.255.255.0 dev eth0
    在這裏插入圖片描述
  3. 增加一個默認網關
    設置一個默認網關,需要保證gateway(gw)的IP和eth0(本機IP)在同一個網段內。下面的172.20.36.0和網卡對應的地址172.20.35.40在同一網段,添加成功。
    route add default gw 172.20.36.0
    在這裏插入圖片描述
    若網關地址和本機地址不在一個網段則會提示SIOCADDRT: 網絡不可達,我們嘗試添加一個網段爲12.1.1.13的網關時:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章