linux 路由表詳解


一、查看路由表

[root@VM_139_74_centos ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 eth0
10.0.0.10       10.139.128.1    255.255.255.255 UGH   0      0        0 eth0
10.139.128.0    0.0.0.0         255.255.224.0   U     0      0        0 eth0
link-local      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.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-0ab63c131848
172.19.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-bccbfb788da0
172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-7485db25f958
[root@VM_139_74_centos ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.139.128.1    0.0.0.0         UG    0      0        0 eth0
10.0.0.10       10.139.128.1    255.255.255.255 UGH   0      0        0 eth0
10.139.128.0    0.0.0.0         255.255.224.0   U     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.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-0ab63c131848
172.19.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-bccbfb788da0
172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-7485db25f958

二、路由表各字段說明

Destination 目標網絡或目標主機。Destination 為 default(0.0.0.0)時,表示這個是默認網關,所有數據都發到這個網關(這里是 10.139.128.1
Gateway 網關地址,0.0.0.0 表示當前記錄對應的 Destination 跟本機在同一個網段,通信時不需要經過網關(同一個局域網內2台主機通信不需要經過網關)
Genmask Destination 字段的網絡掩碼,Destination 是主機時需要設置為 255.255.255.255,是默認路由時會設置為 0.0.0.0
Flags

標志

  • U - Up表示有效
  • G - Gateway表示連接路由,若無這個字段表示直連目的地址
  • H - Host表示目標是具體主機,而不是網段
  • R 恢復動態路由產生的表項
  • D 由路由的后台程序動態地安裝
  • M 由路由的后台程序修改
  • ! 拒絕路由
 Metric  路由距離,到達指定網絡所需的中轉數,是大型局域網和廣域網設置所必需的 (不在Linux內核中使用。)
 Ref  路由項引用次數 (不在Linux內核中使用。)
 Use  此路由項被路由軟件查找的次數
 Iface  網卡名字,例如 eth0;要去往這個網段需要使用哪一個網絡接口。也就是eth0這張網卡

 

三、linux路由的種類

1、主機路由,路由表中指向單個 IP 地址或主機名的路由記錄,其 Flags 字段為 H。下面示例中,對於 10.0.0.10 這個主機,通過網關 10.139.128.1 網關路由:

[root@VM_139_74_centos ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.10       10.139.128.1    255.255.255.255 UGH   0      0        0 eth0
...

2、網絡路由,主機可以到達的網絡。下面示例中,對於 10.0.0.0/24 這個網絡,通過網關 10.139.128.1 網關路由:

[root@VM_139_74_centos ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        10.139.128.1    255.255.255.0   UG    0      0        0 eth0

3、默認路由,當目標主機的 IP 地址或網絡不在路由表中時,數據包就被發送到默認路由(默認網關)上。默認路由的 Destination 是 default 或 0.0.0.0

[root@VM_139_74_centos ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 eth0

四、route命令

選項:

  • -A:設置地址類型
  • -C:打印 Linux 內核的路由緩存
  • -v:顯示詳細信息
  • -n:不執行 DNS 反向查找,直接顯示數字形式的 IP 地址
  • -e:netstat 格式顯示路由表
  • -net:到一個網絡的路由表
  • -host:到一個主機的路由表

參數:

  • add:增加路由記錄
  • del:刪除路由記錄
  • target:目的網絡或目的主機
  • gw:設置默認網關
  • mss:設置TCP的最大區塊長度(MSS),單位MB
  • window:指定通過路由表的TCP連接的TCP窗口大小
  • dev:路由記錄所表示的網絡接口

1、添加主機路由,添加主機路由時,需要指定網絡 ID 和主機 ID,此時需要設置 netmask 255.255.255.255

[root@VM_139_74_centos ~]# route add -net 10.0.0.10 netmask 255.255.255.255 gw 10.139.128.1 dev eth0
[root@VM_139_74_centos ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.10       10.139.128.1    255.255.255.255 UGH   0      0        0 eth0
...

2、添加網絡路由,添加網絡路由時,只需指定網絡 ID,通過 netmask 設置掩碼長度:

[root@VM_139_74_centos ~]# route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.139.128.1 dev eth0
[root@VM_139_74_centos ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        10.139.128.1    255.255.255.0   UG    0      0        0 eth0
...

3、添加同一個局域網的主機,不指定 gw 選項時,添加的路由記錄不使用網關:

[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
[root@VM_139_74_centos ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
224.0.0.0       0.0.0.0         240.0.0.0       U     0      0        0 eth0
...

4、屏蔽路由

[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
[root@VM_139_74_centos ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
224.0.0.0       -               240.0.0.0       !     0      -        0 -
...

5、刪除可用路由

route del -net 224.0.0.0 netmask 240.0.0.0

6、刪除屏蔽路由

route del -net 224.0.0.0 netmask 240.0.0.0 reject

7、刪除和添加設置默認網關,添加或刪除默認網關時,Linux 會自動檢查網關的可用性:

[root@VM_139_74_centos ~]# route add default gw 192.168.1.1
SIOCADDRT: Network is unreachable
[root@VM_139_74_centos ~]# route del default gw 192.168.1.1
SIOCDELRT: No such process

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM