Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在虚拟接口上启用 VLAN 子接口支持

总结 虚拟化网络功能 (VNF) 和容器化网络功能 (CNF) 工作负载通常需要在单个接口上提供多个虚拟网络服务。云原生 Contrail® 网络 支持虚拟接口上的 VLAN 子接口。

VLAN 子接口概述

VLAN 子接口是网络级别的虚拟(或物理)接口的逻辑划分。VLAN 子接口是接收和转发 802.1Q VLAN 标记的 3 层接口。您可以将多个 VLAN 标记分配给单个虚拟接口。当数据包到达该接口时,数据包关联的 VLAN 标记会指定数据包的路由为哪个 VLAN。您可以使用 VLAN 子接口将流量路由到多个 VLAN 以用于服务。

API 变更

本节提供有关配置 VLAN 子接口时发生的 API 调用的信息。

在云原生 Contrail 网络中配置 VLAN 子接口时,Kubernetes 会使用新的properties或 VLAN 标记更新VirtualMachineInterface该字段。更新后,VirtualMachineInterface对象将根据现有 VLAN 标记引用其他VirtualMachineInterface对象。

注意:

云原生 Contrail 网络将 Contrail 经典版中的字段定义 propertiesvirtualMachineInterfaceProperties

网络定义变更

本节提供有关为 Pod 内的虚拟接口创建子接口时所需的网络定义增强功能的信息。

kube-managerPodController,观察 Pod 事件会读取应用于它的网络定义。Kube-manager解析每个网络选择元素并创建关联的 VMI(虚拟机接口)。父层 VMIS 是仅net.juniper.contrail.interfacegroup附加在 YAML 文件中的标记的网络元素。子接口是带有 YAML 文件中附加和net.juniper.contrail.vlan标记的网络元素net.juniper.contrail.interfacegroup

以下两个标记可增强部分中的 cni-args 网络定义:

  • net.juniper.contrail.interfacegroup

    • 接口组两个或多个接口。

    • 父层接口是仅与此标记关联的网络选择元素。

    • 子接口是与此标记和 VLAN 标记关联的网络选择元素。

  • net.juniper.contrail.vlan
    • 指定子接口上的 VLANID。

VLAN 子接口属于其父层接口。用户必须指定子接口连接到的名称空间。请考虑以下示例:

示例 1

示例 1 显示了指定的 cni-argsPod 注释。此示例配置在 Pod 内创建以下三个 VMI 和三个 IIP(接口 IP):

  • VMI,用于默认 Pod 网络 eth0 的 IIP

  • VMI,iIP,用于 eth1 parent-vn (父层接口)

  • VMI,用于 eth1.100 的 IIP( subitf-vn 子接口)

有效配置 1:一个父子接口:一个子接口:

有效配置 2:一个父子接口,多个子接口:

有效配置 3:多个家长、多个子接口:

无效配置 1:同一网络上的多个接口:

配置无效 2:两个接口相同 interfacegroup ,但没有 VLAN