- 论坛徽章:
- 0
|
原帖由 Godbach 于 2009-1-7 12:53 发表
如果在某种情况下,我对数据包的处理是在PREROUTING之前,这个时侯想去统计的话,是不是没法借用conntrack了。
理论上是的,因为建立 conntrack 表项是在 ipv4_conntrack_in 函数中做的
根据 2.6 内核的 netfilter 框架定义
- static struct nf_hook_ops ipv4_conntrack_ops[] = {
- {
- .hook = ipv4_conntrack_defrag,
- .owner = THIS_MODULE,
- .pf = PF_INET,
- .hooknum = NF_IP_PRE_ROUTING,
- .priority = NF_IP_PRI_CONNTRACK_DEFRAG,
- },
- {
- .hook = ipv4_conntrack_in,
- .owner = THIS_MODULE,
- .pf = PF_INET,
- .hooknum = NF_IP_PRE_ROUTING,
- .priority = NF_IP_PRI_CONNTRACK,
- },
复制代码
重组和 conntrack 操作都是在 PREROUTING 上做的,只是他们的优先级不同而已,重组在前,入表在后,iptables 的操作从 MANGLE 开始(更后面)
如果一定要在 PREROUTING 之前使用 conntrack,理论上是不可能的
[ 本帖最后由 platinum 于 2009-1-7 15:17 编辑 ] |
|