13.3. DVR 已知问题和注意事项

  • 对 DVR 的支持仅限于 ML2 核心插件和 Open vSwitch (OVS)机制驱动程序或 ML2/OVN 机制驱动程序。不支持其他后端。
  • 在 ML2/OVS DVR 部署中,Red Hat OpenStack Platform 负载均衡服务(octavia)的网络流量会通过 Controller 和网络节点,而不是计算节点。
  • 使用 ML2/OVS 机制驱动程序网络后端和 DVR 时,可以创建 VIP。但是,使用 allowed_address_pairs 分配给绑定端口的 IP 地址应与虚拟端口 IP 地址(/32)匹配。

    如果您将 CIDR 格式 IP 地址用于绑定端口 allowed_address_pairs,则后端中没有配置端口转发,并且 CIDR 中任何 IP 的流量将无法访问绑定的 IP 端口。

  • SNAT (源网络地址转换)流量不会被分发,即使启用了 DVR。SNAT 可以正常工作,但所有入口/出口流量都必须遍历集中式 Controller 节点。
  • 在 ML2/OVS 部署中,IPv6 流量不会被分发,即使启用了 DVR。所有入口/出口流量都通过集中式 Controller 节点。如果您在 ML2/OVS 中广泛使用 IPv6 路由,请不要使用 DVR。

    请注意,在 ML2/OVN 部署中,所有 east/west 流量始终分布,在 DVR 配置时,北北流量会被分发。

  • 在 ML2/OVS 部署中,RHD 不支持与 L3 HA 结合使用。如果您将 DVR 与 Red Hat OpenStack Platform 17.1 director 搭配使用,则 L3 HA 被禁用。这意味着路由器仍然调度到网络节点上(以及 L3 代理之间的负载),但如果一个代理失败,则由此代理托管的所有路由器也失败。这只会影响 SNAT 流量。在这种情况下,建议使用 allow_automatic_l3agent_failover 功能,以便在一个网络节点失败时,路由器会重新调度到不同的节点。
  • 对于 ML2/OVS 环境,DHCP 服务器没有分布,并部署到 Controller 节点上。ML2/OVS neutron DCHP 代理(用于管理 DHCP 服务器)部署在 Controller 节点上的高可用性配置中,无论路由设计如何(集中式或 DVR)。
  • Compute 节点需要外部网络上的接口附加到外部网桥。它们使用此接口连接到外部路由器网关的 VLAN 或扁平网络,以托管浮动 IP,并为使用浮动 IP 的虚拟机执行 SNAT。
  • 在 ML2/OVS 部署中,每个 Compute 节点都需要一个额外的 IP 地址。这是因为外部网关端口和浮动 IP 网络命名空间的实施。
  • VLAN、GRE 和 VXLAN 都支持项目数据分离。使用 GRE 或 VXLAN 时,您必须启用 L2 Population 功能。Red Hat OpenStack Platform director 在安装过程中强制执行 L2 Population。