免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 独孤九贱

iptables 源码分析 [复制链接]

论坛徽章:
0
发表于 2005-12-07 10:35 |显示全部楼层
原帖由 独孤九贱 于 2005-12-7 10:32 发表


我也没办法去啊,我把字打出来,一发表,它就成那样了


发表的时候有个选项,就在文字编辑框的下面:禁止Smilies,打上对号就好了

论坛徽章:
0
发表于 2005-12-07 10:53 |显示全部楼层
iptables 仅仅是USER空间的一个改变(添加,删除等操作)KERNEL中的规则表的SHELL。

规则一旦建立,真正起防火墙作用的东西都是内核中的代码,和iptables程序就没有关系了。

论坛徽章:
0
发表于 2005-12-07 10:56 |显示全部楼层
原帖由 思一克 于 2005-12-7 10:53 发表
iptables 仅仅是USER空间的一个改变(添加,删除等操作)KERNEL中的规则表的SHELL。

规则一旦建立,真正起防火墙作用的东西都是内核中的代码,和iptables程序就没有关系了。


这个是当然啊……可是文章本来就是分析iptables的代码啊,而不是netfilter的代码。

回头写完这个,有时间我会写分析netfilter代码的文章的,不过他涉及到linux网络堆栈太多的东东,不好详述,涉及面太广了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2005-12-07 12:17 |显示全部楼层
我最近正在研究 netfilter架构 提供的钩子函数。实现个简单的包过虑防火墙 感觉还是很简单的。。
现在有个问题。内核模块如何和用户进程通信? 我有个办法可以采取共享内存。不过共享内存方式要有互斥操作。内核有内核的信号量操作接口。用户态有用户态的信号量的操作方式。我有如下问题:
1/ 能否用一种公用的信号量的操作方式??
2/ iptables采取何种方式与内核模块通信??

论坛徽章:
0
发表于 2005-12-07 12:23 |显示全部楼层
个人感觉,iptables 仅仅是一个 userspace 而已,真正核心部分在 netfilter 中
分析一下 ip_conntrack_ftp.c、ip_nat_ftp.c、ipt_mac.c、ipt_state.c 才是正道 ^_^

论坛徽章:
0
发表于 2005-12-07 12:32 |显示全部楼层
原帖由 mq110 于 2005-12-7 12:17 发表
我最近正在研究 netfilter架构 提供的钩子函数。实现个简单的包过虑防火墙 感觉还是很简单的。。
现在有个问题。内核模块如何和用户进程通信? 我有个办法可以采取共享内存。不过共享内存方式要有互斥操作。内核 ...


内核有接口的:
1、在获取规则的部份,iptc_init中的getsockopt有这方面的代码;
2、设置的话,后面我说添加规则时会提到的;

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2005-12-07 12:34 |显示全部楼层
原帖由 独孤九贱 于 2005-12-7 12:32 发表


内核有接口的:
1、在获取规则的部份,iptc_init中的getsockopt有这方面的代码;
2、设置的话,后面我说添加规则时会提到的;


其实我想得到的答案是一个 通用的方式。。内核模块与用户进程通信。我想还是共享内存最快。不过我现在不知道如何互斥。

[ 本帖最后由 mq110 于 2005-12-7 12:46 编辑 ]

论坛徽章:
0
发表于 2005-12-07 12:35 |显示全部楼层
原帖由 platinum 于 2005-12-7 12:23 发表
个人感觉,iptables 仅仅是一个 userspace 而已,真正核心部分在 netfilter 中
分析一下 ip_conntrack_ftp.c、ip_nat_ftp.c、ipt_mac.c、ipt_state.c 才是正道 ^_^


呵呵,理是如此了,不过呢,了解iptables的核心代码,对于明白netfilter的许多细节有很大的帮助。因为netfilter的架构是很容易了解的,但是要明白每一处细节,每一句代码,还是有很多工作要做的。所以,我打算先写一篇关于iptables的,然后再写一篇netfilter的……只是要过年了,业务多了,事情多了,时间少了……

论坛徽章:
0
发表于 2005-12-07 12:39 |显示全部楼层
原帖由 mq110 于 2005-12-7 12:34 发表


其实我想得到的答案是一个 通用的方式。。内核与用户模块通信。我想还是共享内存最快。不过我现在不知道如何互斥。


linux下的共享内存很简单呀,比win还好用。我现在CGI的身份认证就是用的它了。互斥的话,你可以参考《unix环境高级编译》

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2005-12-07 12:42 |显示全部楼层
原帖由 独孤九贱 于 2005-12-7 12:39 发表


linux下的共享内存很简单呀,比win还好用。我现在CGI的身份认证就是用的它了。互斥的话,你可以参考《unix环境高级编译》


内核进程和用户进程 共享内存了 你如何实现互斥???

你说的<<Unix环境高级编程>>只是提到了System V 共享内存的方式。他是用户态的。。不是我说的内核进程和用户进程共享内存的方式。

[ 本帖最后由 mq110 于 2005-12-7 12:47 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP