ip rule 命令

linux 高級路由即基於策略的路由比傳統路由在功能上更強大,使用也更靈活,它不僅能夠根據目的地址來轉發路徑而且也能夠根據報文大小、應用或ip源地址來選擇路由轉發路徑從而讓系統管理員能輕鬆做到:
1、 管制某臺計算機的帶寬。
2、 管制通向某臺計算機的帶寬
3、 幫助你公平地共享帶寬
4、 保護你的網絡不受DOS的攻擊
5、 保護你的Internet不受到你的客戶的攻擊
6、 把多臺服務器虛擬成一臺,並進行負載均衡或者提高可用性
7、 限制你的用戶訪問某些計算機
8、 限制對你的計算機的訪問
9、 基於用戶帳號、MAC地址、源IP地址、端口、QOS《TOS》、時間或者content等進行路由
一、高級路由的基礎IP ROUTE2
基本命令:
ip link list 顯示ip鏈路狀態信息
ip address show 除顯示所有網絡地址
ip route show 顯示主路由表信息
ip neigh show 顯示鄰居表
linux系統路由表
linux可以自定義從1-252個路由表,
linux系統維護了4個路由表:
0#表 系統保留表
253#表 defulte table 沒特別指定的默認路由都放在改表
254#表 main table 沒指明路由表的所有路由放在該表
255#表 locale table 保存本地接口地址,廣播地址、NAT地址 由系統維護,用戶不得更改
路由表的查看可有以下二種方法:
      ip route list table table_number
      ip route list table table_name
路由表序號和表名的對應關係在/etc/iproute2/rt_tables中,可手動編輯
路由表添加完畢即時生效,下面爲實例
ip route add default via 192.168.1.1 table 1 在一號表中添加默認路由爲192.168.1.1
ip route add 192.168.0.0/24 via 192.168.1.2 table 1 在一號表中添加一條到192.168.0.0網段的路由爲192.168.1.2
注:各路由表中應當指明默認路由,儘量不回查路由表.路由添加完畢,即可在路由規則中應用..
二、高級路由重點之一路由規則 ip rule
進行路由時,根據路由規則來進行匹配,按優先級(pref)從低到高匹配,直到找到合適的規則.所以在應用中配置默認路由是必要的..     
ip rule show 顯示路由規則
路由規則的添加
ip rule add from 192.168.1.10/32 table 1 pref 100
如果pref值不指定,則將在已有規則最小序號前插入
注:創建完路由規則若需立即生效須執行#ip route flush cache;刷新路由緩衝
    可參數解析如下:   &n
        From -- 源地址
        To -- 目的地址(這裏是選擇規則時使用,查找路由表時也使用)
      Tos -- IP包頭的TOS(type of sevice)域Linux高級路由-
      Dev -- 物理接口
      Fwmark -- iptables標籤
    採取的動作除了指定路由表外,還可以指定下面的動作:
        Table 指明所使用的表
       Nat 透明網關

      Prohibit 丟棄該包,併發送 COMM.ADM.PROHIITED的ICMP信息 
      Reject 單純丟棄該包
      Unreachable丟棄該包, 併發送 NET UNREACHABLE的ICMP信息
    具體格式如下:更強大,使用更靈活,它使網絡管理員不僅能
        Usage: ip rule [ list | add | del ] SELECTOR ACTION
        SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ]
        ACTION := [ table TABLE_ID ] [ nat ADDRESS ][ prohibit | reject | unreachable ]
                  [ flowid CLASSID ]
        TABLE_ID := [ local | main | default | new | NUMBER ]

1.策略路由 
    基於策略的路由比傳統路由在功能上更強大,使用更靈活,它使網絡管理員不僅能夠根據目的地址而且能夠根據報文大小、應用或IP源地址來選擇轉發路徑...         
    #/etc/iproute2/rt_tables 此文件存有linux 系統路由表默認表有255 254 253三張表 
      255  local 本地路由表存有本地接口地址,廣播地址,已及NAT地址. 
           local表由系統自動維護..管理員不能操作此表... 
      254  main 主路由表 傳統路由表,ip route若沒指定表亦操作表254.一般存所有的路由.. 
           注:平時用ip ro sh查看的亦是此表設置的路由. 
      253  default  默認路由表一般存放默認路由... 
           注:rt_tables文件中表以數字來區分表0保留最多支持255張表 
    路由表的查看可有以下二種方法: 
      #ip route list table table_number

      #ip route list table table_name

    路由表添加完畢,即可在策略路由表內添加路由例:

      #ip route add 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4

        注:發往子網192.168.1.0/24的數據包通過分類4轉發配合tc使用,後文有介紹講解...

      #ip route add default via 192.168.1.1 table int1

      #ip route add 192.168.1.0/24 via 192.168.1.1 table int2

      #ip route add 172.16.0.2/16 via 172.16.0.1 table int3

        注:各路由表中應當指明默認路由,儘量不回查路由表.路由添加完畢,即可在路由規則中應用.. 
    #ip rule sh 顯示路由規則 
      0:      from all lookup local 
      32766:  from all lookup main 
      32767:  from all lookup default 
    進行路由時,正是根據路由規則來進行匹配,按優先級(pref後數值)從高到低匹配,直到找到合適的規則.所以在應用中配置默認路由是必要的..     
    策略路由一般手工添加路由表,路由表的添加只需編輯rt_tables文件,規定表序號,表名即可.. 
    ip rule規則添加示例: 
      #ip rule add from 192.168.1.112/32 [tos 0x10] table test2 pref 999 prohibit 
      #ip rule add to 192.168.1.2 pref 1000 table test1 
      #ip rule add from 192.168.1.0/24 pref 1001 table test1 
      #ip rule add [from 0/0] table test1 pref 1003 
      #ip rule add fwmark 1 pref 1002 table test2  此句型配合iptables -t mangle應用.如先對數據

  包作標記:

      #iptables -t mangle -A PREROUTING -p tcp -m multiport

                             --dports 80,8080,20,21 -s 192.168.1.0/24 -j MARK --set-mark 1    
        注:創建完路由規則若需立即生效須執行#ip route flush cache;刷新路由緩衝 
    可參數解析如下: 
        From -- 源地址 
        To -- 目的地址(這裏是選擇規則時使用,查找路由表時也使用) 
    Tos -- IP包頭的TOS(type of sevice)域 
    Dev -- 物理接口 
     Fwmark -- 防火牆參數 
    採取的動作除了指定路由表外,還可以指定下面的動作: 
        Table 指明所使用的表 
       Nat 透明網關

    Prohibit 丟棄該包,併發送 COMM.ADM.PROHIITED的ICMP信息 
    Reject 單純丟棄該包 
    Unreachable丟棄該包, 併發送 NET UNREACHABLE的ICMP信息 
    具體格式如下: 
        Usage: ip rule [ list | add | del ] SELECTOR ACTION 
        SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ] 
        ACTION := [ table TABLE_ID ] [ nat ADDRESS ][ prohibit | reject | unreachable ] 
                  [ flowid CLASSID ] 
        TABLE_ID := [ local | main | default | new | NUMBER ]

 

  2.網卡捆綁(網關linux+多網卡)

    #modprobe bonding mod=1 miimon=200 primary=eth1 創建bond0,模式爲1,主網卡eth1..

    #ip addr add dev bond$ 10.0.0.1/24 設置bond0的IP

    #ifenslave bond0 eth1 eth2 添加綁定的dev

      注:mode=0 輪轉均衡(默認模式),此模式MAC頻繁切換導致交換機負載大..

         mode=1 主備模式 用primary指定網卡

         mode=4 常用 802.3ad模式,動態鏈路採集模式.此模式要求SWITCH捆綁..

         miimon=ms 每隔多少毫秒查詢鏈路是否有效.

      其它參數如:

         arp_interval=ms

         arp_ip_target=*.*.*.*

 

    另一種網卡捆綁固化方式:

      #vi /etc/modules.conf 加入以下行

      alias bond0 bonding

        系統在啓動時加載bonding模塊,對外虛擬網絡接口設備爲 bond0..

      #cd /etc/sysconfig/network-scripts

      #vi ifcfg-bond0

        DEVICE=bond0 
        IPADDR=11.0.0.1 
        NETMASK=255.0.0.0 
        NETWORK=192.168.1.0 
        BROADCAST=192.168.1.255 
        ONBOOT=yes 
        BOOTPROTO=none 
        USERCTL=no

      #vi ifcfg-eth0  
        DEVICE=eth0 
        USERCTL=no 
        ONBOOT=yes 
        MASTER=bond0 
        SLAVE=yes 
        BOOTPROTO=none

      #vi ifcfg-eth1 
        DEVICE=eth0 
        USERCTL=no 
        ONBOOT=yes 
        MASTER=bond0 
        SLAVE=yes 
        BOOTPROTO=none

     #/etc/init.d/network restart 重啓網絡服務驗證網卡的配置信息備份網卡被加上了NOARP標記

     #cat /proc/net/bond0/info 查看bond信息

 

  3.網橋(Linux+多網卡)

    配置工具 brctl http://bridge.sourceforge.net/  源碼包名:bridge-utils-*形式

    安裝第一步:autoconf 後類同於源碼包安裝..

    例.linu+二網卡eth0 eth1 配置成網橋

      配置前去除加入網橋的eth0 eth1的IP

      #ifconfig eth0/eth1 down

      #ifconfig eth0/eth1 0.0.0.0 up

      #brctl addbr br0

      #brctl addif br0 eth0 eth1

      #ip li set dev br0 up

      #brctl showmacs br0 顯示網橋MAC 
    撤網橋:

      #ip li set dev br0 down

      #brctl delif br0 eth0 eth1

      #brctl delbr br0

    網橋接口處亦可進行流量控制,無Ip的linux網橋可有效防禦外界的功擊,對linux網橋機的總控安全性高...

 

    貼上一篇網橋應用實例,此實例是網橋的一種擴張應用...

      腳本名:start_bridge.sh

      #!/bin/sh

      brctl addbr net1 
      brctl addif net1 eth0 
      ifconfig eth0 down 
      ifconfig eth0 0.0.0.0 up 
      ifconfig net1 192.168.5.1 up 
      #ip ro del 192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.28

      ip ro del 192.168.1.0/24 
      #route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.5.2

      ip route add default via 192.168.5.2 
      echo "1" > /proc/sys/net/ipv4/ip_forward

 

  Linux高級路由需結合iptables才能充分體現其功能的強大,實際工作中的應用多半基於此,當然要熟練掌握Linux高級路由+iptables 還需進一步的加強學習和實踐的應用...

 

 

--------------------------------------------------------------

ip rule

IP基本命令:
ip link list 顯示ip鏈路狀態信息
ip address show 除顯示所有網絡地址
ip route show 顯示主路由表信息
ip neigh show 顯示鄰居表
linux系統路由表
linux可以自定義從1-252個路由表,
linux系統維護了4個路由表:
0#表 系統保留表
253#表 defulte table 沒特別指定的默認路由都放在改表
254#表 main table 沒指明路由表的所有路由放在該表
255#表 locale table 保存本地接口地址,廣播地址、NAT地址 由系統維護,用戶不得更改
路由表的查看可有以下二種方法:
ip route list table table_number
ip route list table table_name
路由表序號和表名的對應關係在/etc/iproute2/rt_tables中,可手動編輯
路由表添加完畢即時生效,下面爲實例
ip route add default via 192.168.1.1 table 1 在一號表中添加默認路由爲192.168.1.1
ip route add 192.168.0.0/24 via 192.168.1.2 table 1 在一號表中添加一條到192.168.0.0網段的路由爲192.168.1.2
注:各路由表中應當指明默認路由,儘量不回查路由表.路由添加完畢,即可在路由規則中應用..
二、高級路由重點之一路由規則 ip rule
進行路由時,根據路由規則來進行匹配,按優先級(pref)從低到高匹配,直到找到合適的規則.所以在應用中配置默認路由是必要的..
ip rule show 顯示路由規則
路由規則的添加
ip rule add from 192.168.1.10/32 table 1 pref 100
如果pref值不指定,則將在已有規則最小序號前插入
注:創建完路由規則若需立即生效須執行#ip route flush cache;刷新路由緩衝
可參數解析如下: &n
From — 源地址
To — 目的地址(這裏是選擇規則時使用,查找路由表時也使用)
   Tos — IP包頭的TOS(type of sevice)域Linux高級路由-
   Dev — 物理接口
   Fwmark — iptables標籤
採取的動作除了指定路由表外,還可以指定下面的動作:
Table 指明所使用的表
  Nat 透明網關

   Prohibit 丟棄該包,併發送 COMM.ADM.PROHIITED的ICMP信息
   Reject 單純丟棄該包
   Unreachable丟棄該包, 併發送 NET UNREACHABLE的ICMP信息
具體格式如下:更強大,使用更靈活,它使網絡管理員不僅能
Usage: ip rule [ list | add | del ] SELECTOR ACTION
SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ]
ACTION := [ table TABLE_ID ] [ nat ADDRESS ][ prohibit | reject | unreachable ]
[ flowid CLASSID ]
TABLE_ID := [ local | main | default | new | NUMBER ]
ip ruel 配置實例:
ip route del default
ip route add default via 192.168.33.1
ip rule add from 192.168.2.6 pref 1000 lookup cnline
ip rule add from 192.168.2.4 pref 1000 lookup cnline
ip rule add from 192.168.2.32 pref 1000 lookup cnline
ip rule add from 192.168.2.227 pref 1000 lookup cnline
ip rule add from 192.168.2.100 pref 1000 lookup cnline
ip rule add from 192.168.2.101 pref 1000 lookup cnline
ip rule add from 192.168.2.107 pref 1000 lookup cnline
ip rule add from 192.168.2.55 pref 1000 lookup cnline
ip rule add from 192.168.2.56 pref 1000 lookup cnline
ip rule add from 192.168.2.189 pref 1000 lookup cnline
ip rule add from 192.168.2.190 pref 1000 lookup cnline
ip rule add from 192.168.2.191 pref 1000 lookup cnline
ip rule add from 192.168.2.192 pref 1000 lookup cnline
ip rule add from 192.168.2.193 pref 1000 lookup cnline
ip rule add from 192.168.2.194 pref 1000 lookup cnline
ip rule add from 192.168.2.195 pref 1000 lookup cnline
ip rule add from 192.168.2.196 pref 1000 lookup cnline
ip rule add from 192.168.2.197 pref 1000 lookup cnline
ip rule add from 192.168.2.198 pref 1000 lookup cnline
#ip route add 192.168.0.0/24 via 192.168.33.1 table cnline
ip route add 58.14.0.0/15 via 192.168.33.1 table cnline
ip route add 58.16.0.0/16 via 192.168.33.1 table cnline

轉自:http://www.unixnotes.net/ip-rule.html?replytocom=25

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章