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 部署中,即使启用了 DVR,IPv6 流量也不会分发。所有入口/出口流量都通过集中式 Controller 节点。如果您在 ML2/OVS 中广泛使用 IPv6 路由,请不要使用 DVR。
请注意,在 ML2/OVN 部署中,始终分配所有 east/west 流量,并在配置 DVR 时分发 north/south 流量。
-
在 ML2/OVS 部署中,与 L3 HA 结合使用 DVR。如果您在 Red Hat OpenStack Platform 16.2 director 中使用 DVR,则禁用 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。