Chinaunix

标题: 关于iptables/netfilter表,链,规则以及hook函数的疑问 [打印本页]

作者: li_freedom    时间: 2014-02-21 09:59
标题: 关于iptables/netfilter表,链,规则以及hook函数的疑问
如题,我有个相关的疑问一直没有弄清楚:

我现在理解的hook函数就是在某个挂载点(PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING)挂在的callback函数

我们知道:

        对于filter来讲一般只能做在3个链上:INPUT ,FORWARD ,OUTPUT
        对于nat来讲一般也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING
       而mangle则是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

从上可知,比如filter表和nat表有相同的链OUTPUT,   


我的疑问是:当我在OUTPUT上挂接hook函数的时候,这个hook是挂在了filter上面还是nat上面了?


比如如下结构体赋值:
struct nf_hook_ops output_node;
output_node.hook       = foo;
outpit_node.pf             = AF_INET;
outpit_node.hooknum  = NF_INET_LOCAL_OUT;
outpit_node.priority     = NF_IP_PRI_FIRST;
那这个时候我要是  nf_register_hook(&output_node)的话,会挂接到哪个表上呢?

--------------------------------------------------------------------------------------------------------
另:  我的理解:数据处理的流程是2中
  1REROUTING->INPUT->OUTPUT->OSTROUTING
  2REROUTING->FORWARD->OSTROUTING


那这样的话我上面注册的hook函数foo实际上就是在经过OUTPUT的时候来调用的了, 在这个流程里面没有表的体现啊?

filter的OUTPUT和nat的OUTPUT难道是两个不同的点吗?


我现在有点晕了,不清楚到底是怎么弄的,  希望大婶们能给指点一下。

真心感谢。





作者: li_freedom    时间: 2014-02-22 18:47
没有人回答吗?  自己顶一下。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2