【发布时间】:2021-01-09 23:37:21
【问题描述】:
我一直在尝试通过 GCP 在我的服务器上设置一些软件,并分配了一个公共静态 IP。但是我没有通过ifconfig 或ip addr 在VM 中看到它。我知道有no way 让IP 显示在VM 内,并且从NAT 到公共IP 有1 对1 的映射,但我不明白的是,为什么。虽然this question 的问题基本相同,但答案并没有真正清楚地回答 why 部分。
我偶尔会在我的 Windows PC 上运行 VM,有时我会桥接适配器,以便 VM 在我的本地网络上获得 IP,所以我知道这是可能的(除非我在这里遗漏了一些东西)。不过,IBM 云似乎有这个功能。
所以,我的问题是,这是什么以及为什么可能是不允许或尚未实施的原因?它解决或简化了哪些问题?为什么我不能只用ifconfig 或ip addr 查看IP(我知道我不能导致IP 没有分配给接口,我的意思是说为什么没有)?作为初学者,我认为该功能会是人们“期望的”,所以我想知道这背后的技术原因。
谢谢!
【问题讨论】:
-
我绝不是 GCP 方面的专家(更不用说它的内部知识了),因为我的经验更多地在于 Azure(它也进行外部 NATting),但我想至少部分原因是从实例本身外部减少基于池的 IP 分配的一些痛点。
-
您能详细说明一下吗? IBM显然做到了(在问题中链接)。我对细节、问题、痛点实际上是很感兴趣。我不知道,这就是为什么
-
@DazWilkin 的回答很好。总之,公共静态 IP 地址未分配给您的 VM。这就是为什么您在网络接口上看不到它们的原因。您可以从实例元数据中读取 IP 地址。公共 IP 地址被分配给一个特殊的一对一 NAT,该 NAT 管理公共 IP 到私有 IP 的路由。 Google 定义:“如果网络接口分配有外部 IP 地址,Google Cloud 会自动对来源与接口的主要内部 IP 地址匹配的数据包执行一对一的 NAT。”
-
@JohnHanley“公共静态 IP 地址未分配给您的虚拟机”。我知道,我想知道为什么不呢?
-
1/2):因为 Google 就是这样设计网络的。在 GCP 中,网络是在软件中完成的。公共 IP 地址必须分配给真正的硬件接口,然后路由到最终目的地(您的 VM)。对于 IBM,您说的是他们云的“传统”版本。 IBM 传统云可以将公共 IP 地址分配给 VM,因为它们之间有一个最小的软件层虚拟化网络。 IBM 的 Cloud 还提供了真正的虚拟化 VPC 网络。
标签: google-cloud-platform static-ip-address