以下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是否具有某种预定/优化的参数检查顺序。
谢谢!
答案 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规则集)'规范化'订单。