免费注册 查看新帖 |

Chinaunix

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

nf_conntrack_tuple的entry在包被NF_QUEUE到userspace之后丢失了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-01 03:01 |只看该作者 |倒序浏览
5可用积分
我需要conntrack 和 NAT 目的端口是4 的 udp包裹
在 conntrack helper() 里我这样写的:

if (ct->status & IPS_NAT_MASK){
    printk("going to ALG part after NAT\n");
    ret = NF_QUEUE;
    }


第一个query ( dport 4) 在 MASQUERADE之后通过 ret = NF_QUEUE进入用户层进行进一步处理.
然后在那我用ipq_set_verdict() 把verdict NF_ACCEPT 传回内核来让包裹通过NAT
但是当反方向的response回来之后,response并没有被标记成IP_CT_IS_REPLY而是变成了IP_CT_NEW
我觉得是query的nf_conntrack_tuple在NF_QUEUE之后丢失了
因为我试过只用MASQUERADE而不把query发到userspace做进一步修改, response就能被认成 IP_CT_IS_REPLY.
而如果我我发到了userspace,就算什么都不改用ipq_set_verdict简单的传一个NF_ACCPET回来,response都不能被正确识别

我在helper被调用的时候输出了nf_conntrack_tuple的内容
对于Query,
ctinfo = IP_CT_NEW;
the original tuple is:
10.21.22.21:4 -> 10.23.24.24:4 l3num:2 protonum:17
the reply tuple:
10.23.24.24:4 -> 10.22.23.22:4 l3num:2 protonum:17

10.21.22.21 是querying node, 10.22.23.22 是 NAT and 10.23.24.24 是 responding node.

对于 Response:
ctinfo = IP_CT_NEW(但应该是 IP_CT_IS_REPLY)
original tuple:
10.23.24.24:4 -> 10.22.23.22:4 l3num:2 protonum:17
reply tuple:
10.22.23.22:4 -> 10.23.24.24:4 l3num:2 protonum:17


有谁能帮帮我么

论坛徽章:
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
2 [报告]
发表于 2009-04-01 09:47 |只看该作者
LZ能否给出一个拓扑结构图
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP