linux 路由表設置 之 route 指令詳解

inux 路由表設置 之 route 指令詳解

2016年08月07日 11:25:58 xingpacer 閱讀數:43344更多linux

我的分類: 資料集數據庫

使用下面的 route 命令能夠查看 Linux 內核路由表。緩存

 

[cpp] view plain copy網絡

  1. # route  
  2. Destination     Gateway         Genmask Flags Metric Ref    Use Iface  
  3. 192.168.0.0     *               255.255.255.0   U     0      0        0 eth0  
  4. 169.254.0.0     *               255.255.0.0     U     0      0        0 eth0  
  5. default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0 

route 命令的輸出項說明工具

輸出項 說明ui

Destination 目標網段或者主機
Gateway 網關地址,」*」 表示目標是本主機所屬的網絡,不須要路由
Genmask 網絡掩碼
Flags 標記。一些可能的標記以下:
  U — 路由是活動的
  H — 目標是一個主機
  G — 路由指向網關
  R — 恢復動態路由產生的表項
  D — 由路由的後臺程序動態地安裝
  M — 由路由的後臺程序修改
  ! — 拒絕路由
Metric 路由距離,到達指定網絡所需的中轉數(linux 內核中沒有使用)
Ref 路由項引用次數(linux 內核中沒有使用)
Use 此路由項被路由軟件查找的次數
Iface 該路由表項對應的輸出接口

3 種路由類型

主機路由

主機路由是路由選擇表中指向單個IP地址或主機名的路由記錄。主機路由的Flags字段爲H。例如,在下面的示例中,本地主機經過IP地址192.168.1.1的路由器到達IP地址爲10.0.0.10的主機。spa

Destination    Gateway       Genmask Flags     Metric    Ref    Use    Iface
-----------    -------     -------            -----     ------    ---    ---    -----
10.0.0.10     192.168.1.1    255.255.255.255   UH       0    0      0    eth0

網絡路由

網絡路由是表明主機能夠到達的網絡。網絡路由的Flags字段爲N。例如,在下面的示例中,本地主機將發送到網絡192.19.12的數據包轉發到IP地址爲192.168.1.1的路由器。.net

Destination    Gateway       Genmask Flags    Metric    Ref     Use    Iface
-----------    -------     -------         -----    -----   ---    ---    -----
192.19.12     192.168.1.1    255.255.255.0      UN      0       0     0    eth0

默認路由

當主機不能在路由表中查找到目標主機的IP地址或網絡路由時,數據包就被髮送到默認路由(默認網關)上。默認路由的Flags字段爲G。例如,在下面的示例中,默認路由是IP地址爲192.168.1.1的路由器。命令行

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

配置靜態路由

route 命令

設置和查看路由表均可以用 route 命令,設置內核路由表的命令格式是:code

# route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

其中:

  • add : 添加一條路由規則
  • del : 刪除一條路由規則
  • -net : 目的地址是一個網絡
  • -host : 目的地址是一個主機
  • target : 目的網絡或主機
  • netmask : 目的地址的網絡掩碼
  • gw : 路由數據包經過的網關
  • dev : 爲路由指定的網絡接口

route 命令使用舉例

添加到主機的路由 

 

 
  1. # route add -host 192.168.1.2 dev eth0

  2. # route add -host 10.20.30.148 gw 10.20.30.40 #添加到10.20.30.148的網管

添加到網絡的路由 

 

 
  1. # route add -net 10.20.30.40 netmask 255.255.255.248 eth0 #添加10.20.30.40的網絡

  2. # route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #添加10.20.30.48的網絡

  3. # route add -net 192.168.1.0/24 eth1

添加默認路由 

 

# route add default gw 192.168.1.1

刪除路由 

 

 
  1. # route del -host 192.168.1.2 dev eth0:0

  2. # route del -host 10.20.30.148 gw 10.20.30.40

  3. # route del -net 10.20.30.40 netmask 255.255.255.248 eth0

  4. # route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41

  5. # route del -net 192.168.1.0/24 eth1

  6. # route del default gw 192.168.1.1

設置包轉發

在 CentOS 中默認的內核配置已經包含了路由功能,但默認並無在系統啓動時啓用此功能。開啓 Linux 的路由功能能夠經過調整內核的網絡參數來實現。要配置和調整內核參數可使用 sysctl 命令。例如:要開啓 Linux 內核的數據包轉發功能可使用以下的命令。

 

# sysctl -w net.ipv4.ip_forward=1

這樣設置以後,當前系統就能實現包轉發,但下次啓動計算機時將失效。爲了使在下次啓動計算機時仍然有效,須要將下面的行寫入配置文件/etc/sysctl.conf。

 

 
  1. # vi /etc/sysctl.conf

  2. net.ipv4.ip_forward = 1

用戶還可使用以下的命令查看當前系統是否支持包轉發。

 

# sysctl net.ipv4.ip_forward

 

route 命令:

Linux系統的route命令用於顯示和操做IP路由表(show / manipulate the IP routing table)。要實現兩個不一樣的子網之間的通訊,須要一臺鏈接兩個網絡的路由器,或者同時位於兩個網絡的網關來實現。在Linux系統中,設置路由一般是爲了解決如下問題:該Linux系統在一個局域網中,局域網中有一個網關,可以讓機器訪問Internet,那麼就須要將這臺機器的IP地址設置爲Linux機器的默認路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啓或者機器重啓以後,該路由就失效了;能夠在/etc/rc.local中添加route命令來保證該路由設置永久有效。

1.命令格式:

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]] 

2.命令功能:

Route命令是用於操做基於內核ip路由表,它的主要做用是建立一個靜態路由讓指定一個主機或者一個網絡經過一個網絡接口,如eth0。當使用"add"或者"del"參數時,路由表被修改,若是沒有參數,則顯示路由表當前的內容。

3.命令參數:

-c 顯示更多信息

-n 不解析名字

-v 顯示詳細的處理信息

-F 顯示發送信息

-C 顯示路由緩存

-f 清除全部網關入口的路由表。 

-p 與 add 命令一塊兒使用時使路由具備永久性。

 

add:添加一條新路由。

del:刪除一條路由。

-net:目標地址是一個網絡。

-host:目標地址是一個主機。

netmask:當添加一個網絡路由時,須要使用網絡掩碼。

gw:路由數據包經過網關。注意,你指定的網關必須可以達到。

metric:設置路由跳數。

 

Command 指定您想運行的命令 (Add/Change/Delete/Print)。 

Destination 指定該路由的網絡目標。 

mask Netmask 指定與網絡目標相關的網絡掩碼(也被稱做子網掩碼)。 

Gateway 指定網絡目標定義的地址集和子網掩碼能夠到達的前進或下一躍點 IP 地址。 

metric Metric 爲路由指定一個整數成本值標(從 1 至 9999),當在路由表(與轉發的數據包目標地址最匹配)的多個路由中進行選擇時可使用。 

if Interface 爲能夠訪問目標的接口指定接口索引。若要得到一個接口列表和它們相應的接口索引,使用 route print 命令的顯示功能。可使用十進制或十六進制值進行接口索引。

 

4.使用實例:

實例1:顯示當前路由

命令:

route

route -n

輸出:

 

 

 
  1. [root@localhost ~]# route

  2. Kernel IP routing table

  3. Destination Gateway Genmask Flags Metric Ref Use Iface

  4. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0

  5. e192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  6. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  7. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0

  8. [root@localhost ~]# route -n

  9. Kernel IP routing table

  10. Destination Gateway Genmask Flags Metric Ref Use Iface

  11. 192.168.120.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

  12. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  13. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  14. 0.0.0.0 192.168.120.240 0.0.0.0 UG 0 0 0 eth0

 

說明:

第一行表示主機所在網絡的地址爲192.168.120.0,若數據傳送目標是在本局域網內通訊,則可直接經過eth0轉發數據包;

第四行表示數據傳送目的是訪問Internet,則由接口eth0,將數據包發送到網關192.168.120.240

其中Flags爲路由標誌,標記當前網絡節點的狀態。

Flags標誌說明:

U Up表示此路由當前爲啓動狀態

H Host,表示此網關爲一主機

G Gateway,表示此網關爲一路由器

R Reinstate Route,使用動態路由從新初始化的路由

D Dynamically,此路由是動態性地寫入

M Modified,此路由是由路由守護程序或導向器動態修改

! 表示此路由當前爲關閉狀態

 

備註:

route -n (-n 表示不解析名字,列出速度會比route 快)

 

實例2:添加網關/設置網關

命令:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

輸出:

 

 
  1. [root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

  2. [root@localhost ~]# route

  3. Kernel IP routing table

  4. Destination Gateway Genmask Flags Metric Ref Use Iface

  5. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0

  6. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  7. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  8. 224.0.0.0 * 240.0.0.0 U 0 0 0 eth0

  9. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0

 

[root@localhost ~]#  

說明:

增長一條 到達244.0.0.0的路由

 

實例3:屏蔽一條路由

命令:

route add -net 224.0.0.0 netmask 240.0.0.0 reject

輸出:

 

 

 
  1. [root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject

  2. [root@localhost ~]# route

  3. Kernel IP routing table

  4. Destination Gateway Genmask Flags Metric Ref Use Iface

  5. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0

  6. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  7. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  8. 224.0.0.0 - 240.0.0.0 ! 0 - 0 -

  9. 224.0.0.0 * 240.0.0.0 U 0 0 0 eth0

  10. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0

 

說明:

增長一條屏蔽的路由,目的地址爲 224.x.x.x 將被拒絕

 

實例4:刪除路由記錄

命令:

route del -net 224.0.0.0 netmask 240.0.0.0

route del -net 224.0.0.0 netmask 240.0.0.0 reject

輸出:

 

 

 
  1. [root@localhost ~]# route

  2. Kernel IP routing table

  3. Destination Gateway Genmask Flags Metric Ref Use Iface

  4. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0

  5. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  6. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  7. 224.0.0.0 - 240.0.0.0 ! 0 - 0 -

  8. 224.0.0.0 * 240.0.0.0 U 0 0 0 eth0

  9. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0

  10. [root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0

  11. [root@localhost ~]# route

  12. Kernel IP routing table

  13. Destination Gateway Genmask Flags Metric Ref Use Iface

  14. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0

  15. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  16. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  17. 224.0.0.0 - 240.0.0.0 ! 0 - 0 -

  18. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0

  19. [root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject

  20. [root@localhost ~]# route

  21. Kernel IP routing table

  22. Destination Gateway Genmask Flags Metric Ref Use Iface

  23. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0

  24. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  25. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  26. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0

  27. [root@localhost ~]#

 

說明:

 

實例5:刪除和添加設置默認網關

命令:

route del default gw 192.168.120.240

route add default gw 192.168.120.240

輸出:

 

 
  1. [root@localhost ~]# route del default gw 192.168.120.240

  2. [root@localhost ~]# route

  3. Kernel IP routing table

  4. Destination Gateway Genmask Flags Metric Ref Use Iface

  5. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0

  6. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  7. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  8. [root@localhost ~]# route add default gw 192.168.120.240

  9. [root@localhost ~]# route

  10. Kernel IP routing table

  11. Destination Gateway Genmask Flags Metric Ref Use Iface

  12. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0

  13. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0

  14. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0

  15. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0

  16. [root@localhost ~]#

 

 

 
  1. 顯示如今全部路由

  2.  
  3.   #route -n

  4.  
  5.   root@Ubuntu:~# route

  6.  
  7.   Kernel IP routing table

  8.  
  9.   Destination Gateway Genmask Flags Metric Ref Use Iface

  10.  
  11.   10.147.9.0 * 255.255.255.0 U 1 0 0 eth0

  12.  
  13.   192.168.1.0 * 255.255.255.0 U 2 0 0 wlan0

  14.  
  15.   192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0

  16.  
  17.   link-local * 255.255.0.0 U 1000 0 0 eth0

  18.  
  19.   192.168.0.0 192.168.1.1 255.255.0.0 UG 0 0 0 wlan0

  20.  
  21.   default 10.147.9.1 0.0.0.0 UG 0 0 0 eth0

  22.  
  23.   root@Ubuntu:~#

  24.  
  25.   結果是自上而下, 就是說, 哪條在前面, 哪條就有優先, 前面都沒有, 就用最後一條default

  26.  
  27.   舉例, 添加一條路由(發往192.168.62這個網段的所有要通過網關192.168.1.1)

  28.  
  29.   route add -net 192.168.62.0 netmask 255.255.255.0 gw 192.168.1.1

  30.  
  31.   刪除一條路由

  32.  
  33.   route del -net 192.168.122.0 netmask 255.255.255.0

  34.  
  35.   刪除的時候不用寫網關

  36.  
  37.   linux下添加路由的方法:

  38.  
  39.   一:使用 route 命令添加

  40.  
  41.   使用route 命令添加的路由,機器重啓或者網卡重啓後路由就失效了,方法:

  42.  
  43.   //添加到主機的路由

  44.  
  45.   # route add –host 192.168.168.110 dev eth0

  46.  
  47.   # route add –host 192.168.168.119 gw 192.168.168.1

  48.  
  49.   //添加到網絡的路由

  50.  
  51.   # route add –net IP netmask MASK eth0

  52.  
  53.   # route add –net IP netmask MASK gw IP

  54.  
  55.   # route add –net IP/24 eth1

  56.  
  57.   //添加默認網關

  58.  
  59.   # route add default gw IP

  60.  
  61.   //刪除路由

  62.  
  63.   # route del –host 192.168.168.110 dev eth0

  64.  
  65.   二:在linux下設置永久路由的方法:

  66.  
  67.   1.在/etc/rc.local裏添加

  68.  
  69.   方法:

  70.  
  71.   route add -net 192.168.3.0/24 dev eth0

  72.  
  73.   route add -net 192.168.2.0/24 gw 192.168.3.254

  74.  
  75.   2.在/etc/sysconfig/network裏添加到末尾

  76.  
  77.   方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev

  78.  
  79.   3./etc/sysconfig/static-router :

  80.  
  81.   any net x.x.x.x/24 gw y.y.y.y

  82.  
  83.  
  84. ------------------------------------------------------------------------------------------

  85. -- Route命令的正確用法

  86. 使用 Route 命令行工具查看並編輯計算機的 IP 路由表。Route 命令和語法以下所示:

  87. route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

  88. -f 清除全部網關入口的路由表。

  89. -p 與 add 命令一塊兒使用時使路由具備永久性。

  90. Command 指定您想運行的命令 (Add/Change/Delete/Print)。

  91. Destination 指定該路由的網絡目標。

  92. mask Netmask 指定與網絡目標相關的網絡掩碼(也被稱做子網掩碼)。

  93. Gateway 指定網絡目標定義的地址集和子網掩碼能夠到達的前進或下一躍點 IP 地址。

  94. metric Metric 爲路由指定一個整數成本值標(從 1 至 ArrayArrayArrayArray),當在路由表(與轉發的數據包目標地址最匹配)的多個路由中進行選擇時可使用。

  95. if Interface 爲能夠訪問目標的接口指定接口索引。若要得到一個接口列表和它們相應的接口索引,使用 route print 命令的顯示功能。可使用十進制或十六進制值進行接口索引。

  96. /? 在命令提示符處顯示幫助。

  97. 示例

  98. 若要顯示 IP 路由表的所有內容,請鍵入:

  99. route print

  100. 若要顯示以 10. 起始的 IP 路由表中的路由,請鍵入:

  101. route print 10.*

  102. 若要添加帶有 1Array2.168.12.1 默認網關地址的默認路由,請鍵入:

  103. route add 0.0.0.0 mask 0.0.0.0 1Array2.168.12.1

  104. 若要向帶有 255.255.0.0 子網掩碼和 10.27.0.1 下一躍點地址的 10.41.0.0 目標中添加一個路由,請鍵入:

  105. route add 10.41.0.0 mask 255.255.0.0 10.27.0.1

  106. 若要向帶有 255.255.0.0 子網掩碼和 10.27.0.1 下一躍點地址的 10.41.0.0 目標中添加一個永久路由,請鍵入:

  107. route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1

  108. 若要向帶有 255.255.0.0 子網掩碼、10.27.0.1 下一躍點地址且其成本值標爲 7 的 10.41.0.0 目標中添加一個路由,請鍵入:

  109. route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7

  110. 若要向帶有 255.255.0.0 子網掩碼、10.27.0.1 下一躍點地址且使用 0x3 接口索引的 10.41.0.0 目標中添加一個路由,請鍵入:

  111. route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3

  112. 若要刪除到帶有 255.255.0.0 子網掩碼的 10.41.0.0 目標的路由,請鍵入:

  113. route delete 10.41.0.0 mask 255.255.0.0

  114. 若要刪除以 10. 起始的 IP 路由表中的全部路由,請鍵入:

  115. route delete 10.*

  116. 若要將帶有 10.41.0.0 目標和 255.255.0.0 子網掩碼的下一躍點地址從 10.27.0.1 修改成 10.27.0.25,請鍵入:

  117. route change 10.41.0.0 mask 255.255.0.0 10.27.0.25

  118.  
  119. -------------------------------------------------------------------------

  120.   首先,先了解傳統的網絡配置命令:

  121.   1. 使用ifconfig命令配置並查看網絡接口狀況

  122.   示例1: 配置eth0的IP,同時激活設備:

  123.   # ifconfig eth0 192.168.4.1 netmask 255.255.255.0 up

  124.   示例2: 配置eth0別名設備 eth0:1 的IP,並添加路由

  125.   # ifconfig eth0:1 192.168.4.2

  126.   # route add –host 192.168.4.2 dev eth0:1

  127.   示例3:激活(禁用)設備

  128.   # ifconfig eth0:1 up(down)

  129.   示例4:查看全部(指定)網絡接口配置

  130.   # ifconfig (eth0)

  131.   2. 使用route 命令配置路由表

  132.   示例1:添加到主機路由

  133.   # route add –host 192.168.4.2 dev eth0:1

  134.   # route add –host 192.168.4.1 gw 192.168.4.250

  135.   示例2:添加到網絡的路由

  136.   # route add –net IP netmask MASK eth0

  137.   # route add –net IP netmask MASK gw IP

  138.   # route add –net IP/24 eth1

  139.   示例3:添加默認網關

  140.   # route add default gw IP

  141.   示例4:刪除路由

  142.   # route del –host 192.168.4.1 dev eth0:1

  143.   示例5:查看路由信息

  144.   # route 或 route -n (-n 表示不解析名字,列出速度會比route 快)

  145.   3.ARP 管理命令

  146.   示例1:查看ARP緩存

  147.   # arp

  148.   示例2: 添加

  149.   # arp –s IP MAC

  150.   示例3: 刪除

  151.   # arp –d IP

  152.   4. ip是iproute2軟件包裏面的一個強大的網絡配置工具,它可以替代一些傳統的網絡管理工具。例如:ifconfig、route等,

  153.   上面的示例徹底能夠用下面的ip命令實現,並且ip命令能夠實現更多的功能.下面介紹一些示例:

  154.   4.0 ip命令的語法

  155.   ip命令的用法以下:

  156.   ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]

  157.   4.1 ip link set--改變設備的屬性. 縮寫:set、s

  158.   示例1:up/down 起動/關閉設備。

  159.   # ip link set dev eth0 up

  160.   這個等於傳統的 # ifconfig eth0 up(down)

  161.   示例2:改變設備傳輸隊列的長度。

  162.   參數:txqueuelen NUMBER或者txqlen NUMBER

  163.   # ip link set dev eth0 txqueuelen 100

  164.   示例3:改變網絡設備MTU(最大傳輸單元)的值。

  165.   # ip link set dev eth0 mtu 1500

  166.   示例4: 修改網絡設備的MAC地址。

  167.   參數: address LLADDRESS

  168.   # ip link set dev eth0 address 00:01:4f:00:15:f1

  169.   4.2 ip link show--顯示設備屬性. 縮寫:show、list、lst、sh、ls、l

  170.   -s選項出現兩次或者更屢次,ip會輸出更爲詳細的錯誤信息統計。

  171.   示例:

  172.   # ip -s -s link ls eth0

  173.   eth0: mtu 1500 qdisc cbq qlen 100

  174.   link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff

  175.   RX: bytes packets errors dropped overrun mcast

  176.   2449949362 2786187 0 0 0 0

  177.   RX errors: length crc fifo missed

  178.   0 0 0 0 0

  179.   TX: bytes packets errors dropped carrier collsns

  180.   178558497 1783946 332 0 332 35172

  181.   TX errors: aborted fifo window heartbeat

  182.   0 0 0 332

  183.   這個命令等於傳統的 ifconfig eth0

  184.   5.1 ip address add--添加一個新的協議地址. 縮寫:add、a

  185.   示例1:爲每一個地址設置一個字符串做爲標籤。爲了和Linux-2.0的網絡別名兼容,這個字符串必須以設備名開頭,接着一個冒號,

  186.   # ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0

  187.   示例2: 在以太網接口eth0上增長一個地址192.168.20.0,掩碼長度爲24位(155.155.155.0),標準廣播地址,標籤爲eth0:Alias:

  188.   # ip addr add 192.168.4.2/24 brd + dev eth1 label eth1:1

  189.   這個命令等於傳統的: ifconfig eth1:1 192.168.4.2

  190.   5.2 ip address delete--刪除一個協議地址. 縮寫:delete、del、d

  191.   # ip addr del 192.168.4.1/24 brd + dev eth0 label eth0:Alias1

  192.   5.3 ip address show--顯示協議地址. 縮寫:show、list、lst、sh、ls、l

  193.   # ip addr ls eth0

  194.   5.4.ip address flush--清除協議地址. 縮寫:flush、f

  195.   示例1 : 刪除屬於私網10.0.0.0/8的全部地址:

  196.   # ip -s -s a f to 10/8

  197.   示例2 : 取消全部以太網卡的IP地址

  198.   # ip -4 addr flush label "eth0"

  199.   6. ip neighbour--neighbour/arp表管理命令

  200.   縮寫 neighbour、neighbor、neigh、n

  201.   命令 add、change、replace、delete、fulsh、show(或者list)

  202.   6.1 ip neighbour add -- 添加一個新的鄰接條目

  203.   ip neighbour change--修改一個現有的條目

  204.   ip neighbour replace--替換一個已有的條目

  205.   縮寫:add、a;change、chg;replace、repl

  206.   示例1: 在設備eth0上,爲地址10.0.0.3添加一個permanent ARP條目:

  207.   # ip neigh add 10.0.0.3 lladdr 0:0:0:0:0:1 dev eth0 nud perm

  208.   示例2:把狀態改成reachable

  209.   # ip neigh chg 10.0.0.3 dev eth0 nud reachable

  210.   6.2.ip neighbour delete--刪除一個鄰接條目

  211.   示例1:刪除設備eth0上的一個ARP條目10.0.0.3

  212.   # ip neigh del 10.0.0.3 dev eth0

  213.   6.3.ip neighbour show--顯示網絡鄰居的信息. 縮寫:show、list、sh、ls

  214.   示例1: # ip -s n ls 193.233.7.254

  215.   193.233.7.254. dev eth0 lladdr 00:00:0c:76:3f:85 ref 5 used 12/13/20 nud reachable

  216.   6.4.ip neighbour flush--清除鄰接條目. 縮寫:flush、f

  217.   示例1: (-s 能夠顯示詳細信息)

  218.   # ip -s -s n f 193.233.7.254

  219.   7. 路由表管理

  220.   7.1.縮寫 route、ro、r

  221.   7.2.路由表

  222.   從Linux-2.2開始,內核把路由概括到許多路由表中,這些表都進行了編號,編號數字的範圍是1到255。另外,

  223.   爲了方便,還能夠在/etc/iproute2/rt_tables中爲路由表命名。

  224.   默認狀況下,全部的路由都會被插入到表main(編號254)中。在進行路由查詢時,內核只使用路由表main。

  225.   7.3.ip route add -- 添加新路由

  226.   ip route change -- 修改路由

  227.   ip route replace -- 替換已有的路由

  228.   縮寫:add、a;change、chg;replace、repl

  229.   示例1: 設置到網絡10.0.0/24的路由通過網關193.233.7.65

  230.   # ip route add 10.0.0/24 via 193.233.7.65

  231.   示例2: 修改到網絡10.0.0/24的直接路由,使其通過設備dummy

  232.   # ip route chg 10.0.0/24 dev dummy

  233.   示例3: 實現鏈路負載平衡.加入缺省多路徑路由,讓ppp0和ppp1分擔負載(注意:scope值並不是必需,它只不過是告訴內核,

  234.   這個路由要通過網關而不是直連的。實際上,若是你知道遠程端點的地址,使用via參數來設置就更好了)。

  235.   # ip route add default scope global nexthop dev ppp0 nexthop dev ppp1

  236.   # ip route replace default scope global nexthop dev ppp0 nexthop dev ppp1

  237.   示例4: 設置NAT路由。在轉發來自192.203.80.144的數據包以前,先進行網絡地址轉換,把這個地址轉換爲193.233.7.83

  238.   # ip route add nat 192.203.80.142 via 193.233.7.83

  239.   示例5: 實現數據包級負載平衡,容許把數據包隨機從多個路由發出。weight 能夠設置權重.

  240.   # ip route replace default equalize nexthop via 211.139.218.145 dev eth0 weight 1 nexthop via 211.139.218.145 dev eth1 weight 1

  241.   7.4.ip route delete-- 刪除路由

  242.   縮寫:delete、del、d

  243.   示例1:刪除上一節命令加入的多路徑路由

  244.   # ip route del default scope global nexthop dev ppp0 nexthop dev ppp1

  245.   7.5.ip route show -- 列出路由

  246.   縮寫:show、list、sh、ls、l

  247.   示例1: 計算使用gated/bgp協議的路由個數

  248.   # ip route ls proto gated/bgp |wc

  249.   1413 9891 79010

  250.   示例2: 計算路由緩存裏面的條數,因爲被緩存路由的屬性可能大於一行,以此須要使用-o選項

  251.   # ip -o route ls cloned |wc

  252.   159 2543 18707

  253.   示例3: 列出路由表TABLEID裏面的路由。缺省設置是table main。TABLEID或者是一個真正的路由表ID或者是/etc/iproute2/rt_tables文件定義的字符串,

  254.   或者是如下的特殊值:

  255.   all -- 列出全部表的路由;

  256.   cache -- 列出路由緩存的內容。

  257.   ip ro ls 193.233.7.82 tab cache

  258.   示例4: 列出某個路由表的內容

  259.   # ip route ls table fddi153

  260.   示例5: 列出默認路由表的內容

  261.   # ip route ls

  262.   這個命令等於傳統的: route

  263.   7.6.ip route flush -- 擦除路由表

  264.   示例1: 刪除路由表main中的全部網關路由(示例:在路由監控程序掛掉以後):

  265.   # ip -4 ro flush scope global type unicast

  266.   示例2:清除全部被克隆出來的IPv6路由:

  267.   # ip -6 -s -s ro flush cache

  268.   示例3: 在gated程序掛掉以後,清除全部的BGP路由:

  269.   # ip -s ro f proto gated/bgp

  270.   示例4: 清除全部ipv4路由cache

  271.   # ip route flush cache

  272.   *** IPv4 routing cache is flushed.

  273.   7.7 ip route get -- 得到單個路由 .縮寫:get、g

  274.   使用這個命令能夠得到到達目的地址的一個路由以及它的確切內容。

  275.   ip route get命令和ip route show命令執行的操做是不一樣的。ip route show命令只是顯示現有的路由,而ip route get命令在必要時會派生出新的路由。

  276.   示例1: 搜索到193.233.7.82的路由

  277.   # ip route get 193.233.7.82

  278.   193.233.7.82 dev eth0 src 193.233.7.65 realms inr.ac cache mtu 1500 rtt 300

  279.   示例2: 搜索目的地址是193.233.7.82,來自193.233.7.82,從eth0設備到達的路由(這條命令會產生一條很是有意思的路由,這是一條到193.233.7.82的迴環路由)

  280.   # ip r g 193.233.7.82 from 193.233.7.82 iif eth0

  281.   193.233.7.82 from 193.233.7.82 dev eth0 src 193.233.7.65 realms inr.ac/inr.ac

  282.   cache

  283. mtu 1500 rtt 300 iif eth0

  284.   8. ip route -- 路由策略數據庫管理命令

  285.   命令

  286.   add、delete、show(或者list)

  287.   注意:策略路由(policy routing)不等於路由策略(rouing policy)。

  288.   在某些狀況下,咱們不僅是須要經過數據包的目的地址決定路由,可能還須要經過其餘一些域:源地址、IP協議、傳輸層端口甚至數據包的負載。

  289.   這就叫作:策略路由(policy routing)。

  290.   8.1. ip rule add -- 插入新的規則

  291.   ip rule delete -- 刪除規則

  292.   縮寫:add、a;delete、del、d

  293.   示例1: 經過路由表inr.ruhep路由來自源地址爲192.203.80/24的數據包

  294.   ip ru add from 192.203.80/24 table inr.ruhep prio 220

  295.   示例2:把源地址爲193.233.7.83的數據報的源地址轉換爲192.203.80.144,並經過表1進行路由

  296.   ip ru add from 193.233.7.83 nat 192.203.80.144 table 1 prio 320

  297.   示例3:刪除無用的缺省規則

  298.   ip ru del prio 32767

  299.   8.2. ip rule show -- 列出路由規則

  300.   縮寫:show、list、sh、ls、l

  301.   示例1: # ip ru ls

  302.   0: from all lookup local

  303.   32762: from 192.168.4.89 lookup fddi153

  304.   32764: from 192.168.4.88 lookup fddi153

  305.   32766: from all lookup main

  306.   32767: from all lookup 253

  307.   9. ip maddress -- 多播地址管理

  308.   縮寫:show、list、sh、ls、l

  309.   9.1.ip maddress show -- 列出多播地址

  310.   示例1: # ip maddr ls dummy

  311.   9.2. ip maddress add -- 加入多播地址

  312.   ip maddress delete -- 刪除多播地址

  313.   縮寫:add、a;delete、del、d

  314.   使用這兩個命令,咱們能夠添加/刪除在網絡接口上監聽的鏈路層多播地址。這個命令只能管理鏈路層地址。

  315.   示例1: 增長 # ip maddr add 33:33:00:00:00:01 dev dummy

  316.   示例2: 查看 # ip -O maddr ls dummy

  317.   2: dummy

  318.   link 33:33:00:00:00:01 users 2 static

  319.   link 01:00:5e:00:00:01

  320.   示例3: 刪除 # ip maddr del 33:33:00:00:00:01 dev dummy

  321.   10.ip mroute -- 多播路由緩存管理

  322.   10.1. ip mroute show -- 列出多播路由緩存條目

  323.   縮寫:show、list、sh、ls、l

  324.   示例1:查看 # ip mroute ls

  325.   (193.232.127.6, 224.0.1.39) Iif: unresolved

  326.   (193.232.244.34, 224.0.1.40) Iif: unresolved

  327.   (193.233.7.65, 224.66.66.66) Iif: eth0 Oifs: pimreg

  328.   示例2:查看 # ip -s mr ls 224.66/16

  329.   (193.233.7.65, 224.66.66.66) Iif: eth0 Oifs: pimreg

  330.   9383 packets, 300256 bytes

  331.   11. ip tunnel -- 通道配置

  332.   縮寫

  333.   tunnel、tunl

  334.   11.1.ip tunnel add -- 添加新的通道

  335.   ip tunnel change -- 修改現有的通道

  336.   ip tunnel delete -- 刪除一個通道

  337.   縮寫:add、a;change、chg;delete、del、d

  338.   示例1:創建一個點對點通道,最大TTL是32

  339.   # ip tunnel add Cisco mode sit remote 192.31.7.104 local 192.203.80.1 ttl 32

  340.   11.2.ip tunnel show -- 列出現有的通道

  341.   縮寫:show、list、sh、ls、l

  342.   示例1: # ip -s tunl ls Cisco

  343.   12. ip monitor和rtmon -- 狀態監視

  344.   ip命令能夠用於連續地監視設備、地址和路由的狀態。這個命令選項的格式有點不一樣,命令選項的名字叫作monitor,接着是操做對象:

  345.   ip monitor [ file FILE ] [ all | OBJECT-LIST ]

  346.   示例1: # rtmon file /var/log/rtmon.log

  347.   示例2: # ip monitor file /var/log/rtmon.log r

相關文章
相關標籤/搜索