场景 - 使用 Open vSwitch 与 DVR¶
概述¶
操作员可以选择使用带有分布式虚拟路由 (DVR) 的 Open vSwitch,而不是 Linux 网桥或纯 Open vSwitch 作为 neutron ML2 代理。这提供了在通常的 neutron 网络节点之外部署虚拟路由实例的可能性。本文档概述了如何在您的环境中进行设置。
推荐阅读¶
本指南是可在以下网址找到的标准 Open vSwitch 部署指南的变体:
https://docs.openstack.org/openstack-ansible-os_neutron/2025.2/app-openvswitch.html
在继续操作之前,我们建议您阅读以下文档
Neutron 文档关于 Open vSwitch DVR OpenStack 部署:https://docs.openstack.org/neutron/2025.2/admin/deploy-ovs-ha-dvr.html
关于 OpenStack-Ansible 如何与 Open vSwitch 配合使用的博客文章:https://trumant.github.io/openstack-ansible-dvr-with-openvswitch.html
先决条件¶
根据 Open vSwitch 设置配置您的网络
OpenStack-Ansible 用户变量¶
为您的网络主机创建 group var 文件 /etc/openstack_deploy/group_vars/network_hosts。它必须包含
# Ensure the openvswitch kernel module is loaded
openstack_host_specific_kernel_modules:
- name: "openvswitch"
pattern: "CONFIG_OPENVSWITCH"
在您的 /etc/openstack_deploy/openstack_user_config.yml 中指定 provider 网络定义,这些定义定义一个或多个 Neutron provider bridge 以及相关配置。
注意
此处指定的网桥将自动创建。如果定义了 network_interface,则该接口将自动放置到网桥中。
- network:
container_bridge: "br-provider"
container_type: "veth"
type: "vlan"
range: "101:200,301:400"
net_name: "physnet1"
network_interface: "bond1"
group_binds:
- neutron_openvswitch_agent
- network:
container_bridge: "br-provider2"
container_type: "veth"
type: "vlan"
range: "203:203,467:500"
net_name: "physnet2"
network_interface: "bond2"
group_binds:
- neutron_openvswitch_agent
在使用 flat 提供商网络时,相应地修改网络类型
- network:
container_bridge: "br-provider"
container_type: "veth"
type: "flat"
net_name: "flat"
group_binds:
- neutron_openvswitch_agent
在您的 /etc/openstack_deploy/openstack_user_config.yml 中指定一个叠加网络定义,该定义定义了与叠加网络相关的配置
注意
桥接名称应对应于预先创建的 Linux 网桥或 OVS 网桥。
- network:
container_bridge: "br-vxlan"
container_type: "veth"
container_interface: "eth10"
ip_from_q: "tunnel"
type: "vxlan"
range: "1:1000"
net_name: "vxlan"
group_binds:
- neutron_openvswitch_agent
在您的 /etc/openstack_deploy/user_variables.yml 中设置以下用户变量
注意
DVR 部署与标准 Open vSwitch 部署的唯一区别是相应 neutron_plugin_type 的设置。
neutron_plugin_type: ml2.ovs.dvr
neutron_ml2_drivers_type: "flat,vlan,vxlan"
neutron_plugin_base:
- router
- metering
这些覆盖指令告知 Ansible 部署 OVS 机制驱动程序以及相关的 OVS 和 DVR 组件。这是通过将 neutron_plugin_type 设置为 ml2.ovs.dvr 来完成的。
neutron_ml2_drivers_type 覆盖提供对 OVS 支持的所有常见类型驱动程序的支持。
有关提供商网络覆盖和其他配置选项的更多信息,请参阅以下网址的标准 Open vSwitch 部署:
https://docs.openstack.org/openstack-ansible-os_neutron/2025.2/app-openvswitch.html