免费注册 查看新帖 |

Chinaunix

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

[内核入门] 关于linux中的netfilter机制的 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-03 17:32 |只看该作者 |倒序浏览
大神们,您好,我想问两个问题:
1.netfilter中使用的那五个钩子点是不是linux协议栈本身就定义好的吗?
2.netfilter是不是只是对这五个钩子点及这五个钩子点的钩子函数进行调用,注册之类的管理呢?
谢谢大家了。

论坛徽章:
0
2 [报告]
发表于 2012-09-03 19:20 |只看该作者
对网络子系统也不是很懂, 同样求解.

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2012-09-04 09:30 |只看该作者
回复 1# vntbbb
1.netfilter中使用的那五个钩子点是不是linux协议栈本身就定义好的吗?

是的,内核代码中已经有的。当然,这些 Hook 点本身是需要 Netfilter 启用的情况下才有效。

Netfilter 是可以通过内核配置来启用或者禁用的。网络协议栈没有 Netfilter 是可以正常该工作的。

2.netfilter是不是只是对这五个钩子点及这五个钩子点的钩子函数进行调用,注册之类的管理呢?

Netfilter 好像最多支持的 hook 点是超过 5 个的。只是当前内核里面实现了这个 5 个,也基本上够用了。

论坛徽章:
0
4 [报告]
发表于 2012-09-04 10:01 |只看该作者
回复 3# Godbach


    谢谢,太感激版主啦

论坛徽章:
0
5 [报告]
发表于 2012-09-04 10:04 |只看该作者
回复 3# Godbach


    版主,您说的:是的,内核代码中已经有的。当然,这些 Hook 点本身是需要 Netfilter 启用的情况下才有效。

如果没有启用netfilter的情况下,能不能自己调用系统调用的方式来在这些hook点上进行钩子函数的注册呢?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
6 [报告]
发表于 2012-09-04 10:21 |只看该作者
回复 5# vntbbb

如果没有启用netfilter的情况下,能不能自己调用系统调用的方式来在这些hook点上进行钩子函数的注册呢?

   
内核态程序是直接调用内核提供的 API 了,不是系统调用了。

如果没有启用 Netfilter 的话,我不大清楚能否注册 Hook 成功,就算注册成功,Hook 函数也是不会被调用的。这个看代码就知道了。
  1. #else /* !CONFIG_NETFILTER */
  2. #define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb)
复制代码
netfilter.h 中这两行代码说明了,没有配置 Netfilter,NF_HOOK 直接就是执行一下 okfn 这个函数指针,所有的 hook 函数都不会被调用了。

论坛徽章:
0
7 [报告]
发表于 2012-09-04 11:00 |只看该作者
回复 6# Godbach


    哦,原来如此,万分感激

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
8 [报告]
发表于 2012-09-04 11:56 |只看该作者
回复 7# vntbbb
内核版有很多 Netfilter 的精华帖,你可以看看。


   

论坛徽章:
0
9 [报告]
发表于 2012-09-04 14:55 |只看该作者
回复 8# Godbach


   嗯嗯,谢谢版主,我要努力看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP