免费注册 查看新帖 |

Chinaunix

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

[内核模块] 熟悉nat和conntrack的高手进来指导下,谢谢! [复制链接]

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
1 [报告]
发表于 2013-11-23 10:16 |显示全部楼层
回复 3# shaohui973
第二个包为什么不去查?第一包到达时,由于此时还没有设置NAT规则,则nf_find_rule查找匹配失败,返回NF_ACCEPT;由于是查找失败的,所以没有机会调用对应的target函数---ipt_snat_target或ipt_dnat_target,也就没有机会设置ct->status为DNAT或者SNAT。既然没机会设置,那第二包到达时,它判断ct->status没有设置DNAT或SNAT,不是还会调用nf_find_rule去查找规则。

或许,是不是还有什么地方会设置这个ct->status???


呵呵。你应该仔细看看代码,nat的PREROUTING只对NEW state的数据包操作,也就是说只对链接的第一个数据包操作,之后的数据包都之间走conntrack,不会再走nat规则。
   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2013-11-24 19:26 |显示全部楼层
回复 1# shaohui973
你是说,第一个包之后,CT就不是NEW状态了吗?我对CT这块没了解,指导下我,谢谢。

是的。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP