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。

流程

  1. 创建 YAML 文件并添加以下内容:

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    metadata:
      name: openstack-control-plane
    spec:
      neutron:
        template:
          customServiceConfig: |
            [DEFAULT]
            vlan_transparent = true
    Copy to Clipboard Toggle word wrap
  2. 应用更新的 OpenStackControlPlane CR 配置:

    $ oc apply -f <control_plane_update.yaml>
    Copy to Clipboard Toggle word wrap
    • <control_plane_update.yaml > 替换为包含更新的 YAML 文件的名称。
  3. 等待 Red Hat OpenShift Container Platform (RHOCP)创建与 OpenStackControlPlane CR 相关的资源。检查 control plane 部署的状态:

    $ oc get openstackcontrolplane -n OPENSTACK
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                      STATUS    MESSAGE
    openstack-control-plane   Unknown   Setup started
    Copy to Clipboard Toggle word wrap

    当状态为 "Setup complete" 时,会创建 OpenStackControlPlane 资源。

    提示

    -w 选项附加到 get 命令,以跟踪部署进度。

  4. 从您的工作站访问 OpenStackClient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
    Copy to Clipboard Toggle word wrap
  5. 确认网络服务已成功载入 vlan_transparent 扩展:

    $ openstack extension list --network  --max-width=72 \
    | grep vlan-transparent
    Copy to Clipboard Toggle word wrap

    输出示例

    如果网络服务成功载入了 vlan_transparent 扩展,您应该会看到类似如下的输出:

    | Vlantransparent      | vlan-transparent     | Provides Vlan          |
    |                      |                      | Transparent Networks   |
    Copy to Clipboard Toggle word wrap
  6. 使用- -transparent-vlan 参数创建网络。

    Example

    $ openstack network create <network-name> --transparent-vlan
    Copy to Clipboard Toggle word wrap

    • 将 <network-name> 替换为您要创建的网络的名称。
  7. 退出 openstackclient pod:

    $ exit
    Copy to Clipboard Toggle word wrap
  8. 在每个参与的虚拟机上设置一个 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
    Copy to Clipboard Toggle word wrap

  9. 从您的工作站访问 OpenStackClient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
    Copy to Clipboard Toggle word wrap
  10. 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 port 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 Toggle word wrap
  11. 退出 openstackclient pod:

    $ exit
    Copy to Clipboard Toggle word wrap

验证

  1. 使用您在上一步中设置的 VLAN 接口名称 IP 地址(例如 vlan50 )在 VLAN 上的两个虚拟机之间 ping。
  2. eth0 上使用 tcpdump 来查看数据包是否到达 VLAN 标签的完整性。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat