如何将 2 个虚拟 IP 转发到公共和私人网络,并转发到不同的目的地

如何将 2 个虚拟 IP 转发到公共和私人网络,并转发到不同的目的地

这是我的情况,

1 个盒子中的服务器 1 公共 IP (eth0) -> 203.xx55/28 和 57/28 gw 203.xx49 私有 IP (eth1) -> 10.10.8.1

1 个盒子中的服务器 2 私有 IP(eth0)-> 10.10.8.5/24 和 7/24 gw 1​​0.10.8.1

iptables 目录

-A PREROUTING -d 203.x.x.55 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.8.5:80
-A PREROUTING -d 202.10.39.57 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.8.7:80
-A POSTROUTING -s 10.10.8.5 -j SNAT --to-source 203.x.x.55
-A POSTROUTING -s 10.10.8.7 -j SNAT --to-source 203.x.x.57

那么我的问题是,如果来自目标端口为 9100 的 IP 私有将使用 IP 公共 55,而端口 9200 将使用 IP 公共 57。

-A POSTROUTING -s 10.10.8.5/24 -d 10.10.8.1 -p tcp -m tcp --dport 9100 -j SNAT --to-source 202.x.x.55
-A POSTROUTING -s 10.10.8.0/24 -d 10.10.8.1 -p tcp -m tcp --dport 9200 -j SNAT --to-source 202.x.x.57

结果不成功,所有检测到的 ip 为 57。

这有什么问题?感谢您的关注。

答案1

问题解决了。

将目的地添加到 outside_target:

-A POSTROUTING -s 10.10.8.0/255.255.255.0 -d (outside_target) -p tcp -m tcp --dport 9100 -j SNAT --to-source 202.x.x.55
-A POSTROUTING -s 10.10.8.0/255.255.255.0 -d (outside_target) -p tcp -m tcp --dport 9100 -j SNAT --to-source 202.x.x.57

相关内容