5.5. 启用 VLAN 透明性
在 OpenShift 上的 Red Hat OpenStack Services (RHOSO)环境中,如果您需要在虚拟机(VM)实例之间发送 VLAN 标记的流量,您可以启用 VLAN 透明。在 VLAN 透明网络中,您可以直接在虚拟机中配置 VLANS,而无需在 RHOSO 网络服务(neutron)中配置它们。
先决条件
-
在工作站上安装了
oc
命令行工具。 -
以具有
cluster-admin
权限的用户身份登录到可访问 RHOSO 控制平面的工作站。 - 提供商网络类型为 Local、VLAN、VXLAN 或 GENEVE。不要在带有扁平类型提供商网络的部署中使用 VLAN 透明。
- 确保外部交换机支持两个 VLAN 上使用 ethertype 0x8100 的 802.1q VLAN 堆栈。OVN VLAN 透明不支持带有外部供应商 VLAN ethertype 设置为 0x88A8 或 0x9100 的 802.1ad QinQ。
流程
创建 YAML 文件并添加以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用更新的
OpenStackControlPlane
CR 配置:oc apply -f <control_plane_update.yaml>
$ oc apply -f <control_plane_update.yaml>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<control_plane_update.yaml
> 替换为包含更新的 YAML 文件的名称。
-
将
等待 Red Hat OpenShift Container Platform (RHOCP)创建与
OpenStackControlPlane
CR 相关的资源。检查 control plane 部署的状态:oc get openstackcontrolplane -n OPENSTACK
$ oc get openstackcontrolplane -n OPENSTACK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS MESSAGE openstack-control-plane Unknown Setup started
NAME STATUS MESSAGE openstack-control-plane Unknown Setup started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当状态为 "Setup complete" 时,会创建 OpenStackControlPlane 资源。
提示将
-w
选项附加到get
命令,以跟踪部署进度。从您的工作站访问 OpenStackClient pod 的远程 shell:
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认网络服务已成功载入
vlan_transparent
扩展:openstack extension list --network --max-width=72 \ | grep vlan-transparent
$ openstack extension list --network --max-width=72 \ | grep vlan-transparent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
如果网络服务成功载入了
vlan_transparent
扩展,您应该会看到类似如下的输出:| Vlantransparent | vlan-transparent | Provides Vlan | | | | Transparent Networks |
| Vlantransparent | vlan-transparent | Provides Vlan | | | | Transparent Networks |
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用-
-transparent-vlan
参数创建网络。Example
openstack network create <network-name> --transparent-vlan
$ openstack network create <network-name> --transparent-vlan
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 <network-name> 替换为您要创建的网络的名称。
退出
openstackclient
pod:exit
$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在每个参与的虚拟机上设置一个 VLAN 接口。
将接口 MTU 设置为小于下划线网络的 MTU 的 4 字节,以适应 VLAN 透明所需的额外标记。例如,如果lay 网络 MTU 是
1500
,则将接口 MTU 设置为1496
。以下示例命令在
eth0
上添加了一个 VLAN 接口,其 MTU 为1496
。VLAN 为50
,接口名称为vlan50
:Example
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从您的工作站访问 OpenStackClient pod 的远程 shell:
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VM
端口上的 set-allowed-address
。将允许的地址设置为您在虚拟机内 VLAN 接口中创建的 IP 地址。另外,您还可以设置 VLAN 接口 MAC 地址。
注意设置允许的地址对的另一种方法是使用端口
set --disable-port-security 命令禁用端口安全性
。Example
以下示例将 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
$ 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 退出
openstackclient
pod:exit
$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
-
使用您在上一步中设置的 VLAN 接口名称 IP 地址(例如
vlan50
)在 VLAN 上的两个虚拟机之间 ping。 -
在
eth0
上使用tcpdump
来查看数据包是否到达 VLAN 标签的完整性。