免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1435 | 回复: 1
打印 上一主题 下一主题

[网络] 关于iptables/netfilter表,链,规则以及hook函数的疑问 [复制链接]

论坛徽章:
1
卯兔
日期:2014-05-29 10:21:33
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-21 09:59 |只看该作者 |倒序浏览
如题,我有个相关的疑问一直没有弄清楚:

我现在理解的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难道是两个不同的点吗?


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

真心感谢。




论坛徽章:
1
卯兔
日期:2014-05-29 10:21:33
2 [报告]
发表于 2014-02-22 18:47 |只看该作者
没有人回答吗?  自己顶一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP