来源nat返回stream量(发夹)

有什么办法可以收到自动收到的stream量?

iptables -t nat -A POSTROUTING -o eth18 --src 123.123.123.123/32 --jump SNAT --to-source 66.66.66.66 

返回stream量仍使用123.123.123.123作为源(请参阅时间戳21:17:07.207832)

 21:17:07.207786 IP 10.193.92.120 > 123.123.123.123: ICMP echo request, id 1, seq 41622, length 40 21:17:07.207832 IP 123.123.123.123 > 10.193.92.120: ICMP echo reply, id 1, seq 41622, length 40 [root@Rats ~]# route -n | grep 10.193.88.0 10.193.88.0 10.193.88.1 255.255.248.0 UG 0 0 0 eth18 10.193.88.0 0.0.0.0 255.255.248.0 U 0 0 0 eth18 

这是RT的样子

 [root@Rats ~]# ip route get 123.123.123.123 local 123.123.123.123 dev lo src 123.123.123.123 cache <local> mtu 16436 advmss 16396 hoplimit 64 [root@Rats ~]# ip route get 10.193.92.120 10.193.92.120 via 10.193.88.1 dev eth18 src 10.193.92.126 cache mtu 1500 advmss 1460 hoplimit 64 [root@Rats ~]# route -n | grep 10.193.88.0 10.193.88.0 10.193.88.1 255.255.248.0 (<</21) UG 0 0 0 eth18 10.193.88.0 0.0.0.0 255.255.248.0 U 0 0 0 eth18 

除了IPtable命令之外,我还尝试了几件事情

 for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; done echo 1 > /proc/sys/net/ipv4/ip_forward 

但仍然没有运气,任何想法?

谢谢

入站的本地目的地数据包永远不会经过NAT表的POSTROUTING链:

netfilter数据包流 https://www.garron.me/images/2012-04/Netfilter-packet-flow.svg

但阅读精细手册显示:

SNAT

这个目标只在nat表中有效,在POSTROUTING和INPUT链中[…]
2.6.36-rc1之前的内核不具备在INPUT链中进行SNAT的能力。

所以你应该使用这些方面的东西:

 iptables -t nat -A INPUT -i eth18 --src 123.123.123.123/32 -j SNAT --to-source 66.66.66.66 

请注意,这不仅eth18链条更改为INPUT,还会更正将eth18用作input接口的规则。 您可以通过查看iptables -t nat -L INPUT -v -n的包计数器来validation是否有任何内容符合您的规则