关于SUSE11下链接跟踪表的问题
功能描述:利用netfilter框架的链接跟踪表的功能,将数据包的目的ip、目的port修改成127.0.0.1:80。
比如 curl 192.168.0.111:10010经过修改之后curl 127.0.0.1:80。
问题:
在CentOS 6.5下测试没问题,可以实现在访问192.168.0.111:10010的时候,重定向为127.0.0.1:80。
但是在suse11下,出现问题。在转发的时候经过抓包发现,只有三次握手的第一个包syn包转发过去了,然后等待127.0.0.1:80回复的syn+ack包却没有,然后curl一直重复发syn包。
为啥子嘞?
suse的apparmor关闭了 防火墙也没有关。在加载内核转发之前,两个链接是都可以访问的。 问题找到了 是在POST_ROUTING 钩子点出,在调用了nf_nat_fn之后,当定义了CONFIG_XFRM 这个宏的时候才需要ip_xfrm_me_harder调用这个函数,否则就会出现上面说的情况。但是奇怪的是centos6.5同样代码 却没有问题,等回头确定下是不是定义了这个宏。 本帖最后由 _nosay 于 2016-08-24 17:18 编辑
我以为是校验和不对呢,我以前自己构造syn报文发出去,目标机器收到不回synack报文,就是校验和算的不对。 这个是用链路跟踪表修改的 不用自己去做校验和处理的回复 3# _nosay
页:
[1]