QUOTE:原帖由 ssffzz1 于 2008-4-15 06:45 发表

有点郁闷。
以前看网上有篇帖子介绍了关闭重组的方法,不过在2.4和2.6上都没有找到该参数。估计要关闭重组,就要改代码了。
其实这就是我之前问“这个也可以设置吗”的原因
FORWARD 工作在 filter 表,当然,也可以工作在 mangle 表
netfilter 里面,iptables 能控制到的最靠前的表就是 mangle 表了
netfilter 有连接追踪功能
要想用连接追踪,就必然要对数据包进行重组和分片处理,重组在追踪前,分片最后接近出口的位置
在 netfilter_ipv4.h 中也可以看到优先级的定义
enum nf_ip_hook_priorities {
NF_IP_PRI_FIRST = INT_MIN,
NF_IP_PRI_CONNTRACK_DEFRAG = -400,
NF_IP_PRI_RAW = -300,
NF_IP_PRI_SELINUX_FIRST = -225,
NF_IP_PRI_CONNTRACK = -200,
NF_IP_PRI_MANGLE = -150,
NF_IP_PRI_NAT_DST = -100,
NF_IP_PRI_FILTER = 0,
NF_IP_PRI_NAT_SRC = 100,
NF_IP_PRI_SELINUX_LAST = 225,
NF_IP_PRI_CONNTRACK_HELPER = INT_MAX - 2,
NF_IP_PRI_NAT_SEQ_ADJUST = INT_MAX - 1,
NF_IP_PRI_CONNTRACK_CONFIRM = INT_MAX,
NF_IP_PRI_LAST = INT_MAX,
};
复制代码
mangle 是在 conntrack 之后的,而 conntrack 又是在 defrag 之后的
可见,FORWARD 抓到的数据一定是重组过的