IPTable参数顺序是否会影响性能?

时间:2014-01-30 16:09:05

标签: optimization firewall iptables

以下iptable规则

iptables -I FORWARD -p tcp -m set --match-set HUUUGE_SET dst --dport 80 -j REJECT

效率低于这个

iptables -I FORWARD -p tcp --dport 80 -m set --match-set HUUUGE_SET dst -j REJECT

对于带有dport的数据包!= 80.

换句话说,您指定参数的顺序与检查它们的顺序相同,或者iptables是否具有某种预定/优化的参数检查顺序。

谢谢!

1 个答案:

答案 0 :(得分:1)

AFAIK,iptables的参数将被编组到一个结构中,以便输入netfilter内核模块,因此参数顺序完全不会影响性能。

这是一个测试:

# iptables -N test
# iptables -A test -p tcp --dport 80 -s 10.0.0.1 -j DROP
# iptables -A test -p tcp -s 10.0.0.2 --dport 80 -j DROP
# iptables-save | grep test
:test - [0:0]
-A test -s 10.0.0.1/32 -p tcp -m tcp --dport 80 -j DROP
-A test -s 10.0.0.2/32 -p tcp -m tcp --dport 80 -j DROP
#

正如您所看到的,无论您键入匹配参数的顺序是什么,iptables-save(转储当前在内存中活动的netfilter规则集)'规范化'订单。