是否可以将 127.0.0.1 流量发送到 eth0,同时将此 IP 保留在环回接口中?(Linux)

是否可以将 127.0.0.1 流量发送到 eth0,同时将此 IP 保留在环回接口中?(Linux)

这个问题和标题一样简单明了,但几乎每个被问到这个问题的人都试图说服我,我疯了或者傻了。我会在这里解释为什么我需要这个,我也欢迎其他解决方案来完成这项任务,但如果你能给我一个答案(特别是如果不是“不”的话:)),我仍然会非常感激。

因此,我在同一个网络上有一组机器(假设为 10.0.0.1/24),它们的 IP 是 10.0.0.1、10.0.0.2、...、10.0.0.10

他们的环回接口(即 lo:dsr)上也配置了一个公共互联网 IP(假设为 8.8.8.8)[等等,先不要叫我疯子]

在这个池的顶部,我有一个直接服务器返回负载平衡器。如果你不知道它是如何工作的,请查看这个:http://www.weirdnet.nl/images/natvsdsr.png

到目前为止一切顺利,运行完美。

现在问题来了。这些机器不运行任何服务。它们在端口 8080、8081 和 8082 上运行 3 种不同的服务,并且它们之间通过网络进行通信。

因此,当机器 A 上的服务 8080 尝试联系服务 8081(通过负载均衡器 IP,8.8.8.8)时,Linux 会“足够智能”地注意到机器 A 拥有 IP 8.8.8.8,并将此数据包发送到环回接口。

通常这不是问题,但由于它是一个高可用性系统,如果由于某种原因(可能是交付)服务 B 在机器 A 上停止,那就会出现问题。

相关内容