通过 POSTROUTING 更改 IP 后无法 ping 虚拟机和/或挂载 NFS

通过 POSTROUTING 更改 IP 后无法 ping 虚拟机和/或挂载 NFS

想象一下以下设置。

我有一台机器 A,它导出一个网络共享,并且可以通过 1.1.1.1 访问。

第二台具有 IP(例如 2.2.2.2)的 B 机器正在挂载该共享,一切正常。

现在,我正在尝试设置某种蓝/绿开发。
机器 B 从 IP 2.2.2.2 开始。当我分配某种新的虚拟 IP(例如来自 AWS 的 ElasticIP,但在本例中是来自 Hetzner Cloud 的浮动 IP)时,我会在 iptables 中创建一个新的 POSTROUTING 条目,其中包含

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source $FIP

正确结果是

10      20  1415 SNAT       all  --  *      eth0    0.0.0.0/0            0.0.0.0/0            to:x.x.x.x

这意味着,机器B现在使用新的IP地址进行通信。

痛苦随之而来:
我不再能够从机器 B 安装和/或 ping 具有 IP 1.1.1.1 的机器 A。除了具有新 IP 地址的机器 B 之外,从任何地方都可以 ping 机器 A。

怎么会这样?有什么想法吗?

相关内容