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。
- 您必须具有 RHOSP 管理员特权。
流程
- 以 stack 用户身份登录 undercloud 主机。
查找 stackrc undercloud 凭证文件:
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 undercloud 节点上的环境文件中,将
EnableVLANTransparency
参数设置为true
。例如,将以下行添加到ovn-extras.yaml
中。parameter_defaults: EnableVLANTransparency: true
parameter_defaults: EnableVLANTransparency: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
openstack overcloud deploy
命令中包含环境文件以及与您环境相关的任何其他环境文件并部署 overcloud:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<other_overcloud_environment_files>
替换为属于您现有部署的环境文件列表。使用
--transparent-vlan
参数创建网络。- 示例
openstack network create network-name --transparent-vlan
$ openstack network create network-name --transparent-vlan
在每个参与的虚拟机上设置一个 VLAN 接口。
将接口 MTU 设置为比 underlay 网络的 MTU 小 4 字节,以适应 VLAN 透明度所需的额外标记。例如,如果 underlay 网络 MTU 为 1500,则将接口 MTU 设置为 1496。
以下示例命令在
eth0
上添加了一个 MTU 为 1496 的 VLAN 接口。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
$ 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
对于您在虚拟机内在 VLAN 接口(第 4 步)中创建的 IP 地址,选择这些替代方案之一:
在虚拟机端口上设置允许的地址对。
- 示例
以下示例在端口
fv82gwk3-qq2e-yu93-go31-56w7sf476mm0
上设置了允许的地址对,并使用192.128.111.3
,并选择性地添加 MAC 地址00:40:96:a8:45:c4
:openstack port set --allowed-address \ ip-address=192.128.111.3,mac-address=00:40:96:a8:45:c4 \ fv82gwk3-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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
禁用端口上的端口安全性。
当无法列出允许的地址对中所有可能的组合时,禁用端口安全性会提供实际的替代方法。
- 示例
以下示例禁用端口
fv82gwk3-qq2e-yu93-go31-56w7sf476mm0
的端口安全性:openstack port set --no-security-group \ --disable-port-security \ fv82gwk3-qq2e-yu93-go31-56w7sf476mm0
$ openstack port set --no-security-group \ --disable-port-security \ fv82gwk3-qq2e-yu93-go31-56w7sf476mm0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 使用 vlan50 IP 地址在 VLAN 上的两个虚拟机之间 ping。
-
在
eth0
上使用tcpdump
以查看数据包是否到达 VLAN 标签是否完好。