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 管理员特权。

流程

  1. 以 stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 在 undercloud 节点上的环境文件中,将 EnableVLANTransparency 参数设置为 true。例如,将以下行添加到 ovn-extras.yaml 中。

    parameter_defaults:
        EnableVLANTransparency: true
    Copy to Clipboard Toggle word wrap
  4. openstack overcloud deploy 命令中包含环境文件以及与您环境相关的任何其他环境文件并部署 overcloud:

    $ openstack overcloud deploy \
    --templates \
    …
    -e <other_overcloud_environment_files> \
    
    -e ovn-extras.yaml \
    …
    Copy to Clipboard Toggle word wrap

    <other_overcloud_environment_files> 替换为属于您现有部署的环境文件列表。

  5. 使用 --transparent-vlan 参数创建网络。

    示例
$ openstack network create network-name --transparent-vlan
Copy to Clipboard Toggle word wrap
  1. 在每个参与的虚拟机上设置一个 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
Copy to Clipboard Toggle word wrap
  1. 对于您在虚拟机内在 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
      Copy to Clipboard Toggle word wrap
    • 禁用端口上的端口安全性。

      当无法列出允许的地址对中所有可能的组合时,禁用端口安全性会提供实际的替代方法。

      示例

      以下示例禁用端口 fv82gwk3-qq2e-yu93-go31-56w7sf476mm0 的端口安全性:

      $ openstack port set --no-security-group \
      --disable-port-security \
      fv82gwk3-qq2e-yu93-go31-56w7sf476mm0
      Copy to Clipboard Toggle word wrap

验证

  1. 使用 vlan50 IP 地址在 VLAN 上的两个虚拟机之间 ping。
  2. eth0 上使用 tcpdump 以查看数据包是否到达 VLAN 标签是否完好。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat