11.2. 在 ML2/OVN 部署中启用 VLAN 透明性
如果您需要在虚拟机(VM)实例之间发送 VLAN 标记的流量,请启用 VLAN 透明数据。在 VLAN 透明网络中,您可以直接在虚拟机中配置 VLANS,而无需在 neutron 中配置它们。
先决条件
- 部署 Red Hat OpenStack Platform 16.1 或更高版本,使用 ML2/OVN 作为机制驱动程序。
- VLAN 或 Geneve 类型的提供商网络。不要在带有扁平类型提供商网络的部署中使用 VLAN 透明。
- 确保外部交换机支持两个 VLAN 上使用 ethertype 0x8100 的 802.1q VLAN 堆栈。OVN VLAN 透明不支持将外部供应商 VLAN ethertype 设置为 0x88A8 或 0x9100 的 802.1ad QinQ。
流程
在 undercloud 节点上的环境文件中,将
EnableVLANTransparency
参数设置为true
。例如,将以下行添加到ovn-extras.yaml
中:parameter_defaults: EnableVLANTransparency: true
在
openstack overcloud deploy
命令中包含环境文件,以及任何与您环境相关的其他环境文件,并部署 overcloud:$ openstack overcloud deploy \ --templates \ … -e <other_overcloud_environment_files> \ -e ovn-extras.yaml \ …
将
<other_overcloud_environment_files
> 替换为作为现有部署一部分的环境文件列表。使用
--transparent-vlan
参数创建网络。示例
$ openstack network create network-name --transparent-vlan
在每个参与的虚拟机上设置一个 VLAN 接口。
将接口 MTU 设置为小于 underlay 网络的 MTU 的 4 字节,以适应 VLAN 透明所需的额外标记。例如,如果lay 网络 MTU 是 1500,请将接口 MTU 设置为 1496。
以下示例命令在
eth0
中添加一个 VLAN 接口,其 MTU 为 1496。VLAN 为 50,接口名称为vlan50
:示例
$ ip link add link eth0 name vlan50 type vlan id 50 mtu 1496 $ ip link set vlan50 up $ ip addr add 192.128.111.3/24 dev vlan50
在虚拟机端口上设置
--allowed-address
。将允许的地址设置为您在第 4 步中在虚拟机内的 VLAN 接口中创建的 IP 地址。另外,您还可以设置 VLAN 接口 MAC 地址:
示例
以下示例将 IP 地址设为
192.128.111.3
,可选的 MAC 地址00:40:96:a8:45:c4
on portfv82gwk3-qq2e-yu93-go31-56w7sf476mm0
:$ openstack port set --allowed-address ip-address=192.128.111.3,mac-address=00:40:96:a8:45:c4 fv82gwk3-qq2e-yu93-go31-56w7sf476mm0
验证
- 使用 vlan50 IP 地址在 VLAN 上的两个虚拟机间 ping。
-
在
eth0
上使用tcpdump
来查看数据包是否到达 VLAN 标签。
其他资源
- 高级 Overcloud 自定义指南中的环境文件。
- 高级 Overcloud 自定义指南中的创建 overcloud 中包括环境文件