免费注册 查看新帖 |

Chinaunix

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

[内核模块] nginx转发的包 在内核协议栈消失了??!!!!!(人快奔溃了.. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-28 09:11 |只看该作者 |倒序浏览
我是在openwrt上做的开发,linux 内核是2.6.32
问题就是经过路由器上的nginx转发的包 完全消失了.....

这是路由器的网络环境.


br-lan 是lan口, eth0.2是wan口.
lan地址为192.168.11.1
WAN地址为 192.168.100.23

我主机连上lan口 通过路由器上网
-A PREROUTING ! -d 192.168.0.0/16 -i br-lan -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.11.1:81
以上这条规则把 本机对外网的 目的端口是80的 tcp的包转发给路由器的lan口. nginx监听80口.

奇怪的就是经过nginx转发的 在lan口 POST_ROUTING  以及 wan口的POST_ROUTING完全的消失了.
我注册的netfilter节点收不到包.优先级已经是最高.

更加诡异的情况出现了....我在iptables命令里的nat mangle   2个表里 的 最后位置 加上对应的post_routing打印日志命令,都收的到 被nginx 转发的包.全部都能打印出来.
打印命令如下
-A POSTROUTING -p tcp -o eth0.2 -j LOG --log-ip-options --log-prefix "POST "

论坛徽章:
0
2 [报告]
发表于 2014-05-28 09:12 |只看该作者
-A PREROUTING ! -d 192.168.0.0/16 -i br-lan -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.11.1:81
这条规则去掉 就好了也就是不让nginx转发了

论坛徽章:
0
3 [报告]
发表于 2014-05-28 09:15 |只看该作者
我甚至把netfilter注册到网桥了,lan口4个口都是网桥了还是一样的问题...简直无语了...
网桥不是链路层了吗这还收不到?
iptables命令为何收的到?iptables不是工作在ip层了??..

个人感觉我的世界的真理已经颠覆了..

论坛徽章:
0
4 [报告]
发表于 2014-05-28 09:30 |只看该作者
捉急啊求大神指教啊

论坛徽章:
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
5 [报告]
发表于 2014-05-28 13:20 |只看该作者
回复 3# q198816
nat POSTROUTING/PREROUTING 是对连接的第一个数据包处理,之后的数据包都走conntrack了,不会再走nat表了

   

论坛徽章:
0
6 [报告]
发表于 2014-05-28 16:00 |只看该作者
但是我在post_routing的节点注册的函数  优先级是FIRST 就是最大负数了.为何还是收不到包.优先级比conntrack大多了啊

论坛徽章:
0
7 [报告]
发表于 2014-05-28 16:01 |只看该作者
我注册的netfilter应该不在nat表里吧

论坛徽章:
0
8 [报告]
发表于 2014-05-28 16:01 |只看该作者
我注册的netfilter应该不在nat表里吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP