4-iptables mark標記

iptable的mark功能可以用於標記網絡數據包,用於標記數據包。在一些不同的table或者chain之間需要協同處理某一個數據包時尤其有用。

下面介紹iptables mark簡單的用法:

  • -j MARK //-j代表動作這裏代表要執行mark操作
  • -m mark //-m代表匹配mark
  • –mark xxx/yyy //xxx代表要匹配的mark的值,yyy代表掩碼,如果要完全匹配可以省略掉掩碼,不過一般不會直接整個匹配,因爲可能一個系統中很多模塊都需要打mark,所以一般用掩碼來取得某幾位
//打標記
iptables -t mangle -A PREROUTING -j MARK --set-mark 33
//匹配標記
iptables -t nat -A PREROUTING -m mark --mark 33  -j ACCEPT
//or-mark
iptables -t mangle -A PREROUTING -j MARK --or-mark 0x400
//掩碼匹配
iptables -t nat -A PREROUTING -m mark --mark 0x400/0x400  -j ACCEPT
1

CONNMARK target的選項

選項 功能
–set-mark value[/mask] 給鏈接跟蹤記錄打標記。
–save-mark [–mask mask] 將數據包上的標記值記錄到鏈接跟蹤記錄上。
–restore-mark [–mask mask] 重新設置數據包的nfmark值。
iptables -t mangle -A QOS_MARK_FORWARD_eth1 -j CONNMARK --restore-mark --nfmask 0xfffff --ctmask 0xfffff
iptables -t mangle -A QOS_MARK_FORWARD_eth1 -m mark --mark 0x0/0xfffff -j QOS_RULES_FORWARD_eth1
iptables -t mangle -A QOS_RULES_FORWARD_eth1 -j CONNMARK --save-mark --nfmask 0xfffff --ctmask 0xfffff

MARK target 的選項

選項 功能
–set-mark value 設置數據包的nfmark值。
–and-mark value 數據包的nfmark值和value進行按位與運算。
–or-mark value 數據包的nfmark值和value進行按或與運算。
iptables -t mangle -A POSTROUTING -m iprange --src-range 192.168.0.2-192.168.0.200 -j MARK --or-mark 0x1

–or-mark 用於以或的關係設置mark,因爲mark可能提前被提前設置過,如之前的mark爲0x0100,通過–or-mark設置0x1後mark爲0x0101,不會影響之前設置的mark,注意匹配是用掩碼按位匹配。

而如果是–set-mark,會清楚之前的mark 0x0100 --set-mark(0x1) = 0x0001

MARK match的選項

選項 功能
[!] --mark value[/mask] 數據包的nfmark值與value進行匹配,其中mask的值爲可選的。

http://blog.chinaunix.net/uid-10167808-id-26000.html

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