linux下的route命令詳解

2021-07-25 03:58:29 字數 3455 閱讀 6496

路由器的主要工作就是為經過路由器的每個資料報尋找一條最佳的傳輸路徑,並將該資料有效地傳送到目的站點。由此可見,選擇最佳路徑的策略即路

由演算法是路由器的關鍵所在。為了完成這項工作,在路由器中儲存著各種傳輸路徑的相關資料——路由表,表中包含的資訊決定了資料**的策略。

分為:靜態路由表和動態路由表

作用:route命令用於顯示和操作ip路由表。

destination         gateway           genmask         flags   metric   ref   use   iface

default 192.168.146.2 0.0.0.0 ug 0 0 0 eth0

192.168.3.0 * 255.255.255.0 u 1 0 0 eth0

192.168.77.0 * 255.255.255.0 u 0 0 0 eth0

192.168.146.0 * 255.255.255.0 u 0 0 0 eth0

其中,destination: 為"目標網路或目標主機";   

gateway: 為閘道器,如果沒有就顯示星號*;   

genmask :為網路掩碼;

flags:旗標

u —— 路由是活動的;                       

h —— 目標是一部主機 (ip) 而非網域;                       

g —— 路由指向閘道器;                       

r —— 恢復動態路由產生的表項;                       

d —— 由路由的後台程式動態地安裝;                       

m —— 由路由的後台程式修改;                       

! —— 這個路由將不會被接受(用來抵擋不安全的網域!)

metric: 路由距離、跳數(linux核心中沒有使用);

ref: 路由項引用次數(linux 核心中沒有使用)

use: 該路由被使用的次數,可以粗略估計通向指定網路位址的網路流量。

iface: 該路由表項對應的輸出介面,如eth0;

注意:gw  :gateway 的簡寫,即gw後面是閘道器

dev :後面是介面,如eth0  (一般dev可以省略,直接寫 eth0)

例如:route add default gw 192.168.77.1 eth0

route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

(dev可省略,因為沒有設定閘道器,所以gateway為 *)

route add -net 10.0.0.0 netmask 255.0.0.0 reject

(設定到指定網路為不可達,避免在連線到這個網路的位址時程式過長時間的等待,直接就知道該網路不可達。)

注意:引數指定的方式與route add相似。

例如:route del default eth0

del -net 192.56.76.0 netmask 255.255.255.0  eth0 

注意:當出現「siocaddrt: network is unreachable」這個錯誤時,肯定是由於gw後面接的ip無法直接與您的網域溝通  (gateway 並不在你的網域內)。

destination     gateway          genmask         flags   metric   ref   use  iface

192.168.10.0 0.0.0.0 255.255.255.0 u 0 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 u 0 0 0 eth0

0.0.0.0 192.168.10.30 0.0.0.0 ug 0 0 0 eth0

觀察一下上面的路由排列順序,依序是由小網域(192.168.10.0/24 是 class c),逐漸到大網域(169.254.0.0/16 class b) 最後則是預設路由 (0.0.0.0/0.0.0.0)。若我

有乙個傳往 192.168.10.20 的封包要傳遞,那首先會找 192.168.10.0/24 這個網域的路由,找到了!所以直接由 eth0 傳送出去;如果是傳送到yahoo的主機呢?

yahoo的主機ip是202.43.195.52,我通過判斷 

1)不是 192.168.10.0/24,

2)不是 169.254.0.0/16 

3)0/0  時, ok !傳出去了,透過eth0將封包傳給192.168.10.30那部gateway主機啊!所以說,路由是有順序的。

因此當你重複設定多個同樣的路由時,例如在你的主機上的兩張網路卡設定為相同網域的ip時,會出現什麼情況?

destination      gateway        genmask          flags  metric  ref   use   iface

192.168.10.0 0.0.0.0 255.255.255.0 u 0 0 0 eth0

192.168.10.0 0.0.0.0 255.255.255.0 u 0 0 0 eth1

由於路由是依照順序來排列與傳送的,所以不論封包是由那個介面(eth0, eth1)所接收,都會由上述的eth0傳送出去,

所以,在一部主機上面設定兩個相同網域的ip本身沒有什麼意義!

①檢視路由狀態:route print

只檢視ipv4(ipv6)路由狀態:route print-4(-6)

②新增路由:route add 目的網路 mask 子網掩碼 閘道器  (重啟機器或網絡卡失效)

例如:route add 192.168.20.0 mask 255.255.255.0192.168.10.1

③新增永久:route -p add 目的網路 mask子網掩碼閘道器

例如:route -p add 192.168.20.0 mask 255.255.255.0192.168.10.1

④刪除路由:route delete 目的網路 mask 子網掩碼

例如:route delete 192.168.20.0 mask255.255.255.0

linux 路由 route命令

route add default dev eth0 預設路由,將去往未知網路的資料報全部從介面eth0發出去 route del default dev eth0 刪掉剛才配的靜態路由 route add default gw 192.168.1.1 寫預設路由的下一跳位址 netstat rn與...

Linux下route命令的輸出資訊的一些解釋

原貼 http www.51testing.com 175444 action viewspace itemid 87473.html 2008 07 14 09 35 35 個人分類 tcp ip 使用不帶任何引數的route命令將顯示真個路由表,輸出可能如下 kernel ip routing ...

Linux中Route命令了解

原貼 http blog.chinaunix.net u2 77761 showart 1156991.html 在配置網路時,要為機器指定接收資料報時該包要經過的路徑。在linux系統中,提供乙個命令route,這個命令可以為ifconfig命令配置的網絡卡設定靜態路由。這種設定工作通常在 etc...