![您可以配置具有多个源 IP 的 SNAT 并使用静态 DNAT(端口转发)吗?](https://linux22.com/image/801783/%E6%82%A8%E5%8F%AF%E4%BB%A5%E9%85%8D%E7%BD%AE%E5%85%B7%E6%9C%89%E5%A4%9A%E4%B8%AA%E6%BA%90%20IP%20%E7%9A%84%20SNAT%20%E5%B9%B6%E4%BD%BF%E7%94%A8%E9%9D%99%E6%80%81%20DNAT%EF%BC%88%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%89%E5%90%97%EF%BC%9F.png)
我们有一个专用局域网,连接到防火墙,该防火墙具有多个公共 IP,用于 SNAT,以避免单个 IP 上的端口过载。但是,我们要求允许某些工作站通过其托管服务器的预定义端口进行外部访问。
在下面的示例中,计算机 A 之前已将 203.0.113.1:7045 上的可用资源传达给 B。但是,当计算机 B 发起与 A 的连接时,它可能会收到其响应,其源 IP 可能与预期不同(由于 SNAT 循环)。
我认为这肯定是机器 B 的问题,因为它无法正确关联数据包以创建连接。最佳解决方案是什么?
iptables -t NAT -A POSTROUTING -s 10.8.4.0/24 -o eth1 -j SNAT --to-source 203.0.113.1-203.0.113-3
iptables -t NAT -A PREROUTING -i eth1 -m multiport --dports 7045:7059 -j DNAT --to-destination 10.8.4.2
答案1
我认为根本没有问题,因为传入连接会有自己的状态条目,不会与传出状态条目重叠。你的问题是真实的还是虚构的?