跳转到: 导航, 搜索

OSSN/OSSN-0020


解除浮动 IP 地址关联不会终止与 Neutron L3 代理的 NAT 连接

总结

每个虚拟机都会自动分配一个私有 IP 地址。您可以选择性地为虚拟机分配公有 IP 地址。OpenStack 使用术语“浮动 IP”来指可以动态添加到正在运行的虚拟机中的 IP 地址(通常是公有地址)。Neutron L3 代理使用网络地址转换 (NAT) 将浮动 IP 地址分配给虚拟机。浮动 IP 地址可以从正在运行的虚拟机中动态释放,但使用 Neutron L3 代理时,与预期不同的是,任何活动的连接都不会随此释放而终止。

受影响的服务 / 软件

Neutron, Icehouse, Havana, Grizzly, Folsom

讨论

在创建虚拟机时,默认情况下不会分配浮动 IP 地址。在创建虚拟机后,用户可以显式地将浮动 IP 地址关联到该虚拟机。用户可以使用此浮动 IP 地址创建与虚拟机的连接。此外,此浮动 IP 地址可以从任何正在运行的虚拟机中解除关联,而无需关闭该虚拟机。

如果用户使用浮动 IP 地址发起连接,即使在浮动 IP 地址从该虚拟机释放后,此连接仍然保持活动状态且可访问。这可能会违反仅应用于新连接的限制性策略。这些策略会忽略预先存在的连接,并且虚拟机仍然可以从公共网络访问。

已知此问题仅影响使用 L3 代理的 Neutron。Nova 网络不受影响。

建议的操作

不幸的是,没有简单的方法可以检测通过虚拟机的浮动 IP 地址发起的哪些连接,因为 NAT 在 Neutron 路由器上执行。终止通过浮动 IP 地址发起的所有连接的唯一安全方法是终止虚拟机本身。

在使用 Neutron L3 代理时,应遵循以下建议

  • 仅当虚拟机应可从云外部网络访问时,才将其附加到浮动 IP 地址。
  • 终止或停止虚拟机,同时解除浮动 IP 地址的关联,以确保关闭所有连接。


Neutron 开发团队计划在 Neutron 的未来版本中解决此问题。

联系方式 / 参考文献