OpenStack:实例的 iface 可以监听(公共)浮动 IP 吗?

OpenStack:实例的 iface 可以监听(公共)浮动 IP 吗?

似乎 OpenStack 实例的默认运作方式是通过 DHCP 分配一个私有 IP,并将一个浮动 IP 与该实例/私有 IP 关联,此时该实例可通过互联网访问。

OpenStack 似乎在这两者之间做了 NAT。

现在,这应该是每个服务(在实例内运行)的一大难题,因为服务需要知道自己的全局 IP,因为它将其作为某些协议数据的一部分发送。

例如,考虑当 HTTP 与 IP 地址而不是域名一起使用时,实例内部运行的 HTTP 服务器会想要使用实例的 IP 地址发送重定向。

当然,这个例子有点虚构,但它只是为了说明这一点。

有没有办法让实例的 iface 直接监听(公共)浮动 IP?就像 Debian 一样/etc/network/interfaces

iface eth0 inet static
    address     1.2.3.4
    netmask     255.255.255.0
    gateway     1.2.3.254

谢谢 :-)

答案1

现在,这应该是每个服务(在实例内运行)的一大难题,因为服务需要知道自己的全局 IP,因为它将其作为某些协议数据的一部分发送。

我能想到的符合这些标准的服务非常少。我能想到的唯一需要直接连接到外部网络的服务是:

  • 需要第 2 层邻接的网络级服务(例如 DHCP),以及
  • 高性能存储应用程序需要尽可能直接的网络连接存储路径

否则,仅使用 IP 地址提供面向“公众”的服务并不常见。

如果你确实发现自己处于必须将实例直接连接到现有第 2 层网络的有限情况之一,你可以通过创建提供商网络.来自文档:

提供商网络为实例提供第 2 层连接,并可选择支持 DHCP 和元数据服务。这些网络连接或映射到数据中心现有的第 2 层网络,通常使用 VLAN (802.1q) 标记来识别和分离它们。

所以如果您确实需要的话,这个功能是存在的,但是我认为您会发现在几乎所有情况下使用浮动 IP 模型更为合适。

相关内容