免费注册 查看新帖 |

Chinaunix

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

[网络管理] 关于NETFILTER HOOK的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-23 22:46 |只看该作者 |倒序浏览
在一篇论文中看到“基于netfilter 框架的计费网关主要在NF- IP- PRE -ROUTING和NF- IP- FORWARD 两个钩子上实现功能,也就是在PREROUTING链和FORWARD 链上处理数据包,由于钩子NF- IP- PRE-ROUTING只在每次连接第一次要求转发数据包时才被调用,而NF- IP- FORWARD 钩子会对所有个通过的数据包进行过滤,所以我们设计用户身份认证发生在PREROUTING链阶段,通过重定向规则指向的本地Web 的cgi 程序完成这一认证功能。”

想请教一下“钩子NF- IP- PRE-ROUTING只在每次连接第一次要求转发数据包时才被调用”这是作者自定义功能实现的还是PREROUTING就是这样呢?我的理解是每个数据包都会经过PREROUTING啊,作者却说是“每次连接第一次要求转发数据包时才被调用”?如果不是自定义实现的,如何鉴别第一次要求转发呢?


再请教一个问题:如果接收到一个数据包,对它做一定的处理,并需要等待处理结果,即是决定发送或丢弃,在这种情况下如何“挂起”这个数据包,而继续处理其他数据包呢?

[ 本帖最后由 lihw_2002 于 2008-1-23 23:02 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-01-24 09:31 |只看该作者
>>想请教一下“钩子NF- IP- PRE-ROUTING只在每次连接第一次要求转发数据包时才被调用”这是作者自定义功能实现的还是PREROUTING就是这样呢?我的理解是每个数据包都会经过PREROUTING啊,作者却说是“每次连接第一次要求转发数据包时才被调用”?如果不是自定义实现的,如何鉴别第一次要求转发呢?

你的理解是对的,该文的表述有问题

>>再请教一个问题:如果接收到一个数据包,对它做一定的处理,并需要等待处理结果,即是决定发送或丢弃,在这种情况下如何“挂起”这个数据包,而继续处理其他数据包呢?

有一个QUEUE target,可以实现你的功能

论坛徽章:
0
3 [报告]
发表于 2008-01-24 13:57 |只看该作者
QUEUE target是结合iptables用的吧,要先设定规则,将符合规则的数据包排队到用户空间.

我想要的是不用iptables的规则设定,按自己保存在在内核中的条件进行匹配,匹配成功的就发送,不成功的就送到用户空间缓冲区中,等待处理结果,不能影响对后续数据包的处理,如果处理后决定发送,则在将缓冲区中的数据包送回内核继续转发.有没有这方面的例子呢?

或者用iptables将包都发送到用户空间,在用户空间中实现上面要求的功能.

谢谢关注!

[ 本帖最后由 lihw_2002 于 2008-1-24 14:04 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP