原帖由 albcamus 于 2005-12-7 10:25 发表
去掉符号表情吧,要不太乱了![]()
原帖由 独孤九贱 于 2005-12-7 10:32 发表
我也没办法去啊,我把字打出来,一发表,它就成那样了
原帖由 思一克 于 2005-12-7 10:53 发表
iptables 仅仅是USER空间的一个改变(添加,删除等操作)KERNEL中的规则表的SHELL。
规则一旦建立,真正起防火墙作用的东西都是内核中的代码,和iptables程序就没有关系了。
原帖由 mq110 于 2005-12-7 12:17 发表
我最近正在研究 netfilter架构 提供的钩子函数。实现个简单的包过虑防火墙 感觉还是很简单的。。
现在有个问题。内核模块如何和用户进程通信? 我有个办法可以采取共享内存。不过共享内存方式要有互斥操作。内核 ...
原帖由 独孤九贱 于 2005-12-7 12:32 发表
内核有接口的:
1、在获取规则的部份,iptc_init中的getsockopt有这方面的代码;
2、设置的话,后面我说添加规则时会提到的;
原帖由 platinum 于 2005-12-7 12:23 发表
个人感觉,iptables 仅仅是一个 userspace 而已,真正核心部分在 netfilter 中
分析一下 ip_conntrack_ftp.c、ip_nat_ftp.c、ipt_mac.c、ipt_state.c 才是正道 ^_^
原帖由 mq110 于 2005-12-7 12:34 发表
其实我想得到的答案是一个 通用的方式。。内核与用户模块通信。我想还是共享内存最快。不过我现在不知道如何互斥。
原帖由 独孤九贱 于 2005-12-7 12:39 发表
linux下的共享内存很简单呀,比win还好用。我现在CGI的身份认证就是用的它了。互斥的话,你可以参考《unix环境高级编译》
原帖由 mq110 于 2005-12-7 12:42 发表
内核进程和用户进程 共享内存了 你如何实现互斥???
你说的<<Unix环境高级编程>>只是提到了System V 共享内存的方式。他是用户态的。。不是我说的内核进程和用户进程共享内存的方式。
原帖由 mq110 于 2005-12-7 12:42 发表
内核进程和用户进程 共享内存了 你如何实现互斥???
你说的<<Unix环境高级编程>>只是提到了System V 共享内存的方式。他是用户态的。。不是我说的内核进程和用户进程共享内存的方式。
原帖由 albcamus 于 2005-12-7 13:16 发表
内核和用户可以实现内存共享、并且同步的,不过我也没思路,只记得linuxforum有个人在wheelz版主的指点下做出来了,wheelz版主还给了个小例子──可惜我没保存,这两天linuxforum又上不去。
一般常用的 ...
原帖由 albcamus 于 2005-12-7 13:16 发表
内核和用户可以实现内存共享、并且同步的,不过我也没思路,只记得linuxforum有个人在wheelz版主的指点下做出来了,wheelz版主还给了个小例子──可惜我没保存,这两天linuxforum又上不去。
一般常用的 ...
原帖由 独孤九贱 于 2005-12-7 13:28 发表
关于用netlink来做,这篇贴子写得非常好啊:
http://www-128.ibm.com/developer ... cn-newsletter-linux
原帖由 mq110 于 2005-12-7 13:30 发表
多谢多谢。
原帖由 思一克 于 2005-12-7 13:37 发表
对于iptables来说,USER mode的IPTABLES和KERNEL的NETFILTER不存在内存共享和LOCK问题。
USER 和 KERNEL 通信就是通过 SET(GET)SOCKOPT实现的。
USER 得到的TABLES是在USER 空间的一个COPY,而不是内核那个TABL ...
原帖由 思一克 于 2005-12-7 13:37 发表
对于iptables来说,USER mode的IPTABLES和KERNEL的NETFILTER不存在内存共享和LOCK问题。
USER 和 KERNEL 通信就是通过 SET(GET)SOCKOPT实现的。
USER 得到的TABLES是在USER 空间的一个COPY,而不是内核那个TABL ...
原帖由 思一克 于 2005-12-7 15:43 发表
我说的“不存在LOCK问题”是指在iptables user 程序中不用lock,
在setsockopt 的内核代码中要修改 kernel中的table必须lock.
原帖由 思一克 于 2005-12-7 16:12 发表
To Jiu3Jian4,
我没有研究过IPTALBES code, 仅仅看过KERNEL的部分。
原帖由 platinum 于 2005-12-7 14:16 发表
独孤九贱、mq110、albcamus、思一克几位老大都太牛了,看得我云山雾绕插不上话,不知道何时才能到达各位老大的境界![]()
原帖由 mq110 于 2005-12-7 16:17 发表
白金兄实在是太谦虚了。像al*兄说的那样术业有专攻。
我也是内核刚刚起步。还靠大家提携。
原帖由 七剑 于 2005-12-7 18:13 发表
名字真特别啊.独孤九贱 .不是九剑.
原帖由 思一克 于 2005-12-8 13:53 发表
内核的netfilter table基本是一个空间上连续的分为几个区域(TABLES)的ARRAY结构,每个区域是一个table, table的每一个项是一个规则。这些在空间上是连续的。ARRAY的大小不等,table的每一个项大小也不同,因为规 ...
原帖由 liyanux 于 2005-12-15 13:13 发表
我现在相对linux的tcp/ip实现以及netfilter进行代码学习,各位有什么好的建议
原帖由 albcamus 于 2005-12-15 13:17 发表
linuxforum.net的daemeon兄给我的建议: 读《Linux Network Architecture》,2.6的协议栈也没有太大变化;看RFC,有时侯它比书籍更详细准确。
那本书上emule下载吧
原帖由 albcamus 于 2005-12-15 13:29 发表
http://www.itpub.net/showthread. ... 117&pagenumber=
不保证好用。 emule下载是最可靠的方法了,我请人打印出来了,不到700页。原著是德文的,amazon上痛骂英文版翻译糟糕![]()
原帖由 albcamus 于 2005-12-15 13:50 发表
没有中文的,协议栈我也刚刚开始,还没什么概念。 linuxforum.net内核版置顶贴有几篇opera前辈的分析文章,很精彩。此外,我就是从google找了一堆英文PDF文档,下载了所有的RFC文档。
慢慢来吧![]()
原帖由 mq110 于 2005-12-7 12:17 发表
我最近正在研究 netfilter架构 提供的钩子函数。实现个简单的包过虑防火墙 感觉还是很简单的。。
现在有个问题。
原帖由 tomorrow0530 于 2006-3-28 12:16 发表
楼主的精神值得敬佩!!辛苦了
现在我只看到了一半,有个疑问
在print_firewall 函数中出现了很多类似这样的代码:
fputc(fw->ip.invflags & IPT_INV_FRAG ? '!' : '-', stdout);
fw->ip ...
原帖由 tomorrow0530 于 2006-4-4 11:35 发表
还有个疑问就是,set/getsockopt是在那里定义的?
我一直都没有找到,也就没法把用户和内核交互这一块弄明白!
我看之前21楼,楼主的回复中有提到最后会用到
static struct nf_sockopt_ops ipt_sockopts
= ...
原帖由 platinum 于 2005-12-7 12:23 发表
个人感觉,iptables 仅仅是一个 userspace 而已,真正核心部分在 netfilter 中
分析一下 ip_conntrack_ftp.c、ip_nat_ftp.c、ipt_mac.c、ipt_state.c 才是正道 ^_^
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |