- 论坛徽章:
- 0
|
原帖由 5639863 于 2007-8-17 20:25 发表 ![]()
由这张图可不可以这样认为mangle表中的PREROUTING要先于nat 表中的PREROUTING 和 filter表中的FORWARD的呢?
PREROUTING 和 FORWARD 没有可比性,PREROUTING 一定先于 FORWARD
你应该问:mangle 的 PREROUTING 是否优先于 nat 的 PREROUTING?
或者:mangle 的 FORWARD 是否优先于 filter 的 FORWARD?
答案是:是的
从 netfilter 的内核代码看,各个处理流程的优先级如下
- enum nf_ip_hook_priorities {
- NF_IP_PRI_FIRST = INT_MIN,
- NF_IP_PRI_CONNTRACK = -200,
- NF_IP_PRI_BRIDGE_SABOTAGE_FORWARD = -175,
- NF_IP_PRI_MANGLE = -150,
- NF_IP_PRI_NAT_DST = -100,
- NF_IP_PRI_BRIDGE_SABOTAGE_LOCAL_OUT = -50,
- NF_IP_PRI_FILTER = 0,
- NF_IP_PRI_NAT_SRC = 100,
- NF_IP_PRI_LAST = INT_MAX,
- };
复制代码
可见,nat 在 mangle 之后,而 nat 中又有 NAT_DST(PREROUTING)和 NAT_SRC(POSTROUTING)
其他部分优先级见上面的枚举结构
[ 本帖最后由 platinum 于 2007-8-18 08:18 编辑 ] |
|