我有一个集成尝试使用 vSphere 为虚拟机客户机检测到的 IP,但有时 vSphere 检测到的 IP 不是集成应该使用的 IP。最直接的例子是客户机的网络流量经过 1:1 NAT(每个客户机在经过 NAT 后都有一个唯一的 IP,但它与 vSphere 看到的 IP 不同),然后才被与 vSphere 集成的应用程序看到。
创建 NAT 的内部到外部映射很容易,但集成消费者不会使用该映射,只会使用从 vSphere 获取的映射。因此,我只想将该映射推回 vSphere,以便 vSphere 将 NAT IP 报告给集成,而不是内部 IP。这可能吗?
我曾考虑过将 NAT IP 放在标签中,但集成也不会使用 IP 的标签值,而只会使用从 vSphere 获取的客户 IP。
我知道人们会说要摆脱 NAT,但出于特定应用程序的原因,这是必要的。此外,还有其他场景,vSphere 看到的 IP 不是我希望集成看到的。
编辑:正如猜测的那样,NAT 的一个重要原因是负载平衡,并确保通过负载平衡器进行正确的路由。我们知道有非 NAT 选项可以处理负载平衡器周围的路由复杂性,但它们都有权衡,而 NAT 是我们认为最不糟糕的一个。
正如我所暗示的,也有非 NAT 原因需要这样做,主要是 VMware 报告了太多 IP(从技术上讲所有 IP 都存在,但大多数是服务特定的目的地,只有一个用于发起流量。我们只想看到发起流量的 IP)或 VMware 根本没有检测到任何 IP(这种情况很少见,但确实会发生)。
答案1
VMware 客户机 IP 来自客户机接口,通过工具集成获得。我不知道还有什么其他方法。如果需要其他 IP,在这些限制内,这种方法行不通。
我知道人们会说要摆脱 NAT,但对于特定应用程序的原因来说,这是必要的。
是的,请考虑不使用 NAT 的设计。IPv6 提供唯一的 IP 地址,无论是来自全球单播,还是仅 LAN 的唯一本地地址。由于地址空间不重叠,因此可以在任何地方进行路由。通过防火墙进行过滤以照常应用安全策略。
如果没有关于应用程序设计的更多细节,这只是猜测,但即使没有 NAT,客户 IP 也是无用的。也许连接终止于前面的某个负载平衡器或其他代理,这是值得关注的。