论坛风格切换切换到宽版
  • 690阅读
  • 6回复

[问题求助]请教大家关于multicast包在netfilter架构中穿行,hook function的调用顺序问题 [复制链接]

上一主题 下一主题
 
发帖
2258
C币
-198163
威望
433
贡献值
1
银元
-2
铜钱
5064
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
各位大侠,有几个关于multi.cast的问题想向大家请.教:.
我想给conntrack写一个插件,主要是想为我们实验室的一个视频项目做支持。这个项目使用.了multicast来进行视频传播,使用一个TCP连接来传输控制消息。.我们想能不能在linux做的防火墙上写一个ip_conntrack_helper,分析通过的控.制消息,拿到multicast地.址之后创建一个ip_conntrack_expect,来让multicast的数据包进入。这.个做法和ftp的做法比较相似。.

可是现在出现了一个问题:
在网上查找资料发现,m.ulticast在netfil.ter里头是不经过conntrack模块的。不像unicast那样在netfilter穿行的时候的路径是Conntrack->DNAT->F.ilter->SNAT->Conntrack。就是说创建了ip_conntrack_expect模块似乎也是.没有帮助的。那么multicast包是如何在netfilter构架中穿行又是调.用了哪些hook function?学习

关于这个问题,我在网上找了一段时间,但找不到相关的文章。希望有.经验的大牛.能给我们一些指点。或者知道那些手册论述了这个话题的,也望不吝赐教!           女人

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线qsums.
发帖
1994
C币
-193509
威望
384
贡献值
1
银元
-5
铜钱
4485
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:请教大家关于multicast包在netfilter架构中穿行,hook
可否在尝试在 NF_IP_PRE_ROUTING 中插入一个 hook,然后 printk 所有的数据包
由此可以得知多播信息是否经过 netfilter 框架

发帖
2021
C币
-193483
威望
365
贡献值
1
银元
-1
铜钱
4659
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:请教大家关于multicast包在netfilter架构中穿行,hook
多谢白金斑竹,就我所知,multicast肯定是要经过netfilter架构的。至少在Filter表中能过滤multicast包。而且网上的资料说,multicast是会击中Nat表的,我想这样行不行,自己的ip_conntrack_helper被触发后,不用新建ip_conntrack_expect,而直接修改Filter表,在里头增加几条Rule允许Multicast通过。但是估计这样做会比较麻烦:(

发帖
1925
C币
-152776
威望
343
贡献值
1
银元
-2
铜钱
4341
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
Re:请教大家关于multicast包在netfilter架构中穿行,hook
我只写过 match 的东西,target 还没做过,也没做过 ip_conntrack_helper 的东西
对了,你看一下 ip_nat_ftp.c 的内容和 ip_conntrack_ftp.c 的内容,看他是怎么实现的?
我对匹配后的处理过程还不了解,目前还不知道他的实现原理

我认为,如果服务器是放在 Linux 上的话,打开 FILTER 的端口是可以的,但是如果是 nat 的话,原理大不相同

离线dwbtongyi.
发帖
2171
C币
-60536
威望
368
贡献值
1
银元
0
铜钱
4781
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
Re:请教大家关于multicast包在netfilter架构中穿行,hook
ftp的例子我看过了,它是用的ip_conntrack_helper,使用了ip_conntrack_expect。因为multicast不用conntrack处理,所以对我的这个case没用。
看样子是要直接操作filter表了,match完了还要从in_dev里头读出来multicast的组,还要去改表,连接断了还要回去删,麻烦啊~~

发帖
2111
C币
-60243
威望
399
贡献值
1
银元
-2
铜钱
4866
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
Re:请教大家关于multicast包在netfilter架构中穿行,hook


QUOTE:原帖由 hadesli 于 2006-3-8 23:00 发表
ftp的例子我看过了,它是用的ip_conntrack_helper,使用了ip_conntrack_expect。因为multicast不用conntrack处理,所以对我的这个case没用。
看样子是要直接操作filter表了,match完了还要从in_dev里头读出来mul ...


没有必要想的这么麻烦,告诉你一般产品是如果支持组播的,就是把组播当成普通的UDP包来对待,UDP数据一去一回就是一个UDP流了,多播和这个原理一样.所不同的就是你需要一个用户接口,让用户来配那个网口是组播口.因为你不是多播路由器,所以必须知道多那个网口转发多播.转发的时候有一个条件就是多播的TTL值大都为1,所以多播服务器上要设置一下,把TTL增大一点.

离线62712345.
发帖
2088
C币
-306683
威望
380
贡献值
1
银元
-3
铜钱
4663
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
Re:请教大家关于multicast包在netfilter架构中穿行,hook


QUOTE:原帖由 skipjack 于 2006-3-8 23:16 发表


没有必要想的这么麻烦,告诉你一般产品是如果支持组播的,就是把组播当成普通的UDP包来对待,UDP数据一去一回就是一个UDP流了,多播和这个原理一样.所不同的就是你需要一个用户接口,让用户来配那个网口是组播口.因 ...


多谢解答不过我们的要求是:防火墙是默认block多播包的,对外就放开控制端口,只有等到内外用户连接起来了,再动态的把允许多播的rule加到防火墙里头去。所以才搞得如此复杂:(
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个