搞了一个centos6.4做nat。
设置了net.ipv4.ip_forward=1
加了iptables -t nat -A POSTROUTING -s 192.168.3.9 -j SNAT --to ip
用192.168.3.9可以ping通外网。
udp协议的通信都正常
就只有tcp协议无法正常建立连接。
iptables里的默认规则是放行。规则是清空过的。
用软件一直在发tcp连接后执行:cat /proc/net/nf_conntrack
查看端口映射表。发现没有看到任何一条与192.168.3.9 tcp nat有关的记录。
用tcpdump抓eth0(公网接口)能抓到192.168.3.9发送到指定服务器的数据包也能
看到指定服务器发回来的响应包。但响应包到了eth0后不会从eth1转发出去。
反回包没有通过filter的forward链而是到了filter的input连。
也就是服务器的响应只到了eth0就丢失了。
我还把sysctl -a 里的与ipv4.tcp有关的键值与另一台nat功能正常的进行对比没有发现有什么不同。
连接数也不多。
也用iptstate查看了一下。
请问这个问题还能怎么排查?
设置了net.ipv4.ip_forward=1
加了iptables -t nat -A POSTROUTING -s 192.168.3.9 -j SNAT --to ip
用192.168.3.9可以ping通外网。
udp协议的通信都正常
就只有tcp协议无法正常建立连接。
iptables里的默认规则是放行。规则是清空过的。
用软件一直在发tcp连接后执行:cat /proc/net/nf_conntrack
查看端口映射表。发现没有看到任何一条与192.168.3.9 tcp nat有关的记录。
用tcpdump抓eth0(公网接口)能抓到192.168.3.9发送到指定服务器的数据包也能
看到指定服务器发回来的响应包。但响应包到了eth0后不会从eth1转发出去。
反回包没有通过filter的forward链而是到了filter的input连。
也就是服务器的响应只到了eth0就丢失了。
我还把sysctl -a 里的与ipv4.tcp有关的键值与另一台nat功能正常的进行对比没有发现有什么不同。
连接数也不多。
也用iptstate查看了一下。
请问这个问题还能怎么排查?