一、VXLAN基本概念

VXLAN是NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术,通过将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP、MAC作为outer-header进行封装,然后在IP网络上传输,到达目的地后由隧道终结点解封装并将数据发送给目标虚拟机。

VXLAN结构示意图:

image.png

VXLAN基本概念:



Underlay网络和Overlay网络

VXLAN技术将已有的物理网络作为Underlay网络,在其上构建出虚拟的二层或三层网络,即Overlay网络。Overlay网络通过封装技术、利用Underlay网络提供的三层转发路径,实现租户报文在不同站点间传递。对于租户来说,Underlay网络是透明的,只能感知到Overlay网络。

NVE(Network Virtualization Edge)

网络虚拟边缘节点NVE,实现网络虚拟化功能的网络实体。报文经过NVE封装转换后,NVE间就可基于三层基础网络建立二层虚拟化网络。

说明:

设备和服务器上的虚拟交换机VSwitch都可以作为NVE。

按照NVE部署位置的不同,可以分为以下三种模式:

  • 硬件模式:所有的NVE都部署在支持NVE的设备上,所有的VXLAN报文封装与解封装都在设备上进行。

  • 软件模式:所有的NVE都部署在vSwitch上,所有的VXLAN报文封装与解封装都在vSwitch上进行。

  • 混合模式:部分NVE部署在vSwitch上,部分NVE部署在支持NVE的设备上,在vSwitch和设备上都有可能会进行VXLAN报文封装与解封装。

VTEP(VXLAN Tunnel Endpoints)

VTEP是VXLAN隧道端点,封装在NVE中,用于VXLAN报文的封装和解封装。

VTEP与物理网络相连,分配有物理网络的IP地址,该地址与虚拟网络无关。

VXLAN报文中源IP地址为本节点的VTEP地址,VXLAN报文中目的IP地址为对端节点的VTEP地址,一对VTEP地址就对应着一个VXLAN隧道。

VNI(VXLAN Network Identifier)

VXLAN网络标识VNI类似VLAN ID,用于区分VXLAN段,不同VXLAN段的虚拟机不能直接二层相互通信。

一个VNI表示一个租户,即使多个终端用户属于同一个VNI,也表示一个租户。VNI由24比特组成,支持多达16M的租户。

在分布式网关部署场景下,VNI分为二层VNI和三层VNI。

  • 二层VNI是普通的VNI,以1:1方式映射到广播域BD,实现VXLAN报文同子网的转发。

  • 三层VNI和×××实例进行关联,用于VXLAN报文跨子网的转发。

BD(Bridge Domain)

BD是VXLAN网络中转发数据报文的二层广播域。

在VXLAN网络中,将VNI以1:1方式映射到广播域BD,BD成为VXLAN网络转发数据报文的实体。

VBDIF接口

基于BD创建的三层逻辑接口。通过VBDIF接口配置IP地址可实现不同网段的VXLAN间,及VXLAN和非VXLAN的通信,也可实现二层网络接入三层网络。

VAP(Virtual Access Point)

虚拟接入点VAP,即VXLAN业务接入点,可以是二层子接口或VLAN:
  • 当接入节点是二层子接口时,通过在二层子接口上配置流封装类型实现不同的接口接入不同的数据报文,将二层子接口关联广播域BD后,可实现数据报文通过BD转发。

  • 当业务接入点是VLAN时,需要将VLAN绑定到广播域BD,也可以实现数据报文通过BD转发。

网关(Gateway)

和VLAN类似,不同VNI之间的VXLAN,及VXLAN和非VXLAN之间不能直接相互通信。为了使VXLAN之间,以及VXLAN和非VXLAN之间能够进行通信,VXLAN引入了VXLAN网关。

VXLAN网关分为:

  • 二层网关:用于解决租户接入VXLAN虚拟网络的问题,也可用于同一VXLAN虚拟网络的子网通信。

  • 三层网关:用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。



报文封装类型

当业务接入点是二层子接口时,通过在二层子接口上配置不同的流封装类型以实现不同的接口接入不同的数据报文,将二层子接口关联广播域BD(Bridge-Domain)后,可实现数据报文通过BD转发



报文流封装类型

流封装类型

说明

dot1q

对于带有一层VLAN Tag的报文,该类型接口只接收与指定VLAN Tag匹配的报文;对于带有两层VLAN Tag的报文,该类型接口只接收外层VLAN Tag与指定VLAN Tag匹配的报文。

  • 该类型接口在对原始报文进行VXLAN封装时,会剥离最外层的VLAN Tag;

  • 在解封装VXLAN报文时,会添加指定的VLAN Tag后再转发。

Dot1q二层子接口的VLAN ID值可以为一个范围段,该情况下,接口会对报文进行透传,不会剥离VLAN。

配置流封装类型为dot1q时,存在如下限制:

  • 二层子接口封装的vid,不能与对应二层主接口允许通过的VLAN相同,也不能与MUX VLAN中的VLAN相同。

  • 二层子接口和三层子接口封装的VLAN ID不能相同。

  • 同一主接口下的Dot1q的二层子接口VLAN ID不能重叠。

untag

该类型接口只接收不带VLAN Tag的报文。

  • 该类型接口在对原始报文进行VXLAN封装时,不会为其添加任何VLAN Tag;

  • 在解封装VXLAN报文时,如果其内层报文带有VLAN Tag,则将其VLAN Tag剥离(对于QinQ报文,只剥离其外层VLAN Tag)后再转发。

配置流封装类型为untag时,存在如下限制:

  • 请确保该二层子接口对应的物理接口上没有任何配置,且对应的物理接口已退出默认VLAN。

  • 仅支持为二层物理接口(包括Eth-Trunk接口)创建untag类型二层子接口。

  • 一个主接口下仅允许创建一个untag类型的二层子接口。

qinq

该类型接口只接收带有指定两层VLAN Tag的报文。

  • 该类型接口在对原始报文进行VXLAN封装时,如果配置的二层子接口的VLAN Tag操作为剥除两层VLAN Tag操作,则将报文的所有VLAN Tag全部剥离,如果不配置二层子接口的VLAN Tag操作为剥除两层VLAN Tag操作,则将报文的VLAN Tag全部保留;

  • 在解封装VXLAN报文时,如果配置的二层子接口的VLAN Tag操作为剥除两层VLAN Tag操作,则添加指定的两层VLAN Tag后再转发,如果不配置二层子接口的VLAN Tag操作为剥除两层VLAN Tag操作,则保持报文的VLAN Tag不变直接转发。

当有流封装类型为Default类型、Dot1q透传(配置了rewrite no-action命令)类型或QinQ透传(没有配置rewrite pop double命令)类型的二层子接口绑定BD后,该BD不支持配置IGMP Snooping、不支持配置DHCP Snooping、不支持创建VBDIF,不支持配置ARP广播报文抑制。

说明:

绑定同一个BD的QinQ接口的流动作类型要一致。

如果在QinQ二层子接口上配置了VLAN段,不支持同时配置rewrite pop double命令。

QinQ二层子接口上封装的外层VLAN不能和对应二层主接口配置的缺省VLAN以及允许通过的VLAN相同。

default

允许接口接收所有报文,不区分报文中是否带VLAN Tag。

不论是对原始报文进行VXLAN封装,还是解封装VXLAN报文,该类型接口都不会对原始报文进行任何VLAN Tag处理,包括添加、替换或剥离。

配置流封装类型为default时,存在如下限制:

  • 必须确保对应的主接口没有加入VLAN。

  • 仅支持为二层物理接口(包括Eth-Trunk接口)创建default类型二层子接口。

  • 主接口下创建了default类型二层子接口,不允许再创建其他类型二层子接口。



vxlan报文格式

vxlan是MAC in UDP的网络虚拟化技术,所以其报文封装是在原始以太网报文之前添加了一个UDP封装及VXLAN头封装

image.png

报文格式说明:

image.png

vxlan网络模型

image.png

  • VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点)

    VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,进行VXLAN报文的封装、解封装等处理。VTEP既可以部署在网络设备上(网络接入交换机),也可以部署在vSwitch上(服务器上的虚拟交换机)。

  • VNI(VXLAN Network Identifier,VXLAN 网络标识符)

    VNI是一种类似于VLAN ID的网络标识,用来标识VXLAN二层网络。一个VNI代表一个VXLAN段,不同VXLAN段的虚拟机不能直接二层相互通信。

  • VXLAN隧道

    两个VTEP之间建立的逻辑隧道,用于传输VXLAN报文。业务报文在进入VXLAN隧道式进行VXLAN、UDP、IP头封装,然后通过三层转发透明地将报文转发给远端VTEP,远端VTEP对报文进行解封装处理。

VXLAN报文转发过程

image.png

同网段的VM间相通简单介绍VXLAN网络中的报文转发过程。


  1. VM1发送目的地址为VM2的报文。

  2. VTEP1收到该报文后进行VXLAN封装,封装的外层目的IP为VTEP2。封装后的报文,根据外层MAC和IP信息,在IP网络中进行传输,直至到达对端VTEP2。

  3. VTEP2收到报文后,对报文进行解封装,得到VM1发送的原始报文,然后将其转发至VM2。




网络架构

在数据中心网络中,区分于传统的接入、汇聚、核心架构,只有所谓的spine(骨干)和leaf(叶子)架构

image.png




二、VXLAN基础实验

2.1配置VXLAN二层互通-无隧道方式

image.png

只有spine-1部署VXLAN,Leaf-1A和Leaf-1B两台交换机模拟PC,使得VXLAN像VLAN的工作一样实现二层互通

实验拓扑:

image.png

1、配置Leaf-1和Leaf-2的IP地址

<HUAWEI>system-view immediately                             #进入立即生效模式	
[HUAWEI]sysname Leaf-1A	
[Leaf-1]interface GE 1/0/5
[Leaf-1-GE1/0/5]
[Leaf-1-GE1/0/5]undo portswitch                             #配置接口为三层接口	
[Leaf-1-GE1/0/5]ip address 192.168.10.1 24                             #配置IP地址

leaf-1A

[HUAWEI]sysname Leaf-1B
[Leaf-1]interface GE 1/0/6
[Leaf-1-GE1/0/6]
[Leaf-1-GE1/0/6]undo portswitch                             #配置接口为三层接口	
[Leaf-1-GE1/0/6]ip address 192.168.10.2 24

Leaf-1B


2、配置spine-1的vxlan基本配置

[HUAWEI]sysname Spine-1	
[Spine-1]bridge-domain 10                                    #配置桥域,二层广播域	
[Spine-1-bd10]vxlan vni 5000                                 #配置vni 5000,映射到bd 10
Info: Please disable dynamic ARP learning when the controller is used to deliver
 ARP entries.
[Spine-1-bd10]q


3、配置Spine-1的业务接入点

[Spine-1]interface GE 1/0/5.1 mode l2	                                       #创建二层子接口,即GE1/05.1                 
[Spine-1-GE1/0/5.1]encapsulation do	
[Spine-1-GE1/0/5.1]encapsulation untag                                                #封装方式为untag
Warning: Exercise caution when configuring an untagged default sub-interface and
 ensure that no configurations exist on the main interface before you configure 
an untagged default sub-interface. Otherwise, it will produce unpredictable resu
lts.	
[Spine-1-GE1/0/5.1]bridge-domain 10                                                    #将二层子接口绑定到bd10二层广播域
[Spine-1-GE1/0/5.1]q	
[Spine-1]interface GE 1/0/6.1 mode l2	
[Spine-1-GE1/0/6.1]encapsulation untag 
Warning: Exercise caution when configuring an untagged default sub-interface and
 ensure that no configurations exist on the main interface before you configure 
an untagged default sub-interface. Otherwise, it will produce unpredictable resu
lts.
[Spine-1-GE1/0/6.1]bridge-domain 10
[Spine-1-GE1/0/6.1]q
[Spine-1]

4、验证配置结果

Leaf1A ping Leaf-1B

image.png

证明,leaf-1A和leaf-1B处于同一个bd10二层域,且vni相同

在leaf-1A的ge1/0/5抓包

image.png

可以看到是正常的ipv4 icmp报文

在spine-1上抓包,GE1/0/5

image.png


也是正常的icmp报文


在spine-1上查看mac地址表

image.png

可以看到在二层广播域br10中,二层子接口动态的学习到了leaf-1A和leaf-1B的mac地址