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 时,南/南流量会被分布。
-
在 ML2/OVS 部署中,DVR 不支持与 L3 HA 搭配使用。如果您将 DVR 与 Red Hat OpenStack Platform 17.0 director 搭配使用,则禁用 L3 HA。这意味着路由器仍然调度到网络节点上(在 L3 代理之间共享),但如果一个代理失败,此代理托管的所有路由器也会失败。这只会影响 SNAT 流量。建议在这样的情形中使用
allow_automatic_l3agent_failover
功能,以便在一个网络节点失败时,路由器将重新调度到其他节点。 - DHCP 服务器(由 neutron DHCP 代理管理)没有分布,仍然部署在 Controller 节点上。DHCP 代理部署在 Controller 节点上的高可用性配置中,无论路由设计(集中式或 DVR)。
- Compute 节点需要附加到外部网桥的外部网络上的接口。它们使用此接口附加到外部路由器网关的 VLAN 或扁平网络,再为使用浮动 IP 的虚拟机执行 SNAT。
- 在 ML2/OVS 部署中,每个 Compute 节点都需要一个额外的 IP 地址。这是因为外部网关端口和浮动 IP 网络命名空间的实现。
- 项目数据分离支持 VLAN、GRE 和 VXLAN。使用 GRE 或 VXLAN 时,您必须启用 L2 填充功能。Red Hat OpenStack Platform director 在安装过程中强制执行 L2 填充。