- 論壇徽章:
- 0
|
原帖由 5639863 于 2007-8-17 20:25 發(fā)表 ![]()
由這張圖可不可以這樣認(rèn)為mangle表中的PREROUTING要先于nat 表中的PREROUTING 和 filter表中的FORWARD的呢?
PREROUTING 和 FORWARD 沒有可比性,PREROUTING 一定先于 FORWARD
你應(yīng)該問:mangle 的 PREROUTING 是否優(yōu)先于 nat 的 PREROUTING?
或者:mangle 的 FORWARD 是否優(yōu)先于 filter 的 FORWARD?
答案是:是的
從 netfilter 的內(nèi)核代碼看,各個(gè)處理流程的優(yōu)先級(jí)如下
- 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,
- };
復(fù)制代碼
可見,nat 在 mangle 之后,而 nat 中又有 NAT_DST(PREROUTING)和 NAT_SRC(POSTROUTING)
其他部分優(yōu)先級(jí)見上面的枚舉結(jié)構(gòu)
[ 本帖最后由 platinum 于 2007-8-18 08:18 編輯 ] |
|