2011-12-22 39 views
33

我想問一個關於Linux中的路由命令的問題。我在Linux終端瞭解路由表項

>route 

輸入下面的命令,並得到輸出

Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
192.168.1.0  *    255.255.255.0 U  1  0  0 eth0 
192.168.122.0 *    255.255.255.0 U  0  0  0 virbr0 
link-local  *    255.255.0.0  U  1000 0  0 eth0 
default   192.168.1.1  0.0.0.0   UG 0  0  0 eth0 

我不明白。這是否意味着任何使用ip 192.168.1.0的數據包將從* gateway出去? 爲什麼它寫的DESTINATION不應該是源,因爲從我的主機發出的數據包的源IP爲192.168.1.0?

任何人都可以解釋我的包走出去,來到我的主人而言,這條目的含義是什麼?

+0

什麼是您的計算機的IP地址?我相信192.168.1.0通常是一個路由器。在終端上查找IP類型'ip addr show'。 – 2011-12-22 04:29:17

+0

@Drew我的IP是192.168.1.115 – mainajaved 2011-12-22 04:43:02

回答

49

讓我們通過線路逐一:

Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
192.168.1.0  *    255.255.255.0 U  1  0  0 eth0 

這表示通過192.168.1.255一個192.168.1.0的目標的任何數據包將被髮送出去eth0,而不使用網關(除非更多 - 具體路線覆蓋這一個)。

Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
192.168.122.0 *    255.255.255.0 U  0  0  0 virbr0 

這表示通過192.168.122.255一個192.168.122.0的目標的任何數據包將被髮送出去virbr0沒有使用網關。 (同樣,除非一個更具體的路由覆蓋此一個。)

Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
link-local  *    255.255.0.0  U  1000 0  0 eth0 

這表示有link-local address任何數據包將被髮送出去接口eth0,沒有網關。

Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
default   192.168.1.1  0.0.0.0   UG 0  0  0 eth0 

這是說,任何數據包發送到目的地,沒有其他路線將使用192.168.1.1作爲網關發送出去eth0

+0

謝謝,但你能告訴我爲什麼它的目的地不應該是源? – mainajaved 2011-12-22 04:45:21

+5

爲什麼會這樣?如果你在波士頓,去芝加哥,你選擇哪條路取決於你是在休斯敦還是孟菲斯?數據包現在在這臺機器上,或者這臺機器不會路由它。重要的是它需要去的地方。誰在乎它來自哪裏? – 2011-12-22 04:47:47

+0

這是本地目的地,除非它直接連接到互聯網,否則您的計算機無法將數據包發送到除192.168.1。(0-255)以外的任何IP。數據包將前往路由器,該路由器將檢查數據包的外部IP並相應地路由它。 – 2011-12-22 04:52:15

0

192.168.1.0(-255)是本地目標,一旦達到其本地目標(最有可能的192.168.1.1,您的路由器),它將被重新路由到外部IP目的地。這顯示了您的計算機如何選擇發送相對簡單的數據包,因爲大多數(如果不是全部)離開計算機的數據包在發送到目的地之前都會前往您的路由器。

一個更有趣的路由表將是您的路由器這將處理許多外部和內部的目的地的。如果你調查了這一點,你將能夠學到更多關於路由的知識。

5
  • 目的地=數據包要前往

「默認」的網絡地址,意味着如果目標沒有任何的比使用此規則的其他規則中。

  • Genmask =子網掩碼

如果有,用於所述輸出數據包的工作路由表多於一個的地址,具有較高子網掩碼規則將被使用。如果這些聯繫在一起,那麼度量標準就會起作用,但根據使用的協議,這將會有所不同。

  • 接口=板載連接

例如,我對目前的筆記本電腦有三個接口:

  1. 以太網卡
  2. 無線網卡
  3. 藍牙

路由器通常每邊至少有2個接口,每個網絡都有1個接口。對於大多數家庭路由器,1個接口是您的家庭網絡的一部分,另一個接口是通向您的ISP的外部網絡的一部分。

  • 網關=下一跳

這其中,如果所述目的地是不一樣的網絡作爲發送該分組將被髮送。

如果該值是「*」或「ON-鏈接」或當前設備......這些都意味着同樣的事情的地址。這意味着數據包被髮送到當前主機可直接訪問的設備。換句話說,它們在同一個網絡中,所以網關實際上不會被使用,因爲主機將知道目的地的數據鏈路層(MAC)地址,並且能夠直接在那裏發送它。在這種情況下,這些值僅用於人類的可讀性。

作爲用於發送數據包的過程:

  • 目的地和Genmask用於找出哪些規則是一個 匹配的輸出數據包的目的地地址。
  • 接口用於決定機器 上的哪個通信設備發送它。
  • 網關是在同一網絡上的設備,它將 數據包發送到(通過)的地址。