DOCA 文档 v2.10.0

Linux 中每个 VF 的 Q-in-Q 封装

注意

此功能仅在 ConnectX-5 和 ConnectX-6 适配器卡上受支持。

本节介绍如何在每个 VF 的基础上为虚拟机监控程序配置 IEEE 802.1ad Q-in-Q VLAN 标记(S-VLAN)。通过 SR-IOV 连接到 VF 的 VM 可以传输带有或不带有 C-VLAN 标记的流量。

当 VF 配置为 VST Q-in-Q 封装时,适配器硬件会自动将 S-VLAN 标记插入从 VF 到物理端口的传出数据包中。对于传入数据包,硬件会在将流量传递到 VF 之前删除 S-VLAN 标记。

此设置假设有两台服务器配备了 ConnectX-5/ConnectX-6 适配器卡。

worddav336f9b6791fd85e08c8e6897697cd75b-version-1-modificationdate-1734565210437-api-v2.png

  • 内核必须为 v3.10 或更高版本,或者自定义/内置内核必须支持 vlan-stag

  • 对于 ConnectX-5/ConnectX-6 HCA,必须安装 16/20.21.0458 或更高版本的固件

  • 服务器应启用 SR-IOV,并且 VF 应连接到虚拟机监控程序上的 VM。

  • 网络注意事项 - 网络交换机可能需要在相关的交换机端口上增加 MTU(以支持 1522 MTU 大小)。

  1. 为每个端口的每个 VF 添加所需的 S-VLAN (QinQ) 标记(在虚拟机监控程序上)。有两种方法可以添加 S-VLAN

    1. 通过使用 sysfs

      复制
      已复制!
                  

      echo '100:0:802.1ad' > /sys/class/net/ens1f0/device/sriov/0/vlan

    2. 通过使用 ip link 命令(仅在使用最新内核版本时可用)

      复制
      已复制!
                  

      ip link set dev ens1f0 vf 0 vlan 100 proto 802.1ad

      使用 ip link show 命令检查配置

      复制
      已复制!
                  

      # ip link show ens1f0 ens1f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 link/ether ec:0d:9a:44:37:84 brd ff:ff:ff:ff:ff:ff vf 0 MAC 00:00:00:00:00:00, vlan 100, vlan protocol 802.1ad, spoof checking off, link-state auto, trust off vf 1 MAC 00:00:00:00:00:00, spoof checking off, link-state auto, trust off vf 2 MAC 00:00:00:00:00:00, spoof checking off, link-state auto, trust off vf 3 MAC 00:00:00:00:00:00, spoof checking off, link-state auto, trust off vf 4 MAC 00:00:00:00:00:00, spoof checking off, link-state auto, trust off

  2. 可选:添加 S-VLAN 优先级。在 ip link 命令(或 sysfs)中使用 qos 参数

    复制
    已复制!
                

    ip link set dev ens1f0 vf 0 vlan 100 qos 3 proto 802.1ad

    使用 ip link show 命令检查配置

    复制
    已复制!
                

    # ip link show ens1f0 ens1f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 link/ether ec:0d:9a:44:37:84 brd ff:ff:ff:ff:ff:ff vf 0 MAC 00:00:00:00:00:00, vlan 100, qos 3, vlan protocol 802.1ad, spoof checking off, link-state auto, trust off vf 1 MAC 00:00:00:00:00:00, spoof checking off, link-state auto, trust off vf 2 MAC 00:00:00:00:00:00, spoof checking off, link-state auto, trust off vf 3 MAC 00:00:00:00:00:00, spoof checking off, link-state auto, trust off vf 4 MAC 00:00:00:00:00:00, spoof checking off, link-state auto, trust off

  3. 在 VM 上创建 VLAN 接口并添加 IP 地址。

    复制
    已复制!
                

    ip link add link ens5 ens5.40 type vlan protocol 802.1q id 40 ip addr add 42.134.135.7/16 brd 42.134.255.255 dev ens5.40 ip link set dev ens5.40 up

  4. 要验证设置,请在两个 VM 之间运行 ping 命令,并打开 Wireshark 或 tcpdump 以捕获数据包。

© 版权所有 2025 NVIDIA。 上次更新于 2025 年 2 月 12 日。