linux之route——種種

 
  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 命令的輸出項說明php

輸出項 說明
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的主機。html

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的路由器。linux

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的路由器。sql

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

配置靜態路由

route 命令

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

# 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

添加默認路由 post

 

# 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
     
     
     
     

    linux中路由策略rule和路由表table

     

    1.linux系統中路由表table

    linux最多能夠支持255張路由表,每張路由表有一個table id和table name。其中有4張表是linux系統內置的:
    (1)table id = 0
    系統保留。
    (2)table id = 255
    稱爲本地路由表,表名爲local。像本地接口地址,廣播地址,以及NAT地址都放在這個表。該路由表由系統自動維護,管理員不能直接修改。
    (3)table id = 254
    稱爲主路由表,表名爲main。若是沒有指明路由所屬的表,全部的路由都默認都放在這個表裏。通常來講,舊的路由工具(如route)所添加的路由都會加到這個表。main表中路由記錄都是普通的路由記錄。並且,使用ip route配置路由時,若是不明確制定要操做的路由表,默認狀況下也是主路由表(表254)進行操做。
    備註:咱們使用ip route list 或 route -n 或 netstat -rn查看的路由記錄,也都是main表中記錄。
    (4)table id = 253
    稱爲默認路由表,表名爲default。通常來講默認的路由都放在這張表。
    備註:
    A)系統管理員能夠根據須要本身添加路由表,並向路由表中添加路由記錄。
    B)能夠經過/etc/iproute2/rt_tables文件查看table id和table name的映射關係。
    C)若是管理員新增了一張路由表,須要在/etc/iproute2/rt_tables文件中爲新路由表添加table id和table name的映射。
     
    2.路由表的配置
    能夠有不少方式來配置靜態路由,包括缺省路由。具體方法參見 http://blog.csdn.net/wangjianno2/article/details/69937374
     
    3.路由策略rule
    基於策略的路由比傳統路由在功能上更強大,使用更靈活,它使網絡管理員不只可以根據目的地址並且可以根據報文大小、應用或IP源地址等屬性來選擇轉發路徑。簡單地來講,linux系統有多張路由表,而路由策略會根據一些條件,將路由請求轉向不一樣的路由表。例如源地址在某些範圍走路由表A,另外的數據包走路由表,相似這樣的規則是有路由策略rule來控制。
    在linux系統中,一條路由策略rule主要包含三個信息,即rule的優先級,條件,路由表。其中rule的優先級數字越小表示優先級越高,而後是知足什麼條件下由指定的路由表來進行路由。在linux系統啓動時,內核會爲路由策略數據庫配置三條缺省的規則,即rule 0,rule 32766, rule 32767(數字是rule的優先級),具體含義以下:
    (1)rule 0
    匹配任何條件的數據包,查詢路由表local(table id = 255)。rule 0很是特殊,不能被刪除或者覆蓋。 
    (2)rule 32766
    匹配任何條件的數據包,查詢路由表main(table id = 254)。系統管理員能夠刪除或者使用另外的策略覆蓋這條策略。
    (3)rule 32767
    匹配任何條件的數據包,查詢路由表default(table id = 253)(ID 253) 。對於前面的缺省策略沒有匹配到的數據包,系統使用這個策略進行處理。這個規則也能夠刪除。
    備註:在linux系統中是按照rule的優先級順序依次匹配。假設系統中只有優先級爲0,32766及32767這三條規則。那麼系統首先會根據規則0在本地路由表裏尋找路由,若是目的地址是本網絡,或是廣播地址的話,在這裏就能夠找到匹配的路由;若是沒有找到路由,就會匹配下一個不空的規則,在這裏只有32766規則,那麼將會在主路由表裏尋找路由;若是沒有找到匹配的路由,就會依據32767規則,即尋找默認路由表;若是失敗,路由將失敗。
     
    在linux系統中可使用ip rule命令來配置路由策略。ip rule命令使用格式爲:
    Usage: ip rule [ list | add | del ] SELECTOR ACTION (add 添加;del 刪除; llist 列表) SELECTOR := [ from PREFIX 數據包源地址] [ to PREFIX 數據包目的地址] [ tos TOS 服務類型][ dev STRING 物理接口] [ pref NUMBER ] [fwmark MARK iptables 標籤] ACTION := [ table TABLE_ID 指定所使用的路由表] [ nat ADDRESS 網絡地址轉換][ prohibit 丟棄該表| reject 拒絕該包| unreachable 丟棄該包] [ flowid CLASSID ] TABLE_ID := [ local | main | default | new | NUMBER ]
    舉例來講:
    ip rule add [from 0/0] table 1 pref 32800 #增長一條規則,規則匹配的對象是全部的數據包,動做是選用路由表1的路由,這條規則的優先級是32800 ip rule add from 192.168.3.112/32 [tos 0x10] table 2 pref 1500 prohibit #增長一條規則,規則匹配的對象是IP爲192.168.3.112, tos等於0x10的包,使用路由表2,這條規則的優先級是1500,動做是丟棄。
    能夠經過命令ip rule或ip rule list來查看系統中全部的路由策略rule。另外使用ip rule命令配置的路由策略rule只在內存中有效,機器重啓後,就會失效。能夠將路由策略配置到文件/etc/sysconfig/network-scripts/rule-ethX中,這樣機器重啓後仍然有效。
     
    4.關於路由表和路由策略的聯繫和區別
    路由策略rule指定知足必定條件的數據包有指定的路由表來路由,多個策略rule能夠指向同一張路由表。某些路由表能夠沒有策略指向它。值得注意的是,若是系統管理員刪除了指向某個路由表的全部策略rule,那麼這個路由表是沒有用的,但它在系統中仍然存在,直到路由表中的全部路由記錄被刪除,它纔會消失。
     
    5.其餘閒雜知識點
    (1)查看指定路由表的內容
    ip route list table table_id
    ip route list table table_name
    
    ip route show table table_id ip route show table table_name
    (2)查看系統中全部的路由策略rule
    ip rule
    ip rule list
    (3)使用ip rule,ip route,route等命令進行網絡配置,只在內存中有效,重啓機器或網絡服務就會失效。所以,咱們須要一般須要將網絡相關的配置寫入到配置文件中,這樣重啓機器或網絡服務時,會從配置文件中加載網絡相關的配置信息。
    (4)關於路由配置及路由策略配置的一點問題
    咱們知道路由表和路由策略能夠寫入配置文件/etc/sysconfig/network-scripts/route-ethX和/etc/sysconfig/network-scripts/rule-ethX中,這類配置文件是針對每一個網卡單獨配置的靜態路由或路由策略。route-ethX中若是不明確指定哪張路由表,缺省是添加到main路由表的,所以route-ethX中配置規則,不只僅只有對應的網卡能夠看到,其餘的網卡也會看到哦。rule-ethX中配置的路由策略rule是全局的,咱們經過ip rule list能夠查看全部rule-ethX中的路由策略,所以rule-ethX中的策略不只僅只有相應的網卡才能看到,其餘的網卡也會看到哦。
      
    學習資料參考於:
相關文章
相關標籤/搜索