免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: dreamice
打印 上一主题 下一主题

请教:有关Netfilter的问题 [复制链接]

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
21 [报告]
发表于 2009-03-11 13:20 |只看该作者
原帖由 scutan 于 2009-3-11 13:18 发表


呵呵, 我也正为这问题迷糊呢. ip_rcv进来的时候只有一个skb, 在hook中完了的时候就有了两个skb了. 而对每个包的处理是串行的.


你说的这个应该是在ip_rcv里面复制了一份吧,而原来的包有引用。

论坛徽章:
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
22 [报告]
发表于 2009-03-11 13:22 |只看该作者
原帖由 dreamice 于 2009-3-11 13:18 发表



你没明白我的问题啊

我可以克隆,可以修改,这是让他走特定路径的前提。但这个包修改了之后需要投递吧?
如果不投递他,它就能走下去了?我是想知道该如何投递这个包。

        return NF_HOOK(PF_INET, NF_IP_PRE_ROUTING, skb, dev, NULL,
                       ip_rcv_finish);

论坛徽章:
0
23 [报告]
发表于 2009-03-11 13:23 |只看该作者
原帖由 dreamice 于 2009-3-11 13:17 发表


我肯定是需要重组后的包。
有两点不太清楚:
1、应用层对包进行重组需要注意什么?
2、我如果在Netfilter中对包进行重组之前,搞一个复制skb,然后发到local in上,岂不是很省事了?
我还是很想知道问题 ...


1。conntrack的defrag是针对IP分片的。如果你连这个都跳过的话,应用层需要实现2个重组:1,ip分片的重组;2,报文的重组(例如HTML报文,在TCP层就拆分了的)。
2。直接丢到local_deliver上的问题是,本地肯定需要个socket监听才可以,而且还不能是TCP的。而且还涉及到socket的查找(正常是找不到的)。

论坛徽章:
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
24 [报告]
发表于 2009-03-11 13:24 |只看该作者
dreamice兄的意思是新拷贝的报文怎么进一步发送?

论坛徽章:
0
25 [报告]
发表于 2009-03-11 13:26 |只看该作者
原帖由 dreamice 于 2009-3-11 13:20 发表


你说的这个应该是在ip_rcv里面复制了一份吧,而原来的包有引用。

不是哈, 我也是和你想的一样, 在hook函数中复制了一个新的skb. 如何让这个skb进入到网络协议栈的那条路径中去.

论坛徽章:
0
26 [报告]
发表于 2009-03-11 13:28 |只看该作者
原帖由 scutan 于 2009-3-11 13:26 发表

不是哈, 我也是和你想的一样, 在hook函数中复制了一个新的skb. 如何让这个skb进入到网络协议栈的那条路径中去.


......
nskb = skb_clone(skb);
ip_rcv_finish(nskb);
......

论坛徽章:
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
27 [报告]
发表于 2009-03-11 13:28 |只看该作者
    return NF_HOOK(PF_INET, NF_IP_PRE_ROUTING, skb, dev, NULL,
                       ip_rcv_finish);

以上是ip_rcv的函数最后的执行,如果新copy的报文的话,是不是可以考虑直接调用ip_rcv_finish?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
28 [报告]
发表于 2009-03-11 13:29 |只看该作者

回复 #23 ShadowStar 的帖子

第一个问题觉得太麻烦了,与我当前的系统实现可能改动太大,接口也会很复杂;
第二个问题:本地是肯定要有socket监听的,不然没办法投递上去,其他的问题应该还好说,我这里就是想知道,这个skb,我调用什么样的接口,就能到本地了。

论坛徽章:
0
29 [报告]
发表于 2009-03-11 13:29 |只看该作者
原帖由 ShadowStar 于 2009-3-11 13:28 发表


......
nskb = skb_clone(skb);
ip_rcv_finish(nskb);
......


呵呵, 我也是这样想的, 得自己去调用.

论坛徽章:
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
30 [报告]
发表于 2009-03-11 13:31 |只看该作者
原帖由 ShadowStar 于 2009-3-11 13:28 发表


......
nskb = skb_clone(skb);
ip_rcv_finish(nskb);
......


如果使用skb_clone的话,是不是相当于报文的内容共用一块内存区?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP