选择区域语言: EN CN HK

15-VXLAN配置指导

01-VXLAN配置

本章节下载  (945.11 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S12500/S12500X-AF/Configure/Operation_Manual/H3C_S12500X-AF_CG(R26xx)-6W102/15/201907/1217897_30005_0.htm

01-VXLAN配置

  录

1 VXLAN简介

1.1 VXLAN网络模型

1.2 VXLAN报文封装格式

1.3 VXLAN运行机制

1.3.2 识别报文所属的VXLAN

1.3.3 学习MAC地址

1.3.4 接入模式

1.3.5 转发单播流量

1.3.6 转发泛洪流量

1.4 ARP泛洪抑制

1.5 协议规范

2 配置VXLAN

2.1 VXLAN配置任务简介

2.2 配置VXLAN隧道工作模式

2.3 创建VSI和VXLAN

2.4 创建VXLAN隧道

2.5 关联VXLAN与VXLAN隧道

2.6 配置AC与VSI关联

2.7 管理本地和远端MAC地址

2.7.1 配置增删本地MAC地址时记录日志

2.7.2 添加静态远端MAC地址

2.7.3 关闭远端MAC地址自动学习功能

2.8 配置VXLAN组播路由泛洪方式

2.8.1 配置准备

2.8.2 配置PIM模式

2.8.3 配置IGMP主机模式

2.9 配置VSI泛洪抑制

2.10 配置AC间泛洪抑制

2.11 配置VXLAN报文的目的UDP端口号

2.12 配置VXLAN报文检查功能

2.13 配置ARP泛洪抑制

2.14 关闭VXLAN远端ARP自动学习功能

2.15 配置VXLAN流量统计

2.15.1 配置VSI的报文统计功能

2.15.2 配置AC的报文统计功能

2.16 配置VXLAN的硬件资源模式

2.17 检测VXLAN内远端虚拟机的连通性

2.18 VXLAN显示和维护

2.19 VXLAN典型配置举例

2.19.1 VXLAN头端复制配置举例

2.19.2 VXLAN核心复制配置举例

3 VXLAN IP网关

3.1 VXLAN IP网关简介

3.1.1 独立的VXLAN IP网关

3.1.2 集中式VXLAN IP网关

3.1.3 集中式VXLAN IP网关保护组

3.1.4 分布式VXLAN IP网关

3.2 VXLAN IP网关配置限制和指导

3.3 VXLAN IP网关配置准备

3.4 配置集中式VXLAN IP网关

3.5 配置集中式VXLAN IP网关保护组

3.5.1 配置限制和指导

3.5.2 VXLAN IP网关上的配置

3.5.3 接入层VTEP上的配置

3.6 配置分布式VXLAN IP网关

3.7 配置VSI虚接口

3.8 开启VSI虚接口的报文统计功能

3.9 VXLAN IP网关显示和维护

3.10 VXLAN IP网关典型配置举例

3.10.1 集中式VXLAN IP网关配置举例

3.10.2 集中式VXLAN IP网关保护组配置举例

3.10.3 分布式VXLAN IP网关连接IPv4网络配置举例

4 OVSDB-VTEP

4.1 简介

4.2 协议规范

4.3 OVSDB-VTEP配置任务简介

4.4 配置准备

4.5 与控制器建立OVSDB连接

4.5.1 与控制器建立主动TCP连接

4.5.2 与控制器建立被动TCP连接

4.6 开启OVSDB服务器

4.7 开启OVSDB VTEP服务

4.8 配置VXLAN隧道的全局源地址

4.9 指定用户侧的接入端口

4.10 开启组播隧道泛洪代理功能

4.11 OVSDB-VTEP典型配置举例

4.11.1 OVSDB-VTEP头端复制配置举例

4.11.2 OVSDB-VTEP泛洪代理配置举例

 


1 VXLAN简介

提示

VXLAN功能受设备的工作模式限制,在使用VXLAN功能前,请在系统视图下使用system-working-mode命令将设备设置为标准模式或高级模式,保存设备当前配置,然后重启设备。有关设备工作模式的详细介绍请参见“基础配置指导”中的“设备管理”。

 

VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。VXLAN主要应用于数据中心网络。

VXLAN具有如下特点:

·              支持大量的租户:使用24位的标识符,最多可支持2的24次方(16777216)个VXLAN,使支持的租户数目大规模增加,解决了传统二层网络VLAN资源不足的问题。

·              易于维护:基于IP网络组建大二层网络,使得网络部署和维护更加容易,并且可以充分地利用现有的IP网络技术,例如利用等价路由进行负载分担等;只有IP核心网络的边缘设备需要进行VXLAN处理,网络中间设备只需根据IP头转发报文,降低了网络部署的难度和费用。

目前,设备只支持基于IPv4网络的VXLAN技术,不支持基于IPv6网络的VXLAN技术。

1.1  VXLAN网络模型

VXLAN技术将已有的三层物理网络作为Underlay网络,在其上构建出虚拟的二层网络,即Overlay网络。Overlay网络通过封装技术、利用Underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。对于租户来说,Underlay网络是透明的,同一租户的不同站点就像工作在一个局域网中。

图1-1 VXLAN网络模型示意图

 

图1-1所示,VXLAN的典型网络模型中包括如下几部分:

·              VM(Virtual Machine,虚拟机):在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VXLAN。属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。VXLAN通过VXLAN ID来标识,VXLAN ID又称VNI(VXLAN Network Identifier,VXLAN网络标识符),其长度为24比特。

·              VTEP(VXLAN Tunnel End Point,VXLAN隧道端点):VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器。

·              VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装。

·              核心设备:IP核心网络中的设备(如图1-1中的P设备)。核心设备不参与VXLAN处理,仅需要根据封装后报文的目的IP地址对报文进行三层转发。

·              VSI(Virtual Switch Instance,虚拟交换实例):VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。VSI可以看做是VTEP上的一台基于VXLAN进行二层转发的虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VSI与VXLAN一一对应。

1.2  VXLAN报文封装格式

图1-2 VXLAN报文封装示意图

 

图1-2所示,VXLAN报文的封装格式为:在原始二层数据帧外添加8字节VXLAN头、8字节UDP头和20字节IP头。其中,UDP头的目的端口号为VXLAN UDP端口号(缺省为4789)。VXLAN头主要包括两部分:

·              标记位:“I”位为1时,表示VXLAN头中的VXLAN ID有效;为0,表示VXLAN ID无效。其他位保留未用,设置为0。

·              VXLAN ID:用来标识一个VXLAN网络,长度为24比特。

1.3  VXLAN运行机制

VXLAN运行机制可以概括为:

(1)      识别接收到的报文所属的VXLAN,以便将报文的源MAC地址学习到VXLAN对应的VSI,并在该VSI内转发该报文。

(2)      学习虚拟机的MAC地址。

(3)      根据学习到的MAC地址表项转发报文。

1.3.2  识别报文所属的VXLAN

1. 本地站点内接收到数据帧的识别

VTEP将连接本地站点的以太网服务实例(Service Instance)与VSI关联。VTEP从以太网服务实例接收到数据帧后,查找与其关联的VSI,VSI内创建的VXLAN即为该数据帧所属的VXLAN。

在VXLAN中,与VSI关联的以太网服务实例称为AC(Attachment Circuit,接入电路)。其中,以太网服务实例在二层以太网接口上创建,它定义了一系列匹配规则,用来匹配从该二层以太网接口上接收到的数据帧。

图1-3所示,VM 1属于VLAN 2,在VTEP上配置以太网服务实例1匹配VLAN 2的报文,将以太网服务实例1与VSI A绑定,并在VSI A内创建VXLAN 10,则VTEP接收到VM 1发送的数据帧后,可以判定该数据帧属于VXLAN 10。

图1-3 二层数据帧所属VXLAN识别

 

2. VXLAN隧道上接收报文的识别

对于从VXLAN隧道上接收到的VXLAN报文,VTEP根据报文中携带的VXLAN ID判断该报文所属的VXLAN。

1.3.3  学习MAC地址

MAC地址学习分为本地MAC地址学习和远端MAC地址学习两部分。

1. 本地MAC地址学习

是指VTEP对本地站点内虚拟机MAC地址的学习。VTEP接收到本地虚拟机发送的数据帧后,判断该数据帧所属的VSI,并将数据帧中的源MAC地址(本地虚拟机的MAC地址)添加到该VSI的MAC地址表中,该MAC地址对应的接口为接收到数据帧的接口。

VXLAN不支持静态配置本地MAC地址。

2. 远端MAC地址学习

是指VTEP对远端站点内虚拟机MAC地址的学习。远端MAC地址的学习方式有如下几种:

·              静态配置:手工指定远端MAC地址所属的VSI(VXLAN),及其对应的VXLAN隧道接口。

·              通过报文中的源MAC地址动态学习:VTEP从VXLAN隧道上接收到远端VTEP发送的VXLAN报文后,根据VXLAN ID判断报文所属的VXLAN,对报文进行解封装,还原二层数据帧,并将数据帧中的源MAC地址(远端虚拟机的MAC地址)添加到所属VXLAN对应VSI的MAC地址表中,该MAC地址对应的接口为VXLAN隧道接口。

静态配置的远端MAC地址表项优先级高于源MAC地址动态学习的表项。

1.3.4  接入模式

接入模式分为以下两种:

·              VLAN接入模式:从本地站点接收到的和发送给本地站点的以太网帧必须带有VLAN Tag。VTEP从本地站点接收到以太网帧后,删除该帧的所有VLAN Tag,再转发该数据帧;VTEP发送以太网帧到本地站点时,为其添加本地站点的VLAN Tag。采用该模式时,VTEP不会传递VLAN Tag信息,不同站点可以独立地规划自己的VLAN,不同站点的不同VLAN之间可以互通。

·              Ethernet接入模式:从本地站点接收到的和发送给本地站点的以太网帧可以携带VLAN Tag,也可以不携带VLAN Tag。VTEP从本地站点接收到以太网帧后,保持该帧的VLAN Tag信息不变,转发该数据帧;VTEP发送以太网帧到本地站点时,不会为其添加VLAN Tag。采用该模式时,VTEP会在不同站点间传递VLAN Tag信息,不同站点的VLAN需要统一规划,否则无法互通。

缺省情况下,接入模式为VLAN模式。下文对于流量转发过程的介绍均以VLAN模式为例。

1.3.5  转发单播流量

完成本地和远端MAC地址学习后,VTEP在VXLAN内转发单播流量的过程如下所述。

1. 站点内流量

对于站点内流量,VTEP判断出报文所属的VSI后,根据目的MAC地址查找该VSI的MAC地址表,从相应的本地接口转发给目的VM。

图1-4 站点内单播流量转发

 

图1-4所示,VM 1(MAC地址为MAC 1)发送以太网帧到VM 4(MAC地址为MAC 4)时,VTEP 1从接口HundredGigE1/0/1收到该以太网帧后,判断该数据帧属于VSI A(VXLAN 10),查找VSI A的MAC地址表,得到MAC 4的出接口为HundredGigE1/0/2,所在VLAN为VLAN 10,则将以太网帧从接口HundredGigE1/0/2的VLAN 10内发送给VM 4。

2. 站点间流量

图1-5 站点间单播流量转发

 

图1-5所示,以VM 1(MAC地址为MAC 1)发送以太网帧给VM 7(MAC地址为MAC 7)为例,站点间单播流量的转发过程为:

(2)      VM 1发送以太网数据帧给VM 7,数据帧的源MAC地址为MAC 1,目的MAC为MAC 7,VLAN Tag为2。

(3)      VTEP 1从接口HundredGigE1/0/1(所在VLAN为VLAN 2)收到该数据帧后,判断该数据帧属于VSI A(VXLAN 10),查找VSI A的MAC地址表,得到MAC 7的出端口为Tunnel1。

(4)      VTEP 1为数据帧封装VXLAN头、UDP头和IP头后,将封装好的报文通过VXLAN隧道Tunnel1、经由P设备发送给VTEP 2。

(5)      VTEP 2接收到报文后,根据报文中的VXLAN ID判断该报文属于VXLAN 10,并剥离VXLAN头、UDP头和IP头,还原出原始的数据帧。

(6)      VTEP 2查找与VXLAN 10对应的VSI A的MAC地址表,得到MAC 7的出端口为HundredGigE1/0/1(所在VLAN为VLAN 20)。

(7)      VTEP 2从接口HundredGigE1/0/1的VLAN 20内将数据帧发送给VM 7。

1.3.6  转发泛洪流量

泛洪流量包括组播、广播和未知单播流量。根据复制方式的不同,流量泛洪方式分为单播路由方式(头端复制)、组播路由方式(核心复制)和泛洪代理方式(服务器复制)三种。

1. 单播路由方式(头端复制)

在单播路由方式下,VTEP负责复制报文,采用单播方式将复制后的报文通过本地接口发送给本地站点,并通过VXLAN隧道发送给VXLAN内的所有远端VTEP。

图1-6 单播路由方式转发示意图

 

 

图1-6所示,单播路由方式的泛洪流量转发过程为:

(1)      VTEP 1接收到本地虚拟机发送的组播、广播和未知单播数据帧后,判断数据帧所属的VXLAN,通过该VXLAN内除接收接口外的所有本地接口和VXLAN隧道转发该数据帧。通过VXLAN隧道转发数据帧时,需要为其封装VXLAN头、UDP头和IP头,将泛洪流量封装在多个单播报文中,发送到VXLAN内的所有远端VTEP。

(2)      远端VTEP(VTEP 2和VTEP 3)接收到VXLAN报文后,解封装报文,将原始的数据帧在本地站点的指定VXLAN内泛洪。为了避免环路,远端VTEP从VXLAN隧道上接收到报文后,不会再将其泛洪到其他的VXLAN隧道。

2. 组播路由方式(核心复制)

数据中心网络中需要通过IP核心网络进行二层互联的站点较多时,采用组播路由方式可以节省泛洪流量对核心网络带宽资源的占用。

在组播路由方式下,同一个VXLAN内的所有VTEP都加入同一个组播组,利用组播路由协议(如PIM)在IP核心网上为该组播组建立组播转发表项。VTEP接收到泛洪流量后,不仅在本地站点内泛洪,还会为其封装组播目的IP地址,封装后的报文根据已建立的组播转发表项转发到远端VTEP。

图1-7 组播路由方式转发示意图

 

 

图1-7所示,组播路由方式的泛洪流量转发过程为:

(1)      VTEP 1接收到本地虚拟机发送的组播、广播和未知单播数据帧后,判断数据帧所属的VXLAN,不仅通过该VXLAN内除接收接口外的所有本地接口将数据帧转发到本地站点,还会为其封装VXLAN头、UDP头和IP头(目的IP地址为组播地址)通过组播转发表项将其发送到远端VTEP。

(2)      在IP核心网内,P设备根据已经建立的组播转发表项复制并转发该组播报文。

(3)      远端VTEP(VTEP 2和VTEP 3)接收到VXLAN报文后,解封装报文,将原始的数据帧在本地站点的指定VXLAN内泛洪。为了避免环路,远端VTEP从VXLAN隧道上接收到报文后,不会再将其泛洪到其他的VXLAN隧道。

3. 泛洪代理方式(服务器复制)

数据中心网络中需要通过IP核心网络进行二层互联的站点较多时,采用泛洪代理方式可以在没有组播协议参与的情况下,节省泛洪流量对核心网络带宽资源的占用。

在泛洪代理方式下,同一个VXLAN内的所有VTEP都通过手工方式与代理服务器建立隧道。VTEP接收到泛洪流量后,不仅在本地站点内泛洪,还会将其发送到代理服务器,由代理服务器转发到其他远端VTEP。

图1-8 泛洪代理方式转发示意图

 

 

图1-8所示,泛洪代理方式的流量转发过程为:

(1)      VTEP 1接收到本地虚拟机发送的组播、广播和未知单播数据帧后,判断数据帧所属的VXLAN,不仅通过该VXLAN内除接收接口外的所有本地接口将数据帧转发到本地站点,还会为其封装VXLAN头、UDP头和IP头(目的IP地址为泛洪代理服务器地址)通过指定的隧道将其发送到泛洪代理服务器。

(2)      泛洪代理服务器收到报文后,修改报文的IP头,源地址为服务器本身,目的IP地址为其余VTEP地址,通过不同的隧道发送到远端VTEP。

(3)      远端VTEP(VTEP 2和VTEP 3)接收到VXLAN报文后,解封装报文,将原始的数据帧在本地站点的指定VXLAN内泛洪。为了避免环路,远端VTEP从VXLAN隧道上接收到报文后,不会再将其泛洪到其他的VXLAN隧道。

目前泛洪代理方式主要用于SDN网络,使用虚拟服务器作为泛洪代理服务器。采用泛洪代理方式时,需要在VTEP上进行如下配置:

·              使用vxlan tunnel mac-learning disable命令关闭远端MAC地址自动学习功能,采用SDN控制器下发的MAC地址表项进行流量转发。

·              在网络侧接口上使用undo mac-address static source-check enable命令关闭报文入接口与静态MAC地址表项匹配检查功能。当VTEP设备为IRF设备时,成员设备间互连的IRF端口上也需要关闭报文入接口与静态MAC地址表项匹配检查功能。

1.4  ARP泛洪抑制

为了避免广播发送的ARP请求报文占用核心网络带宽,VTEP从本地站点或VXLAN隧道接收到ARP请求和ARP应答报文后,根据该报文在本地建立ARP泛洪抑制表项。后续当VTEP收到本站点内虚拟机请求其它虚拟机MAC地址的ARP请求时,优先根据ARP泛洪抑制表项进行代答。如果没有对应的表项,则将ARP请求泛洪到核心网。ARP泛洪抑制功能可以大大减少ARP泛洪的次数。

图1-9 ARP泛洪抑制示意图

 

图1-9所示,ARP泛洪抑制的处理过程如下:

(1)      虚拟机VM 1发送ARP请求,获取VM 7的MAC地址。

(2)      VTEP 1根据接收到的ARP请求,建立VM 1的ARP泛洪抑制表项,并在VXLAN内泛洪该ARP请求(图1-9以单播路由泛洪方式为例)。

(3)      远端VTEP(VTEP 2和VTEP 3)解封装VXLAN报文,获取原始的ARP请求报文后,建立VM 1的ARP泛洪抑制表项,并在本地站点的指定VXLAN内泛洪该ARP请求。

(4)      VM 7接收到ARP请求后,回复ARP应答报文。

(5)      VTEP 2接收到ARP应答后,建立VM 7的ARP泛洪抑制表项,并通过VXLAN隧道将ARP应答发送给VTEP 1。

(6)      VTEP 1解封装VXLAN报文,获取原始的ARP应答,并根据该应答建立VM 7的ARP泛洪抑制表项,之后将ARP应答报文发送给VM 1。

(7)      在VTEP 1上建立ARP泛洪抑制表项后,虚拟机VM 4发送ARP请求,获取VM 1或VM 7的MAC地址。

(8)      VTEP 1接收到ARP请求后,建立VM 4的ARP泛洪抑制表项,并查找本地ARP泛洪抑制表项,根据已有的表项回复ARP应答报文,不会对ARP请求进行泛洪。

(9)      在VTEP 3上建立ARP泛洪抑制表项后,虚拟机VM 10发送ARP请求,获取VM 1的MAC地址。

(10)   VTEP 3接收到ARP请求后,建立VM 10的ARP泛洪抑制表项,并查找本地ARP泛洪抑制表项,根据已有的表项回复ARP应答报文,不会对ARP请求进行泛洪。

1.5  协议规范

与VXLAN相关的协议规范有:

·              RFC 7348:Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks

 


2 配置VXLAN

2.1  VXLAN配置任务简介

在VXLAN组网中,IP核心网络中的设备只需要配置路由协议,确保VTEP之间路由可达。VXLAN相关配置都在VTEP上进行。

表2-1 VXLAN配置任务简介

配置任务

说明

详细配置

配置VXLAN隧道工作模式

必选

2.2 

创建VSI和VXLAN

必选

2.3 

创建VXLAN隧道

必选

2.4 

关联VXLAN与VXLAN隧道

必选

2.5 

配置AC与VSI关联

必选

2.6 

管理本地和远端MAC地址

可选

2.7 

配置VXLAN组播路由泛洪方式

可选

2.8 

配置VSI泛洪抑制

可选

2.9 

配置AC间泛洪抑制

可选

2.10 

配置VXLAN报文的目的UDP端口号

可选

2.11 

配置VXLAN报文检查功能

可选

2.12 

配置ARP泛洪抑制

可选

2.13 

关闭VXLAN远端ARP自动学习功能

可选

2.14 

配置VXLAN流量统计

可选

2.15 

配置VXLAN的硬件资源模式

可选

2.16 

检测VXLAN内远端虚拟机的连通性

可选

2.17 

 

2.2  配置VXLAN隧道工作模式

当设备作为VXLAN IP网关时,需要配置VXLAN隧道工作在三层转发模式。有关VXLAN IP网关的详细介绍请参见“3 VXLAN IP网关”。当设备作为VTEP时, VXLAN隧道工作在二层转发模式、三层转发模式均可。

如果VXLAN隧道工作在三层转发模式,则设备将VXLAN封装后的报文转发给下一跳时是否携带VLAN tag,由本命令中的taggeduntagged参数决定,而不是由报文的出接口类型决定。请根据实际情况选择taggeduntagged参数:

·              设备通过Access端口、Trunk或Hybrid端口的PVID连接下一跳时,需要指定untagged参数。

·              设备通过Trunk或Hybrid端口的非PVID连接下一跳时,需要指定tagged参数。

执行本配置时,需要注意:

·              重复执行vxlan ip-forwarding命令切换二层、三层转发模式前,必须先删除设备上的所有VSI、VSI虚接口和VXLAN隧道,否则将配置失败。因此,配置VXLAN前,用户需要先做好VXLAN网络规划,确定设备使用的VXLAN隧道工作模式,完成本配置后,再进行其他配置。

·              重复执行vxlan ip-forwarding命令修改taggeduntagged参数前,必须先删除设备上所有的VXLAN隧道。

表2-2 配置VXLAN隧道工作模式

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN隧道工作在二层转发模式

undo vxlan ip-forwarding

二者选其一

缺省情况下,VXLAN隧道工作在三层转发模式

执行vxlan ip-forwarding命令时如果没有指定taggeduntagged参数,则缺省为untagged,即转发VXLAN封装后的报文时,不携带VLAN tag

配置VXLAN隧道工作在三层转发模式

vxlan ip-forwarding [ tagged | untagged ]

 

2.3  创建VSI和VXLAN

表2-3 创建VSI和VXLAN

操作

命令

说明

进入系统视图

system-view

-

开启L2VPN功能

l2vpn enable

缺省情况下,L2VPN功能处于关闭状态

创建VSI,并进入VSI视图

vsi vsi-name

缺省情况下,不存在VSI

(可选)配置VSI的描述信息

description text

缺省情况下,未配置VSI的描述信息

开启VSI

undo shutdown

缺省情况下,VSI处于开启状态

创建VXLAN,并进入VXLAN视图

vxlan vxlan-id

缺省情况下,不存在VXLAN

在一个VSI下只能创建一个VXLAN

不同VSI下创建的VXLAN,其VXLAN ID不能相同

 

2.4  创建VXLAN隧道

手工创建VXLAN隧道时,隧道的源端地址和目的端地址需要分别手工指定为本地和远端VTEP的接口地址。

在同一台设备上,VXLAN隧道模式的不同Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。

请不要将VXLAN隧道出接口和AC口配置为同一个接口,以避免流量转发失败。

如果设备上配置了通过EVPN自动建立并关联VXLAN隧道,则隧道目的地址相同的EVPN自动创建隧道和手工创建隧道不能关联同一个VXLAN。EVPN的详细介绍请参见“EVPN配置指导”。

关于隧道的详细介绍及Tunnel接口下的更多配置命令,请参见“三层技术-IP业务配置指导”中的“隧道”。关于interface tunnelsourcedestination命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”。

表2-4 手工创建VXLAN隧道

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN隧道的全局源地址

tunnel global source-address ip-address

缺省情况下,未配置VXLAN隧道的全局源地址

如果隧道下未配置源地址或源接口,则隧道会使用全局源地址作为隧道的源地址

创建模式为VXLAN隧道的Tunnel接口,并进入Tunnel接口视图

interface tunnel tunnel-number mode vxlan

缺省情况下,不存在Tunnel接口

在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败

通过本配置创建的前2048条VXLAN隧道支持ECMP功能

配置隧道的源端地址或源接口

source { ipv4-address | interface-type interface-number }

缺省情况下,未设置VXLAN隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后VXLAN报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后VXLAN报文的源IP地址

采用VXLAN组播路由泛洪方式时,VXLAN隧道的源接口不能是Loopback接口、源端地址不能是Loopback接口的地址

配置隧道的目的端地址

destination ipv4-address

缺省情况下,未指定隧道的目的端地址

隧道的目的端地址是对端设备上接口的IP地址,该地址将作为封装后VXLAN报文的目的地址

(可选)开启隧道的BFD检测功能

tunnel bfd enable destination-mac mac-address

缺省情况下,隧道的BFD检测功能处于关闭状态

执行本命令的同时,需要在系统视图下执行reserved vxlan命令配置保留VXLAN。否则,BFD会话无法up

(可选)退回系统视图

quit

-

(可选)配置保留VXLAN

reserved vxlan vxlan-id

缺省情况下,未指定保留VXLAN

只能在系统视图下配置一个全局保留VXLAN,该VXLAN不能与VSI下创建的VXLAN相同

 

2.5  关联VXLAN与VXLAN隧道

一个VXLAN可以关联多条VXLAN隧道。一条VXLAN隧道可以关联多个VXLAN,这些VXLAN共用该VXLAN隧道,VTEP根据VXLAN报文中的VXLAN ID来识别隧道传递的报文所属的VXLAN。VTEP接收到某个VXLAN的泛洪流量后,如果采用单播路由泛洪方式,则VTEP将在与该VXLAN关联的所有VXLAN隧道上发送该流量,以便将流量转发给所有的远端VTEP;如果采用泛洪代理方式,则VTEP通过与该VXLAN关联、通过flooding-proxy参数开启了泛洪代理功能的VXLAN隧道将泛洪流量发送给泛洪代理服务器。

表2-5 手工关联VXLAN与VXLAN隧道

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

进入VXLAN视图

vxlan vxlan-id

-

配置VXLAN与VXLAN隧道关联

tunnel { tunnel-number [ flooding-proxy ] | all }

缺省情况下,VXLAN未关联VXLAN隧道

VTEP必须与相同VXLAN内的其它VTEP建立VXLAN隧道,并将该隧道与VXLAN关联

如果指定了flooding-proxy参数,则VXLAN内的广播、组播和未知单播流量将通过该隧道发送到泛洪代理服务器,由代理服务器进行复制并转发到其他远端VTEP

 

2.6  配置AC与VSI关联

将以太网服务实例与VSI关联后,从该接口接收到的、符合以太网服务实例报文匹配规则的报文,将通过查找关联VSI的MAC地址表进行转发。以太网服务实例提供了多种报文匹配规则(包括接口接收到的所有报文、所有携带VLAN Tag的报文和所有不携带VLAN Tag的报文等),为报文关联VSI提供了更加灵活的方式。

表2-6 配置以太网服务实例与VSI关联

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网接口视图或二层聚合接口视图

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

创建以太网服务实例,并进入以太网服务实例视图

service-instance instance-id

缺省情况下,不存在以太网服务实例

配置以太网服务实例的报文匹配规则

encapsulation s-vid vlan-id-list [ c-vid vlan-id-list | only-tagged ]

缺省情况下,未配置报文匹配规则

vlan-id-list参数仅支持在Ethernet接入模式下使用

encapsulation { default | untagged }

(可选)配置入方向报文的处理规则

rewrite inbound tag { nest { c-vid vlan-id | s-vid vlan-id [ c-vid vlan-id ] } | remark { { 1-to-1 | 2-to-1 } { c-vid vlan-id | s-vid vlan-id } | { 1-to-2 | 2-to-2 } s-vid vlan-id c-vid vlan-id } | strip { c-vid | s-vid [ c-vid ] } } [ symmetric ]

缺省情况下,不对入方向报文进行处理

(可选)配置出方向报文的处理规则

rewrite outbound tag { nest { c-vid vlan-id | s-vid vlan-id [ c-vid vlan-id ] } | remark { { 1-to-1 | 2-to-1 } { c-vid vlan-id | s-vid vlan-id } | { 1-to-2 | 2-to-2 } s-vid vlan-id c-vid vlan-id } | strip { c-vid | s-vid [ c-vid ] } }

缺省情况下,不对出方向报文进行处理

将以太网服务实例与VSI关联

xconnect vsi vsi-name [ access-mode { ethernet | vlan } ] [ track track-entry-number&<1-3> ]

缺省情况下,以太网服务实例未关联VSI

 

2.7  管理本地和远端MAC地址

本地MAC地址只能动态学习,不能静态配置。在动态添加、删除本地MAC地址时,可以记录日志信息。

远端MAC地址表项可以静态添加,也可以根据接收到的VXLAN报文内封装的源MAC地址自动学习。

2.7.1  配置增删本地MAC地址时记录日志

执行本配置后,VXLAN增加或删除本地MAC地址时,将产生日志信息。生成的日志信息将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。

表2-7 配置增删本地MAC地址时记录日志

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN增删本地MAC地址时记录日志

vxlan local-mac report

缺省情况下,VXLAN增删本地MAC地址时不会记录日志信息

 

2.7.2  添加静态远端MAC地址

表2-8 添加静态远端MAC地址

操作

命令

说明

进入系统视图

system-view

-

添加静态远端MAC地址表项

mac-address static mac-address interface tunnel tunnel-number vsi vsi-name

缺省情况下,不存在静态的远端MAC地址表项

interface tunnel interface-number参数指定的隧道接口必须与vsi vsi-name参数指定的VSI对应的VXLAN关联,且该VXLAN必须已经创建,否则配置将失败

 

说明

请不要为EVPN动态创建的隧道配置静态远端MAC地址表项,避免出现如下问题:如果公网侧接口down,设备将删除已创建的隧道,同时删除为该隧道配置的静态远端MAC地址表项,公网侧接口重新up后会自动重新建立隧道,但是无法恢复静态远端MAC地址表项;如果执行了配置回滚操作,设备会重新创建隧道,新创建的隧道编号可能发生变化,造成配置回滚失败。有关EVPN的介绍请参见“EVPN配置指导”。

 

2.7.3  关闭远端MAC地址自动学习功能

如果网络中存在攻击,为了避免学习到错误的远端MAC地址,可以手工关闭远端MAC地址自动学习功能,手动添加静态的远端MAC地址。

表2-9 关闭远端MAC地址自动学习功能

操作

命令

说明

进入系统视图

system-view

-

关闭远端MAC地址自动学习功能

vxlan tunnel mac-learning disable

缺省情况下,远端MAC地址自动学习功能处于开启状态

 

2.8  配置VXLAN组播路由泛洪方式

组播路由泛洪方式支持如下两种实现模式:

·              PIM模式:在VTEP和核心设备上运行PIM协议,以建立组播转发表项。采用该模式时,可以使用Loopback接口地址作为组播报文的源IP地址。当VTEP存在多个网络侧接口时,PIM协议可以动态选择报文的出接口。

·              IGMP主机模式:在VTEP上开启IGMP协议的主机功能、在连接VTEP的核心设备上配置IGMP、在所有核心设备上运行PIM协议,以建立组播转发表项。采用该模式时,必须使用VTEP上网络侧接口的IP地址作为组播报文的源IP地址,并在该接口上开启IGMP协议的主机功能。当VTEP存在多个网络侧接口时,IGMP主机模式只能采用组播报文的源IP地址所在的接口作为报文的出接口。

同一VXLAN网络中的不同VTEP可以采用不同的实现模式。

2.8.1  配置准备

·              在VTEP和核心设备上使能IP组播路由功能。

·              在核心设备上配置组播路由协议。由于VTEP同时作为组播源和组播接收者,因此推荐使用双向PIM作为组播路由协议。

·              VXLAN网络中存在采用IGMP主机模式的VTEP时,需要在连接该VTEP的核心设备上配置IGMP。

2.8.2  配置PIM模式

表2-10 配置PIM模式

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

进入VXLAN视图

vxlan vxlan-id

-

配置VXLAN泛洪的组播地址和组播报文的源IP地址

group group-address source source-address

缺省情况下,未指定VXLAN泛洪的组播地址和组播报文的源IP地址,VXLAN采用单播路由方式泛洪

执行本命令后,VTEP将加入指定的组播组。同一VXLAN的所有VTEP都要加入相同的组播组

可以使用Loopback接口地址作为组播报文的源IP地址

为确保组播报文转发正常,VXLAN组播报文的源IP地址(source-address)需要指定为一个已创建且处于up状态的VXLAN隧道的源端地址

进入与核心设备相连接口的接口视图

interface interface-type interface-number

-

在接口上使能PIM协议

pim sm

二者选其一

缺省情况下,接口上PIM协议处于关闭状态

pim dm

 

2.8.3  配置IGMP主机模式

表2-11 配置IGMP主机模式

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

进入VXLAN视图

vxlan vxlan-id

-

配置VXLAN泛洪的组播地址和组播报文的源IP地址

group group-address source source-address

缺省情况下,未指定VXLAN泛洪的组播地址和组播报文的源IP地址,VXLAN采用单播路由方式泛洪

执行本命令后,VTEP将加入指定的组播组。同一VXLAN的所有VTEP都要加入相同的组播组

进入与核心设备相连接口的接口视图

interface interface-type interface-number

-

在接口上开启IGMP协议的主机功能

igmp host enable

缺省情况下,接口上IGMP协议的主机功能处于关闭状态

执行本命令后,当前接口将作为IGMP主机,即从该接口收到IGMP查询报文后,通过该接口发送组播组的报告报文,以便接收该组播组的报文

只有通过multicast routing命令使能IP组播路由后,本命令才会生效

 

2.9  配置VSI泛洪抑制

缺省情况下,VTEP从本地站点内接收到目的MAC地址为广播、未知单播和未知组播的数据帧后,会在该VXLAN内除接收接口外的所有本地接口和VXLAN隧道上泛洪该数据帧,将该数据帧发送给VXLAN内的所有站点。如果用户希望把某类数据帧限制在本地站点内,不通过VXLAN隧道将其转发到远端站点,则可以通过本命令手工禁止该类数据帧向远端站点泛洪。

禁止泛洪功能后,为了将某些单播或组播MAC地址的数据帧泛洪到远端站点以保证某些业务的流量在站点间互通,可以配置选择性泛洪的MAC地址,当数据帧的目的MAC地址匹配该MAC地址时,该数据帧可以泛洪到远端站点。

表2-12 配置VSI泛洪抑制

操作

命令

说明

 

进入系统视图

system-view

-

 

进入VSI视图

vsi vsi-name

-

关闭VSI的泛洪功能

flooding disable { all | { broadcast | unknown-multicast | unknown-unicast } * }

缺省情况下,VSI泛洪功能处于开启状态

unknown-multicastunknown-unicast参数必须同时指定

 

(可选)配置VSI选择性泛洪的MAC地址

selective-flooding mac-address mac-address

缺省情况下,不存在VSI选择性泛洪MAC地址

如果用户只希望某些目的MAC地址的报文可以泛洪到其它站点,可以先通过flooding disable命令关闭泛洪功能,再通过本命令配置选择性泛洪的MAC地址

 

 

2.10  配置AC间泛洪抑制

缺省情况下,AC接收到泛洪报文后,会在属于同一个VSI的其他所有本地AC上泛洪该报文。通过本命令,可以禁止在AC之间泛洪流量,以免引起广播风暴。

设备可以通过以下两种方式抑制AC之间的泛洪流量:

·              所有端口隔离模式(all-port):AC接收到的泛洪报文在不同接口的以太网服务实例、同一接口的不同以太网服务实例上均不允许泛洪。

·              源端口隔离模式(source-port):AC接收到的泛洪报文不能在同一个接口的不同以太网服务实例上泛洪,可以在不同接口的以太网服务实例上泛洪。

表2-13 配置AC间泛洪抑制

操作

命令

说明

 

进入系统视图

system-view

-

 

进入二层以太网接口视图或二层聚合接口视图

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

进入以太网服务实例视图

service-instance instance-id

-

配置在AC间隔离泛洪报文

flooding disable { all-port | source-port }

缺省情况下,允许在AC之间泛洪报文

 

 

2.11  配置VXLAN报文的目的UDP端口号

属于同一个VXLAN的VTEP设备上需要配置相同的UDP端口号。

表2-14 配置VXLAN报文的目的UDP端口号

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN报文的目的UDP端口号

vxlan udp-port port-number

缺省情况下,VXLAN报文的目的UDP端口号为4789

 

2.12  配置VXLAN报文检查功能

通过本配置可以实现对接收到的VXLAN报文的UDP校验和、内层封装的以太网数据帧是否携带VLAN Tag进行检查:

·              UDP校验和检查:VTEP接收到VXLAN报文后,检查该报文的UDP校验和是否为0。若UDP校验和为0,则接收该报文;若UDP校验和不为0,则检查UDP检验和是否正确,正确则接收该报文;否则,丢弃该报文。

·              VLAN Tag检查:VTEP接收到VXLAN报文并对其解封装后,若内层以太网数据帧带有VLAN Tag,则丢弃该VXLAN报文。

需要注意的是:远端VTEP上通过xconnect vsi命令的access-mode参数配置接入模式为ethernet时,VXLAN报文可能携带VLAN Tag。这种情况下建议不要在本端VTEP上执行vxlan invalid-vlan-tag discard命令,以免错误地丢弃报文。

表2-15 配置VXLAN报文检查功能

操作

命令

说明

进入系统视图

system-view

-

配置丢弃UDP校验和检查失败的VXLAN报文

vxlan invalid-udp-checksum discard

缺省情况下,不会检查VXLAN报文的UDP校验和

配置丢弃内层数据帧含有VLAN Tag的VXLAN报文

vxlan invalid-vlan-tag discard

缺省情况下,不会检查VXLAN报文内层封装的以太网数据帧是否携带VLAN Tag

 

2.13  配置ARP泛洪抑制

如果同时执行flooding disable命令关闭了VSI的泛洪功能,则建议通过mac-address timer命令配置动态MAC地址的老化时间大于25分钟(ARP泛洪抑制表项的老化时间),以免MAC地址在ARP泛洪抑制表项老化之前老化,产生黑洞MAC地址。

如果配置了vxlan tunnel arp-learning disable命令,则设备从VXLAN隧道上接收到ARP请求报文后,不会采用匹配的ARP泛洪抑制表项对其进行应答。

表2-16 配置ARP泛洪抑制

操作

命令

说明

 

进入系统视图

system-view

-

 

进入VSI视图

vsi vsi-name

-

开启ARP泛洪抑制功能

arp suppression enable

缺省情况下,ARP泛洪抑制功能处于关闭状态

 

 

2.14  关闭VXLAN远端ARP自动学习功能

缺省情况下,设备从VXLAN隧道接收到报文后可以自动学习远端虚拟机的ARP信息,即远端ARP信息。在SDN控制器组网下,当控制器和设备间进行表项同步时,可以通过vxlan tunnel arp-learning disable命令暂时关闭远端ARP自动学习功能,以节省占用的设备资源。同步完成后,再执行undo vxlan tunnel arp-learning disable命令开启远端ARP自动学习功能。

建议用户只在控制器和设备间同步表项的情况下执行本配置。

表2-17 关闭远端ARP自动学习功能

操作

命令

说明

进入系统视图

system-view

-

关闭远端ARP自动学习功能

vxlan tunnel arp-learning disable

缺省情况下,远端ARP自动学习功能处于开启状态

 

2.15  配置VXLAN流量统计

2.15.1  配置VSI的报文统计功能

本配置用来开启VSI的报文统计功能,用户可以使用display l2vpn vsi verbose命令查看VSI的报文统计信息,使用reset l2vpn statistics vsi命令清除VSI的报文统计信息。

表2-18 配置VSI的报文统计功能

操作

命令

说明

进入系统视图

system-view

-

配置报文的统计模式为VSI模式

statistic mode vsi

缺省情况下,报文的统计模式为VSI模式

多次执行statistic mode queue命令、statistic mode ac命令和statistic mode vsi命令,最后一次执行的命令生效

进入VXLAN所在VSI视图

vsi vsi-name

-

开启VSI的报文统计功能

statistics enable

缺省情况下,VSI的报文统计功能处于关闭状态

 

2.15.2  配置AC的报文统计功能

指定本配置后,用户可以使用display l2vpn service-instance verbose命令查看以太网服务实例的报文统计信息,使用reset l2vpn statistics ac命令清除以太网服务实例的报文统计信息。

只有为以太网服务实例配置了报文匹配方式并绑定了VSI实例,报文统计功能才会生效。如果在报文统计过程中修改报文匹配方式或绑定的VSI实例,则报文统计重新开始。

表2-19 配置以太网服务实例的报文统计功能

操作

命令

说明

进入系统视图

system-view

-

配置报文的统计模式为AC模式

statistic mode ac

缺省情况下,报文的统计模式为VSI模式

多次执行statistic mode queue命令、statistic mode ac命令和statistic mode vsi命令,最后一次执行的命令生效

statistic mode queue命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”

进入二层以太网接口视图或二层聚合接口视图

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

进入以太网服务实例视图

service-instance instance-id

-

开启以太网服务实例的报文统计功能

statistics enable

缺省情况下,以太网服务实例的报文统计功能处于关闭状态

 

2.16  配置VXLAN的硬件资源模式

建立VXLAN隧道、生成MAC地址表项都会占用设备的硬件资源。设备上的硬件资源有限,通过本配置,可以指定硬件资源的分配模式:

·              MAC地址模式:允许建立的VXLAN隧道数目较少;允许生成的MAC地址表项数目较多。

·              Normal模式:允许建立的VXLAN隧道数目较多;允许生成的MAC地址表项数目较少。在该模式下,VXLAN隧道可以作为网段路由的出接口。

表2-20 配置VXLAN的硬件资源模式

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN的硬件资源模式

hardware-resource vxlan { mac | normal }

缺省情况下,VXLAN的硬件资源模式为Normal模式

 

2.17  检测VXLAN内远端虚拟机的连通性

执行本配置后,设备将模拟本端虚拟机向远端虚拟机发送ICMP回显请求报文,该报文封装在二层数据帧中,并在指定的VXLAN内发送。本端设备根据是否收到ICMP回显应答报文、收到ICMP回显应答报文的时间,判断在该VXLAN内指定远端虚拟机是否可达。

操作

命令

说明

检测VXLAN内远端虚拟机的连通性

emulate-ping vxlan [ -c count | -m interval | -s packet-size | -t time-out ] * vxlan-id vxlan-id source-mac mac-address destination-mac mac-address

本命令可在任意视图下执行

 

2.18  VXLAN显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后VXLAN的运行情况,通过查看显示信息验证配置的效果。

在用户视图下,用户可以执行reset命令来清除VXLAN的相关信息。

表2-21 VXLAN显示和维护

操作

命令

显示VSI的ARP泛洪抑制表项信息(独立运行模式)

display arp suppression vsi [ name vsi-name ] [ slot slot-number ] [ count ]

显示VSI的ARP泛洪抑制表项信息(IRF模式)

display arp suppression vsi [ name vsi-name ] [ chassis chassis-number slot slot-number ] [ count ]

显示VSI的MAC地址表信息

display l2vpn mac-address [ vsi vsi-name ] [ dynamic ] [ count ]

显示以太网服务实例的信息

display l2vpn service-instance [ interface interface-type interface-number [ service-instance instance-id ] ] [ verbose ]

显示VSI的信息

display l2vpn vsi [ name vsi-name ] [ verbose ]

显示IGMP执行主机行为的所有组播组信息

display igmp host group [ group-address | interface interface-type interface-number ] [ verbose ]

显示Tunnel接口信息

display interface [ tunnel [ number ] ] [ brief [ description | down ] ]

显示VXLAN的硬件资源模式

display hardware-resource [ vxlan ]

显示设备当前生效的报文统计模式

display statistic mode

显示VXLAN关联的VXLAN隧道信息

display vxlan tunnel [ vxlan-id vxlan-id ]

清除VSI的ARP泛洪抑制表项

reset arp suppression vsi [ name vsi-name ]

清除VSI动态学习的MAC地址表项

reset l2vpn mac-address [ vsi vsi-name ]

清除VSI的报文统计信息

reset l2vpn statistics vsi [ name vsi-name ]

清除AC的报文统计信息

reset l2vpn statistics ac [ interface interface-type interface-number service-instance instance-id ]

 

说明

display interface tunnel命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”。

 

2.19  VXLAN典型配置举例

2.19.1  VXLAN头端复制配置举例

1. 组网需求

Switch A、Switch B、Switch C为与服务器连接的VTEP设备。虚拟机VM 1、VM 2和VM 3同属于VXLAN 10。通过VXLAN实现不同站点间的二层互联,确保虚拟机在站点之间进行迁移时用户的访问流量不会中断。

具体需求为:

·              不同VTEP之间手工建立VXLAN隧道。

·              手工关联VXLAN和VXLAN隧道。

·              通过源MAC地址动态学习远端MAC地址表项。

·              站点之间的泛洪流量采用头端复制的方式转发。

2. 组网图

图2-1 VXLAN头端复制组网图

 

3. 配置步骤

(1)      配置IP地址和单播路由协议

请按照图2-1配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。

(2)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[SwitchA] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

# 在Switch A和Switch B之间建立VXLAN隧道:

·              创建模式为VXLAN的隧道接口Tunnel1

·              指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1

·              指定隧道的目的端地址为Switch B上接口Loopback0的地址2.2.2.2。

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchA] interface tunnel 2 mode vxlan

[SwitchA-Tunnel2] source 1.1.1.1

[SwitchA-Tunnel2] destination 3.3.3.3

[SwitchA-Tunnel2] quit

# 配置Tunnel1和Tunnel2与VXLAN 10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] tunnel 1

[SwitchA-vsi-vpna-vxlan-10] tunnel 2

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] service-instance 1000

[SwitchA-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchA-HundredGigE1/0/1-srv1000] quit

[SwitchA-HundredGigE1/0/1] quit

(3)      配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[SwitchB] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchB-Loopback0] quit

# 在Switch A和Switch B之间建立VXLAN隧道。

[SwitchB] interface tunnel 2 mode vxlan

[SwitchB-Tunnel2] source 2.2.2.2

[SwitchB-Tunnel2] destination 1.1.1.1

[SwitchB-Tunnel2] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchB] interface tunnel 3 mode vxlan

[SwitchB-Tunnel3] source 2.2.2.2

[SwitchB-Tunnel3] destination 3.3.3.3

[SwitchB-Tunnel3] quit

# 配置Tunnel2和Tunnel3与VXLAN10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] tunnel 2

[SwitchB-vsi-vpna-vxlan-10] tunnel 3

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] service-instance 1000

[SwitchB-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchB-HundredGigE1/0/1-srv1000] quit

[SwitchB-HundredGigE1/0/1] quit

(4)      配置Switch C

# 开启L2VPN能力。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[SwitchC] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 3.3.3.3 255.255.255.255

[SwitchC-Loopback0] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 3.3.3.3

[SwitchC-Tunnel1] destination 1.1.1.1

[SwitchC-Tunnel1] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 3 mode vxlan

[SwitchC-Tunnel3] source 3.3.3.3

[SwitchC-Tunnel3] destination 2.2.2.2

[SwitchC-Tunnel3] quit

# 配置Tunnel1和Tunnel3与VXLAN 10关联。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] tunnel 1

[SwitchC-vsi-vpna-vxlan-10] tunnel 3

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchC] interface hundredgige 1/0/1

[SwitchC-HundredGigE1/0/1] service-instance 1000

[SwitchC-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchC-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchC-HundredGigE1/0/1-srv1000] quit

[SwitchC-HundredGigE1/0/1] quit

4. 验证配置

(1)      验证VTEP设备(下文以Switch A为例,其它设备验证方法与此类似)

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。

[SwitchA] display interface tunnel 1

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.1.1.1, destination 2.2.2.2

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的以太网服务实例等信息。

[SwitchA] display l2vpn vsi verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flood proxy

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  Up     Manual      Disabled

  ACs:

    AC                               Link ID    State

    HGE1/0/1 srv1000                 0          Up

# 查看Switch A上VSI的MAC地址表项信息,可以看到已学习到的MAC地址信息。

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb   Dynamic  vpna                            Tunnel1       Aging

cc3e-5f9c-23dc   Dynamic  vpna                            Tunnel2       Aging

--- 2 mac address(es) found  ---

(2)      验证主机

虚拟机VM 1、VM 2、VM 3之间可以互访。

2.19.2  VXLAN核心复制配置举例

1. 组网需求

Switch A、Switch B、Switch C为与服务器连接的VTEP设备。虚拟机VM 1、VM 2和VM 3同属于VXLAN 10。通过VXLAN实现不同站点间的二层互联,确保虚拟机在站点之间进行迁移时用户的访问流量不会中断。

具体需求为:

·              不同VTEP之间手工建立VXLAN隧道。

·              手工关联VXLAN和VXLAN隧道。

·              通过源MAC地址动态学习远端MAC地址表项。

·              站点之间的泛洪流量采用核心复制的方式转发。

2. 组网图

图2-2 VXLAN核心复制组网图

 

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlan-int11

11.1.1.1/24

Switch C

Vlan-int13

13.1.1.3/24

Switch D

Vlan-int11

11.1.1.4/24

Switch E

Vlan-int13

13.1.1.5/24

 

Vlan-int21

21.1.1.4/24

 

Vlan-int23

23.1.1.5/24

Switch F

Vlan-int21

21.1.1.6/24

Switch G

Vlan-int12

12.1.1.7/24

 

Vlan-int22

22.1.1.6/24

 

Vlan-int22

22.1.1.7/24

 

Vlan-int23

23.1.1.6/24

Switch B

Vlan-int12

12.1.1.2/24

 

Loop0

6.6.6.6/32

 

 

 

 

3. 配置步骤

(1)      配置IP地址和单播路由协议

请按照图2-2配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。

(2)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 使能IP组播路由。

[SwitchA] multicast routing

[SwitchA-mrib] quit

# 配置VXLAN隧道工作在二层转发模式。

[SwitchA] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 配置接口Vlan-interface11的IP地址,并在该接口上开启IGMP协议的主机功能。

[SwitchA] interface vlan-interface 11

[SwitchA-Vlan-interface11] ip address 11.1.1.1 24

[SwitchA-Vlan-interface11] igmp host enable

[SwitchA-Vlan-interface11] quit

# 在Switch A和Switch B之间建立VXLAN隧道:

·              创建模式为VXLAN的隧道接口Tunnel1

·              指定隧道的源端地址为本地接口Vlan-interface11的地址11.1.1.1

·              指定隧道的目的端地址为Switch B上接口Vlan-interface12的地址12.1.1.2

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 11.1.1.1

[SwitchA-Tunnel1] destination 12.1.1.2

[SwitchA-Tunnel1] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchA] interface tunnel 2 mode vxlan

[SwitchA-Tunnel2] source 11.1.1.1

[SwitchA-Tunnel2] destination 13.1.1.3

[SwitchA-Tunnel2] quit

# 配置Tunnel1和Tunnel2与VXLAN 10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] tunnel 1

[SwitchA-vsi-vpna-vxlan-10] tunnel 2

# 配置VXLAN泛洪的组播地址为225.1.1.1,组播报文的源IP地址为11.1.1.1。

[SwitchA-vsi-vpna-vxlan-10] group 225.1.1.1 source 11.1.1.1

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] service-instance 1000

[SwitchA-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchA-HundredGigE1/0/1-srv1000] quit

[SwitchA-HundredGigE1/0/1] quit

(3)      配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 使能IP组播路由。

[SwitchB] multicast routing

[SwitchB-mrib] quit

# 配置VXLAN隧道工作在二层转发模式。

[SwitchB] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 配置接口Vlan-interface12的IP地址,并在该接口上开启IGMP协议的主机功能。

[SwitchB] interface vlan-interface 12

[SwitchB-Vlan-interface12] ip address 12.1.1.2 24

[SwitchB-Vlan-interface12] igmp host enable

[SwitchB-Vlan-interface12] quit

# 在Switch A和Switch B之间建立VXLAN隧道。

[SwitchB] interface tunnel 2 mode vxlan

[SwitchB-Tunnel2] source 12.1.1.2

[SwitchB-Tunnel2] destination 11.1.1.1

[SwitchB-Tunnel2] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchB] interface tunnel 3 mode vxlan

[SwitchB-Tunnel3] source 12.1.1.2

[SwitchB-Tunnel3] destination 13.1.1.3

[SwitchB-Tunnel3] quit

# 配置Tunnel2和Tunnel3与VXLAN10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] tunnel 2

[SwitchB-vsi-vpna-vxlan-10] tunnel 3

# 配置VXLAN泛洪的组播地址为225.1.1.1,组播报文的源IP地址为12.1.1.2。

[SwitchB-vsi-vpna-vxlan-10] group 225.1.1.1 source 12.1.1.2

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] service-instance 1000

[SwitchB-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchB-HundredGigE1/0/1-srv1000] quit

[SwitchB-HundredGigE1/0/1] quit

(4)      配置Switch C

# 开启L2VPN能力。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 使能IP组播路由。

[SwitchC] multicast routing

[SwitchC-mrib] quit

# 配置VXLAN隧道工作在二层转发模式。

[SwitchC] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 配置接口Vlan-interface13的IP地址,并在该接口上开启IGMP协议的主机功能。

[SwitchC] interface vlan-interface 13

[SwitchC-Vlan-interface13] ip address 13.1.1.3 24

[SwitchC-Vlan-interface13] igmp host enable

[SwitchC-Vlan-interface13] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 13.1.1.3

[SwitchC-Tunnel1] destination 11.1.1.1

[SwitchC-Tunnel1] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 3 mode vxlan

[SwitchC-Tunnel3] source 13.1.1.3

[SwitchC-Tunnel3] destination 12.1.1.2

[SwitchC-Tunnel3] quit

# 配置Tunnel1和Tunnel3与VXLAN 10关联。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] tunnel 1

[SwitchC-vsi-vpna-vxlan-10] tunnel 3

# 配置VXLAN泛洪的组播地址为225.1.1.1,组播报文的源IP地址为13.1.1.3。

[SwitchC-vsi-vpna-vxlan-10] group 225.1.1.1 source 13.1.1.3

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchC] interface hundredgige 1/0/1

[SwitchC-HundredGigE1/0/1] service-instance 1000

[SwitchC-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchC-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchC-HundredGigE1/0/1-srv1000] quit

[SwitchC-HundredGigE1/0/1] quit

(5)      配置Switch D

# 使能IP组播路由。

<SwitchD> system-view

[SwitchD] multicast routing

[SwitchD-mrib] quit

# 在接口Vlan-interface11上使能IGMP和PIM-SM。

[SwitchD] interface vlan-interface 11

[SwitchD-Vlan-interface11] igmp enable

[SwitchD-Vlan-interface11] pim sm

[SwitchD-Vlan-interface11] quit

# 在接口Vlan-interface21上使能PIM-SM。

[SwitchD] interface vlan-interface 21

[SwitchD-Vlan-interface21] pim sm

[SwitchD-Vlan-interface21] quit

# 使能双向PIM。

[SwitchD] pim

[SwitchD-pim] bidir-pim enable

[SwitchD-pim] quit

(6)      配置Switch E

# 使能IP组播路由。

<SwitchE> system-view

[SwitchE] multicast routing

[SwitchE-mrib] quit

# 在接口Vlan-interface13上使能IGMP和PIM-SM。

[SwitchE] interface vlan-interface 13

[SwitchE-Vlan-interface13] igmp enable

[SwitchE-Vlan-interface13] pim sm

[SwitchE-Vlan-interface13] quit

# 在接口Vlan-interface23上使能PIM-SM。

[SwitchE] interface vlan-interface 23

[SwitchE-Vlan-interface23] pim sm

[SwitchE-Vlan-interface23] quit

# 使能双向PIM。

[SwitchE] pim

[SwitchE-pim] bidir-pim enable

[SwitchE-pim] quit

(7)      配置Switch F

# 使能IP组播路由。

<SwitchF> system-view

[SwitchF] multicast routing

[SwitchF-mrib] quit

# 在各接口上使能PIM-SM。

[SwitchF] interface vlan-interface 21

[SwitchF-Vlan-interface21] pim sm

[SwitchF-Vlan-interface21] quit

[SwitchF] interface vlan-interface 22

[SwitchF-Vlan-interface22] pim sm

[SwitchF-Vlan-interface22] quit

[SwitchF] interface vlan-interface 23

[SwitchF-Vlan-interface23] pim sm

[SwitchF-Vlan-interface23] quit

[SwitchF] interface loopback 0

[SwitchF-LoopBack0] pim sm

[SwitchF-LoopBack0] quit

# 使能双向PIM。

[SwitchF] pim

[SwitchF-pim] bidir-pim enable

# 将接口Vlan-interface22配置为C-BSR,并将接口Loopback0配置为服务于双向PIM的C-RP。

[SwitchF-pim] c-bsr 22.1.1.6

[SwitchF-pim] c-rp 6.6.6.6 bidir

[SwitchF-pim] quit

(8)      配置Switch G

# 使能IP组播路由。

<SwitchG> system-view

[SwitchG] multicast routing

[SwitchG-mrib] quit

# 在接口Vlan-interface12上使能IGMP和PIM-SM。

[SwitchG] interface vlan-interface 12

[SwitchG-Vlan-interface12] igmp enable

[SwitchG-Vlan-interface12] pim sm

[SwitchG-Vlan-interface12] quit

# 在接口Vlan-interface22上使能PIM-SM。

[SwitchG] interface vlan-interface 22

[SwitchG-Vlan-interface22] pim sm

[SwitchG-Vlan-interface22] quit

# 使能双向PIM。

[SwitchG] pim

[SwitchG-pim] bidir-pim enable

[SwitchG-pim] quit

4. 验证配置

(1)      验证VTEP设备(下文以Switch A为例,其它设备验证方法与此类似)

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。

[SwitchA] display interface tunnel 1

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 11.1.1.1, destination 12.1.1.2

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的以太网服务实例等信息。

[SwitchA] display l2vpn vsi verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flood proxy

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  Up     Manual      Disabled

    MTunnel0             0x6000000  Up     Auto        Disabled

  ACs:

    AC                               Link ID    State

    HGE1/0/1 srv1000                 0          Up

# 查看Switch A上VSI的MAC地址表项信息,可以看到已学习到的MAC地址信息。

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb   Dynamic  vpna                            Tunnel1   Aging

cc3e-5f9c-23dc   Dynamic  vpna                            Tunnel2   Aging

--- 2 mac address(es) found  ---

# 查看Switch A上IGMP执行主机行为的所有组播组信息,可以看到接口Vlan-interface11下存在组播组225.1.1.1的信息。

<SwitchA> display igmp host group

IGMP host groups in total: 1

 Vlan-interface11(11.1.1.1):

  IGMP host groups in total: 1

   Group address      Member state      Expires

   225.1.1.1          Idle              Off

(2)      验证主机

虚拟机VM 1、VM 2、VM 3之间可以互访。


3 VXLAN IP网关

3.1  VXLAN IP网关简介

VXLAN可以为分散的物理站点提供二层互联。如果要为VXLAN站点内的虚拟机提供三层业务,则需要在网络中部署VXLAN IP网关,以便站点内的虚拟机通过VXLAN IP网关与外界网络或其他VXLAN网络内的虚拟机进行三层通信。VXLAN IP网关既可以部署在独立的物理设备上,也可以部署在VTEP设备上。VXLAN IP网关部署在VTEP设备上时,又分为集中式VXLAN IP网关和分布式VXLAN IP网关两种方式。

3.1.1  独立的VXLAN IP网关

图3-1 独立的VXLAN IP网关示意图

 

图3-1所示,VXLAN IP网关部署在独立的物理设备上时,VXLAN IP网关作为物理站点接入VTEP,VXLAN业务对于网关设备透明。虚拟机通过VXLAN IP网关与三层网络中的节点通信时,虚拟机将三层报文封装成二层数据帧发送给VXLAN IP网关。VTEP对该数据帧进行VXLAN封装,并在IP核心网络上将其转发给远端VTEP(连接VXLAN IP网关的VTEP)。远端VTEP对VXLAN报文进行解封装,并将原始的二层数据帧转发给VXLAN IP网关。VXLAN IP网关去掉链路层封装后,对报文进行三层转发。

3.1.2  集中式VXLAN IP网关

图3-2 集中式VXLAN IP网关示意图

 

图3-2所示,集中式VXLAN IP网关进行二层VXLAN业务终结的同时,还对内层封装的IP报文进行三层转发处理。与独立的VXLAN IP网关相比,该方式除了能够节省设备资源外,VXLAN IP网关功能由VXLAN对应的三层虚接口(VSI虚接口)承担,三层业务的部署和控制也更加灵活和方便。

图3-3 集中式VXLAN IP网关的三层通信过程

 

图3-3所示,以地址为10.1.1.11的虚拟机为例,虚拟机与外界网络进行三层通信的过程为:

(1)      虚拟机(10.1.1.11)跨网段进行三层通信时,先广播发送ARP请求消息,解析VXLAN IP网关(10.1.1.1)的MAC地址。

(2)      VTEP 1收到ARP请求消息后,添加VXLAN封装并发送给所有的远端VTEP。

(3)      VTEP 3解封装VXLAN报文后,发现ARP请求的目的IP为VXLAN对应的本地网关IP地址,即与VXLAN关联的VSI虚接口的IP地址,则学习10.1.1.11的ARP信息,并向虚拟机回应ARP应答消息。

(4)      VTEP 1收到ARP应答消息后,将该消息转发给虚拟机。

(5)      虚拟机获取到网关的MAC地址后,为三层报文添加网关的MAC地址,通过VXLAN网络将二层数据帧发送给VTEP 3。

(6)      VTEP 3解封装VXLAN报文,并去掉链路层头后,对内层封装的IP报文进行三层转发,将其发送给最终的目的节点。

(7)      目的节点回复的报文到达网关后,网关根据已经学习到的ARP表项,为报文封装链路层头,并通过VXLAN网络将其发送给虚拟机。

属于不同VXLAN网络的虚拟机之间的通信过程与上述过程类似,不同之处在于一个VXLAN网络的集中式网关需要将报文转发给另一个VXLAN网络的集中式网关,再由该集中式网关将报文转发给本VXLAN内对应的虚拟机。

3.1.3  集中式VXLAN IP网关保护组

由单台设备承担站点内大量虚拟机的集中式VXLAN IP网关功能,对设备的处理资源占用较高,并且对于网关的单点故障没有保护措施。通过集中式VXLAN IP网关保护组,可以实现多台设备同时承担网关功能,在提供单点故障保护机制的同时,还可以实现上下行流量的负载分担。

图3-4 集中式VXLAN IP网关保护组示意图

 

图3-4所示,两台集中式VXLAN IP网关形成保护组,两台设备上存在相同的VTEP IP,称为保护组的VTEP IP。接入层VTEP与保护组的VTEP IP建立VXLAN隧道,将虚拟机发送至其它网络的报文转发至保护组,保护组中的两台网关设备均可以接收并处理虚拟机发往其它网络的流量。

保护组中的成员VTEP之间、每个成员VTEP与接入层VTEP之间还会采用成员自身的IP地址建立VXLAN隧道,以便进行协议通信和表项同步。

3.1.4  分布式VXLAN IP网关

1. 简介

图3-5 分布式VXLAN IP网关示意图

 

采用集中式VXLAN IP网关方案时,不同VXLAN之间的流量以及VXLAN访问外界网络的流量全部由集中式VXLAN IP网关处理,网关压力较大,并加剧了网络带宽资源的消耗。如图3-5所示,在分布式VXLAN IP网关方案中,每台VTEP设备都可以作为VXLAN IP网关,对本地站点的流量进行三层转发,很好地缓解了网关的压力。

图3-6 分布式VXLAN IP网关部署示意图

 

图3-6所示,在分布式VXLAN IP网关组网中,所有的分布式VXLAN IP网关(GW)上都需要创建VSI虚接口,并为不同GW上的相同VSI虚接口配置相同的IP地址,作为VXLAN内虚拟机的网关地址。在分布式VXLAN IP网关上还需要开启本地代理ARP功能。边界网关(Border)上也需要创建VSI虚接口,并配置IP地址。

采用分布式VXLAN IP网关组网方案时,三层流量通过查找ARP表项进行三层转发。

2. 相同VXLAN内不同站点的虚拟机通信过程

图3-6所示,以VM 1访问VM 4为例,相同VXLAN内不同站点的虚拟机的通信过程为:

(1)      VM 1广播发送ARP请求消息,获取VM 4的MAC地址。

(2)      GW 1收到ARP请求消息后,学习VM 1的ARP信息,并代理应答该ARP请求,即:向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。

(3)      VM 1学习到VM 4的MAC地址为GW 1上VSI虚接口10的MAC地址。

(4)      GW 1将接收到的ARP请求消息中的源MAC地址修改为VSI虚接口10的MAC地址,对该消息进行VXLAN封装后,将其发送给VXLAN内的所有远端VTEP。

(5)      GW 2对VXLAN报文进行解封装后,学习VM 1的ARP信息(IP为10.1.1.11、MAC为GW 1上VSI虚接口10的MAC、出接口为接收该VXLAN报文的Tunnel接口),并将ARP请求消息中的源MAC修改为本地VSI虚接口10的MAC地址,在VXLAN 10的本地站点内进行广播。

(6)      VM 4收到ARP请求后,学习VM 1的ARP信息(IP为10.1.1.11、MAC为GW 2上VSI虚接口10的MAC),并发送ARP应答消息给本地网关GW 2。

(7)      GW 2从VM 4收到ARP应答消息后,学习VM 4的ARP信息,将ARP应答消息中的源MAC修改为本地VSI虚接口10的MAC地址,并根据已经学习到的ARP表项,为ARP应答消息添加VXLAN封装后发送给GW 1。

(8)      GW 1对VXLAN报文进行解封装后,根据收到的ARP应答消息学习VM 4的ARP信息(IP为10.1.1.12、MAC为GW 2上VSI虚接口10的MAC、出接口为接收该VXLAN报文的Tunnel接口)。

(9)      通过上述步骤完成ARP信息的学习后,VM 1发送给VM 4的报文,根据已经学习到的ARP信息进行转发:首先发送给GW 1;GW 1对其进行VXLAN封装后,将其发送给GW 2;GW 2解封装后,将其发送给VM 4。

3. 不同VXLAN间不同站点的虚拟机通信过程

图3-6所示,以VM 1访问VM 5为例,不同VXLAN的虚拟机的通信过程为:

(1)      VM 1广播发送ARP请求消息,获取网关10.1.1.1的MAC地址。

(2)      GW 1收到ARP请求消息后,学习VM 1的ARP信息,并向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。

(3)      VM 1将访问VM 5的报文发送给GW 1。

(4)      GW 1在所有VXLAN内向本地站点和远端站点广播发送ARP请求,获取VM 5的MAC地址。ARP请求消息中的源IP地址为20.1.1.1、源MAC地址为本地VSI虚接口20的MAC地址。

(5)      GW 2从VXLAN隧道上接收到VXLAN报文,对其进行解封装后,学习GW 1的ARP信息(IP为20.1.1.1、MAC为GW 1上VSI虚接口20的MAC、出接口为接收该VXLAN报文的Tunnel接口),并将ARP请求消息中的源MAC修改为本地VSI虚接口20的MAC地址,在VXLAN 20的本地站点内广播该ARP请求消息。

(6)      VM 5收到ARP请求后,学习GW 2的ARP信息(IP为20.1.1.1、MAC为GW 2上VSI虚接口20的MAC),并发送ARP应答消息给本地网关GW 2。

(7)      GW 2从VM 5收到ARP应答消息后,学习VM 5的ARP信息,将ARP应答消息中的源MAC修改为本地VSI虚接口20的MAC地址,并根据已经学习到的ARP表项,为ARP应答消息添加VXLAN封装后发送给GW 1。

(8)      GW 1对VXLAN报文进行解封装后,根据收到的ARP应答消息学习VM 5的ARP信息(IP为20.1.1.12、MAC为GW 2上VSI虚接口20的MAC、出接口为接收该VXLAN报文的Tunnel接口)。

(9)      通过上述步骤完成ARP信息的学习后,VM 1发送给VM 5的报文,根据已经学习到的ARP信息进行转发:首先发送给GW 1;GW 1对其进行VXLAN封装后,将其发送给GW 2;GW 2解封装后,将其发送给VM 5。

4. 虚拟机与外部网络的三层通信过程

虚拟机要想与外部网络进行三层通信,需要在接入虚拟机的本地分布式VXLAN IP网关上指定流量的下一跳为Border,可以通过如下方式来实现:

·              在本地分布式VXLAN IP网关上配置静态路由,指定路由下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。

·              在本地分布式VXLAN IP网关上配置策略路由,设置报文的下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。

图3-6所示,以VM 1访问外部网络内的主机50.1.1.1为例,虚拟机访问外部网络的三层通信过程为:

(1)      VM 1广播发送ARP请求消息,获取网关10.1.1.1的MAC地址。

(2)      GW 1收到ARP请求消息后,学习VM 1的ARP信息,并向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。

(3)      VM 1将访问外部网络的报文发送给GW 1。

(4)      GW 1接收到报文后,根据策略路由判断报文的下一跳地址为10.1.1.2。GW 1在VXLAN 10内向本地站点和远端站点广播发送ARP请求消息,获取10.1.1.2对应的MAC地址。

(5)      Border对VXLAN报文进行解封装,学习GW 1的ARP信息,并通过VXLAN隧道回复ARP应答消息。

(6)      GW 1对VXLAN报文进行解封装,并获取到10.1.1.2的ARP信息。

(7)      GW 1根据获取到的信息为VM 1发送的报文封装链路层地址(10.1.1.2对应的MAC地址),并通过VXLAN隧道将报文发送给Border。

(8)      Border对接收到的报文进行解封装后,对报文进行三层转发。

3.2  VXLAN IP网关配置限制和指导

VXLAN IP网关上,VXLAN隧道所在链路建议使用三层以太网接口或Access类型的二层以太网接口。若要使用三层以太网子接口或Trunk类型的二层以太网接口,则必须执行vxlan ip-forwarding tagged命令配置VXLAN隧道工作在三层转发模式,并指定转发VXLAN报文时携带VLAN tag。

建议不要在同一台设备上同时配置集中式VXLAN IP网关和集中式VXLAN IP网关保护组功能。

3.3  VXLAN IP网关配置准备

配置集中式VXLAN IP网关和分布式VXLAN IP网关时,需要完成以下配置任务:

·              配置VXLAN隧道工作在三层转发模式。

·              创建VSI和VXLAN。

·              配置VXLAN隧道,并将VXLAN与VXLAN隧道关联。

3.4  配置集中式VXLAN IP网关

表3-1 配置集中式VXLAN IP网关

操作

命令

说明

进入系统视图

system-view

-

创建VSI虚接口,并进入VSI虚接口视图

interface vsi-interface vsi-interface-id

缺省情况下,不存在VSI虚接口

如果VSI虚接口已经存在,则直接进入该VSI虚接口视图

配置VSI虚接口的IP地址

ip address ip-address { mask | mask-length }

缺省情况下,未配置VSI虚接口的IP地址

退回系统视图

quit

-

进入VXLAN所在VSI视图

vsi vsi-name

-

为VSI指定网关接口

gateway vsi-interface vsi-interface-id

缺省情况下,未指定VSI的网关接口

 

3.5  配置集中式VXLAN IP网关保护组

3.5.1  配置限制和指导

集中式VXLAN IP网关保护组功能与VSI泛洪抑制功能互斥。只有VSI的泛洪功能处于开启状态,或同时抑制未知单播和组播流量时,集中式VXLAN IP网关保护组功能才能正常工作。建议先配置集中式VXLAN IP网关保护组,再配置VSI泛洪抑制功能。如果功能之间存在冲突,则配置VSI泛洪抑制功能时会提示错误,从而避免集中式VXLAN IP网关保护组功能不可用。

3.5.2  VXLAN IP网关上的配置

保护组中所有网关上的VXLAN配置需要保证完全一致。

表3-2 配置集中式VXLAN IP网关

操作

命令

说明

进入系统视图

system-view

-

创建VSI虚接口,并进入VSI虚接口视图

interface vsi-interface vsi-interface-id

缺省情况下,不存在VSI虚接口

如果VSI虚接口已经存在,则直接进入该VSI虚接口视图

请在保护组中的每台网关上创建相同的VSI虚接口

配置VSI虚接口的IP地址

ip address ip-address { mask | mask-length }

缺省情况下,未配置VSI虚接口的IP地址

请在保护组中的每台网关上配置相同的VSI虚接口IP地址

配置VSI虚接口的MAC地址

mac-address mac-address

缺省情况下,VSI虚接口的MAC地址为设备的桥MAC地址+1

保护组中所有网关上配置的MAC地址必须相同

如果VSI虚接口MAC地址的高36位与VXLAN IP网关桥MAC地址的高36位不同,则VXLAN IP网关发送报文的源MAC地址是VSI虚接口的缺省MAC地址(VLAN接口的MAC地址);如果二者相同,则源MAC地址为VSI虚接口的MAC地址

为不同的VSI虚接口配置不同的MAC地址,且MAC地址的高36位与VXLAN IP网关桥MAC地址的高36位不同时,该类MAC地址的总数不能超过16个。为了避免MAC地址总数超出限制,可以配置VSI虚接口MAC地址的高36位与VXLAN IP网关桥MAC地址的高36位相同

退回系统视图

quit

-

进入VXLAN所在VSI视图

vsi vsi-name

-

为VSI指定网关接口

gateway vsi-interface vsi-interface-id

缺省情况下,未指定VSI的网关接口

退回系统视图

quit

-

将本设备加入VXLAN IP网关保护组,并配置本设备的成员地址

vtep group group-ip member local member-ip

缺省情况下,设备未加入VXLAN IP网关保护组

保护组中的每台VXLAN IP网关上都要执行此配置。member-ip为本设备的成员地址,该地址必须是设备上已经存在的IP地址,并且需要通过路由协议发布到IP网络

同一个保护组中不同成员VTEP的地址不能相同

配置VXLAN IP网关保护组的成员地址列表

vtep group group-ip member remote member-ip&<1-8>

缺省情况下,未配置VXLAN IP网关保护组的成员地址列表

在保护组中每台VXLAN IP网关中执行此配置,必须输入保护组中所有其它成员的成员地址

 

3.5.3  接入层VTEP上的配置

执行本配置时,需要完成以下配置任务:

·              创建VSI和VXLAN。

·              配置VXLAN隧道,并将VXLAN与VXLAN隧道关联。

表3-3 配置接入层VTEP识别VXLAN IP网关保护组

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN IP网关保护组的成员地址列表

vtep group group-ip member remote member-ip&<1-8>

缺省情况下,未配置VXLAN IP网关保护组的成员地址列表

必须输入保护组中所有成员的成员地址

 

3.6  配置分布式VXLAN IP网关

说明

在分布式VXLAN IP网关设备上,如果开启了ARP泛洪抑制功能,并在VSI虚接口上开启了本地代理ARP功能,则只有本地代理ARP功能生效。建议不要在分布式VXLAN IP网关设备上同时开启这两个功能。有关ARP泛洪抑制功能的详细介绍请参见“2.13  配置ARP泛洪抑制”。

 

如果虚拟机要想与外部网络进行三层通信,那么需要在接入虚拟机的本地分布式VXLAN IP网关上配置静态路由或策略路由:

·              配置静态路由:指定路由的下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。

·              配置策略路由:通过apply default-next-hop命令或apply next-hop命令设置报文的缺省下一跳或下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。策略路由的配置方法,请参见“三层技术-IP路由配置指导”中的“策略路由”。

表3-4 配置分布式VXLAN IP网关

操作

命令

说明

进入系统视图

system-view

-

创建VSI虚接口,并进入VSI虚接口视图

interface vsi-interface vsi-interface-id

缺省情况下,不存在VSI虚接口

如果VSI虚接口已经存在,则直接进入该VSI虚接口视图

配置VSI虚接口的IP地址

ip address ip-address { mask | mask-length } [ sub ]

缺省情况下,未配置VSI虚接口的IP地址

配置VSI虚接口为分布式网关接口

distributed-gateway local

缺省情况下,VSI虚接口不是分布式本地网关接口

开启本地代理ARP功能

local-proxy-arp enable [ ip-range startIP to endIP ]

对于IPv4网络,必选

缺省情况下,本地代理ARP功能处于关闭状态

本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“代理ARP”

退回系统视图

quit

-

(可选)开启分布式网关的动态ARP表项同步功能

arp distributed-gateway dynamic-entry synchronize

缺省情况下,分布式网关的动态ARP表项同步功能处于关闭状态

分布式VXLAN IP网关上开启本地代理ARP功能时,本地网关不会将目标IP地址为分布式网关VSI虚接口的ARP报文转发给其他网关,只有本地网关能够学习到ARP报文发送者的ARP表项。如果希望所有网关都能学习到该ARP表项,需要开启分布式网关的动态ARP表项同步功能

分布式VXLAN IP网关之间也可以通过控制器或EVPN等在彼此之间同步ARP表项,此时无需开启本功能

进入VXLAN所在VSI视图

vsi vsi-name

-

为VSI指定网关接口

gateway vsi-interface vsi-interface-id

缺省情况下,未指定VSI的网关接口

配置当前VSI所属的子网网段

gateway subnet ipv4-address wildcard-mask

缺省情况下,未指定VSI所属的子网网段

为了节省分布式VXLAN IP网关设备上的三层接口资源,在网关设备上多个VXLAN可以共用一个VSI虚接口,为VSI虚接口配置一个主IPv4地址和多个从IPv4地址,分别作为不同VXLAN内虚拟机的网关地址

多个VXLAN共用一个VSI虚接口时,网关设备无法判断从VSI虚接口接收到的报文属于哪个VXLAN。为了解决该问题,需要在VSI视图下通过本命令指定VSI所属的子网网段,通过子网网段判断报文所属的VSI,并在该VSI内转发报文,从而限制广播报文范围,有效地节省带宽资源

 

3.7  配置VSI虚接口

通过本配置,可以根据需要调整VSI虚接口的参数及状态。

表3-5 配置VSI虚接口

操作

命令

说明

进入系统视图

system-view

-

进入VSI虚接口视图

interface vsi-interface vsi-interface-id

-

配置VSI虚接口的MAC地址

mac-address mac-address

缺省情况下,VSI虚接口的MAC地址为设备的桥MAC地址+1

如果VSI虚接口MAC地址的高36位与VXLAN IP网关桥MAC地址的高36位不同,则VXLAN IP网关发送报文的源MAC地址是VSI虚接口的缺省MAC地址(VLAN接口的MAC地址);如果二者相同,则源MAC地址为VSI虚接口的MAC地址

为不同的VSI虚接口配置不同的MAC地址,且MAC地址的高36位与VXLAN IP网关桥MAC地址的高36位不同时,该类MAC地址的总数不能超过16个。为了避免MAC地址总数超出限制,可以配置VSI虚接口MAC地址的高36位与VXLAN IP网关桥MAC地址的高36位相同

(可选)配置接口的描述信息

description text

缺省情况下,接口的描述信息为“接口名 Interface”,例如:Vsi-interface100 Interface

(可选)配置接口的MTU

mtu mtu-value

缺省情况下,接口的MTU为1444字节

(可选)配置接口的期望带宽

bandwidth bandwidth-value

缺省情况下,接口的期望带宽=接口的波特率÷1000(kbps)

(可选)恢复接口的缺省配置

default

-

(可选)开启VSI虚接口的ARP报文发送限速功能

arp send-rate pps

缺省情况下,VSI虚接口的ARP报文发送限速功能处于关闭状态

开启VSI虚接口

undo shutdown

缺省情况下,VSI虚接口处于开启状态

 

3.8  开启VSI虚接口的报文统计功能

执行本配置后,设备会开启与VSI关联的VSI虚接口的报文统计功能。通过display interface vsi-interface命令的Input和Output字段可以查看报文统计信息。

需要注意的是:

·              只有VSI虚接口仅与一个VSI关联时,才能开启该VSI虚接口的报文统计功能。

·              多次执行statistic mode queue命令、statistic mode ac命令和statistic mode vsi命令,最后一次执行的命令生效。

表3-6 开启VSI虚接口的报文统计功能

操作

命令

说明

 

进入系统视图

system-view

-

 

配置报文的统计模式为VSI模式

statistic mode vsi

缺省情况下,报文的统计模式为VSI模式

进入VXLAN所在VSI视图

vsi vsi-name

-

 

开启VSI的报文统计功能

statistics enable

缺省情况下,VSI的报文统计功能处于关闭状态

 

 

3.9  VXLAN IP网关显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后VXLAN IP网关的运行情况,通过查看显示信息验证配置的效果。

在用户视图下,用户可以执行reset命令来清除VSI虚接口的统计信息。

表3-7 VXLAN IP网关显示和维护

操作

命令

显示VSI虚接口信息

display interface [ vsi-interface [ vsi-interface-id ] ] [ brief [ description | down ] ]

清除VSI虚接口的统计信息

reset counters interface [ vsi-interface [ vsi-interface-id ] ]

 

3.10  VXLAN IP网关典型配置举例

3.10.1  集中式VXLAN IP网关配置举例

1. 组网需求

Switch A、Switch C为与服务器连接的VTEP设备,Switch B为与广域网连接的集中式VXLAN IP网关设备,Switch E为广域网内的三层交换机。虚拟机VM 1、VM 2同属于VXLAN 10,通过VXLAN实现不同站点间的二层互联,并通过VXLAN IP网关与广域网三层互联。

具体需求为:

·              不同VTEP之间手工建立VXLAN隧道。

·              手工关联VXLAN和VXLAN隧道。

·              通过源MAC地址动态学习远端MAC地址表项。

·              站点之间的泛洪流量采用头端复制的方式转发。

2. 组网图

图3-7 集中式VXLAN IP网关配置组网图

 

3. 配置步骤

(1)      配置IP地址和单播路由协议

# 在VM 1和VM 2上指定网关地址为10.1.1.1。(具体配置过程略)

# 请按照图3-7配置各接口的IP地址和子网掩码;在IP核心网络内配置OSPF协议,确保交换机之间路由可达;配置Switch B和Switch E上发布10.1.1.0/24和20.1.1.0/24网段的路由。(具体配置过程略)

(2)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[Switch] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

# 在Switch A和Switch B之间建立VXLAN隧道:

·              创建模式为VXLAN的隧道接口Tunnel1。

·              指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1。

·              指定隧道的目的端地址为Switch B上接口Loopback0的地址2.2.2.2。

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchA] interface tunnel 2 mode vxlan

[SwitchA-Tunnel2] source 1.1.1.1

[SwitchA-Tunnel2] destination 3.3.3.3

[SwitchA-Tunnel2] quit

# 配置Tunnel1和Tunnel2与VXLAN 10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] tunnel 1

[SwitchA-vsi-vpna-vxlan-10] tunnel 2

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] service-instance 1000

[SwitchA-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchA-HundredGigE1/0/1-srv1000] quit

[SwitchA-HundredGigE1/0/1] quit

(3)      配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 创建VSI实例vpna和VXLAN 10。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchB-Loopback0] quit

# 在Switch A和Switch B之间建立VXLAN隧道。

[SwitchB] interface tunnel 2 mode vxlan

[SwitchB-Tunnel2] source 2.2.2.2

[SwitchB-Tunnel2] destination 1.1.1.1

[SwitchB-Tunnel2] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchB] interface tunnel 3 mode vxlan

[SwitchB-Tunnel3] source 2.2.2.2

[SwitchB-Tunnel3] destination 3.3.3.3

[SwitchB-Tunnel3] quit

# 配置Tunnel2和Tunnel3与VXLAN 10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] tunnel 2

[SwitchB-vsi-vpna-vxlan-10] tunnel 3

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 创建VSI虚接口VSI-interface1,并为其配置IP地址,该IP地址作为VXLAN 10内虚拟机的网关地址。

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchB-Vsi-interface1] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] gateway vsi-interface 1

[SwitchB-vsi-vpna] quit

(4)      配置Switch C

# 开启L2VPN能力。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[SwitchC] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 3.3.3.3 255.255.255.255

[SwitchC-Loopback0] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 3.3.3.3

[SwitchC-Tunnel1] destination 1.1.1.1

[SwitchC-Tunnel1] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 3 mode vxlan

[SwitchC-Tunnel3] source 3.3.3.3

[SwitchC-Tunnel3] destination 2.2.2.2

[SwitchC-Tunnel3] quit

# 配置Tunnel1和Tunnel3与VXLAN 10关联。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] tunnel 1

[SwitchC-vsi-vpna-vxlan-10] tunnel 3

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchC] interface hundredgige 1/0/1

[SwitchC-HundredGigE1/0/1] service-instance 1000

[SwitchC-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchC-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchC-HundredGigE1/0/1-srv1000] quit

[SwitchC-HundredGigE1/0/1] quit

4. 验证配置

(1)      验证VXLAN IP网关设备Switch B

# 查看Switch B上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。

[SwitchB] display interface tunnel 2

Tunnel2

Current state: UP

Line protocol state: UP

Description: Tunnel2 Interface

Bandwidth: 64kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 2.2.2.2, destination 1.1.1.1

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch B上的VSI虚接口信息,可以看到VSI虚接口处于up状态。

[SwitchB] display interface Vsi-interface 1

Vsi-interface1

Current state: UP

Line protocol state: UP

Description: Vsi-interface1 Interface

Bandwidth: 1000000kbps

Maximum transmission unit: 1444

Internet address: 10.1.1.1/24 (primary)

IP packet frame type: Ethernet II, hardware address: 0011-2200-0102

IPv6 packet frame type: Ethernet II, hardware address: 0011-2200-0102

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch B上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的VSI虚接口等信息。

[SwitchB] display l2vpn vsi verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Gateway interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flood proxy

    Tunnel2              0x5000002  Up     Manual      Disabled

    Tunnel3              0x5000003  Up     Manual      Disabled

# 查看Switch B上VSI的ARP表项信息,可以看到已学习到了虚拟机的ARP信息。

[SwitchB] display arp

  Type: S-Static   D-Dynamic   O-Openflow   R-Rule   M-Multiport  I-Invalid

IP address      MAC address    VID        Interface/Link ID        Aging Type

20.1.1.5        000c-29c1-5e46 N/A        Vlan20                   19    D

10.1.1.11       0000-1234-0001 N/A        Vsi1                     20    D

10.1.1.12       0000-1234-0002 N/A        Vsi1                     19    D

# 查看Switch B上FIB表项信息,可以看到已学习到了虚拟机的转发表项信息。

[SwitchB] display fib 10.1.1.11

Destination count: 1 FIB entry count: 1

Flag:

  U:Useable   G:Gateway   H:Host   B:Blackhole   D:Dynamic   S:Static

  R:Relay     F:FRR

Destination/Mask   Nexthop         Flag     OutInterface/Token       Label

10.1.1.11/32       10.1.1.11       UH       Vsi1                     Null

(2)      验证主机和广域网互访

虚拟机VM 1、VM 2之间可以互访,VM 1、VM 2和Switch E上接口Vlan-interface20的地址20.1.1.5之间可以互访。

3.10.2  集中式VXLAN IP网关保护组配置举例

1. 组网需求

Switch A为与服务器连接的VTEP设备,Switch B和Switch C为与广域网连接的集中式VXLAN IP网关设备。虚拟机VM 1属于VXLAN 10,通过VXLAN IP网关保护组实现Switch B和Switch C能够同时为VM 1的跨网络报文进行三层转发,同时实现网关设备的备份。

2. 组网图

图3-8 集中式VXLAN IP网关保护组配置组网图

 

3. 配置步骤

(1)      配置IP地址和单播路由协议

# 在VM 1上指定网关地址为10.1.1.1。(具体配置过程略)

# 请按照图3-8配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议。(具体配置过程略)

(2)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[SwitchA] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan10] quit

[SwitchA-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

# 在Switch A和VXLAN IP保护组之间建立VXLAN隧道:

·              创建模式为VXLAN的隧道接口Tunnel1。

·              指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1。

·              指定隧道的目的端地址为Switch B和Switch C上同时存在的接口Loopback0的地址2.2.2.2。

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] quit

# 配置Tunnel1与VXLAN 10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan10] tunnel 1

[SwitchA-vsi-vpna-vxlan10] quit

[SwitchA-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] service-instance 1000

[SwitchA-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchA-HundredGigE1/0/1-srv1000] quit

[SwitchA-HundredGigE1/0/1] quit

# 指定VXLAN IP网关保护组以及成员。

[SwitchA] vtep group 2.2.2.2 member remote 3.3.3.3 4.4.4.4

(3)      配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 创建VSI实例vpna和VXLAN 10。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan10] quit

[SwitchB-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为保护组的VTEP IP地址。

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchB-Loopback0] quit

# 配置接口Loopback1的IP地址,作为保护组的成员地址。

[SwitchB] interface loopback 1

[SwitchB-Loopback1] ip address 3.3.3.3 255.255.255.255

[SwitchB-Loopback1] quit

# 在VXLAN IP网关保护组和Switch A之间建立VXLAN隧道。

[SwitchB] interface tunnel 2 mode vxlan

[SwitchB-Tunnel2] source 2.2.2.2

[SwitchB-Tunnel2] destination 1.1.1.1

[SwitchB-Tunnel2] quit

# 配置Tunnel2与VXLAN10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan10] tunnel 2

[SwitchB-vsi-vpna-vxlan10] quit

[SwitchB-vsi-vpna] quit

# 创建VSI虚接口VSI-interface1,为其配置IP地址,该IP地址作为VXLAN 10内虚拟机的网关地址,并指定该接口的MAC地址。

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchB-Vsi-interface1] mac-address 2-2-2

[SwitchB-Vsi-interface1] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] gateway vsi-interface 1

[SwitchB-vsi-vpna] quit

# 配置VXLAN IP网关保护组,并配置本地成员地址。

[SwitchB] vtep group 2.2.2.2 member local 3.3.3.3

# 配置VXLAN IP网关保护组的其它成员地址。

[SwitchB] vtep group 2.2.2.2 member remote 4.4.4.4

(4)      配置Switch C

# 开启L2VPN能力。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 创建VSI实例vpna和VXLAN 10。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan10] quit

[SwitchC-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为数据隧道的源端地址。

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchC-Loopback0] quit

# 配置接口Loopback1的IP地址,作为保护组的成员地址。

[SwitchC] interface loopback 1

[SwitchC-Loopback1] ip address 4.4.4.4 255.255.255.255

[SwitchC-Loopback1] quit

# 在VXLAN IP网关保护组和Switch A之间建立VXLAN隧道。

[SwitchC] interface tunnel 2 mode vxlan

[SwitchC-Tunnel2] source 2.2.2.2

[SwitchC-Tunnel2] destination 1.1.1.1

[SwitchC-Tunnel2] quit

# 配置Tunnel2与VXLAN10关联。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan10] tunnel 2

[SwitchC-vsi-vpna-vxlan10] quit

[SwitchC-vsi-vpna] quit

# 创建VSI虚接口VSI-interface1,为其配置IP地址,该IP地址作为VXLAN 10内虚拟机的网关地址,并指定该接口的MAC地址。

[SwitchC] interface vsi-interface 1

[SwitchC-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchC-Vsi-interface1] mac-address 2-2-2

[SwitchC-Vsi-interface1] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] gateway vsi-interface 1

[SwitchC-vsi-vpna] quit

# 配置VXLAN IP网关保护组,并配置本地成员地址。

[SwitchC] vtep group 2.2.2.2 member local 4.4.4.4

# 配置VXLAN IP网关保护组的其它成员地址。

[SwitchC] vtep group 2.2.2.2 member remote 3.3.3.3

3.10.3  分布式VXLAN IP网关连接IPv4网络配置举例

1. 组网需求

Switch A、Switch C为分布式VXLAN IP网关设备,Switch B为与广域网连接的边界网关设备,Switch E为广域网内的三层交换机。虚拟机VM 1属于VXLAN 10,VM 2属于VXLAN 20,VM 3属于VXLAN 30。通过分布式VXLAN IP网关实现不同VXLAN网络的三层互联,并通过边界网关实现与广域网的三层互联。

具体需求为:

·              不同VTEP之间手工建立VXLAN隧道。

·              手工关联VXLAN和VXLAN隧道。

·              站点之间的泛洪流量采用头端复制的方式转发。

·              VM 1、VM 2、VM 3之间可以互访,且VM 1、VM 2和VM 3都可以访问外部网络。

2. 组网图

图3-9 分布式VXLAN IP网关连接IPv4网络配置组网图

3. 配置步骤

(1)      配置IP地址和单播路由协议

# 在VM 1、VM 2和VM 3上分别指定网关地址为10.1.1.1、10.1.2.1、20.1.1.1。(具体配置过程略)

# 请按照图3-9配置各接口的IP地址和子网掩码;在IP核心网络内配置OSPF协议,确保交换机之间路由可达;配置Switch B和Switch E发布10.1.1.0/24、10.1.2.0/24、20.1.1.0/24和25.1.1.0/24网段的路由。(具体配置过程略)

(2)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 创建VSI实例vpnb和VXLAN 20。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] vxlan 20

[SwitchA-vsi-vpnb-vxlan-20] quit

[SwitchA-vsi-vpnb] quit

# 创建VSI实例vpnc和VXLAN 30。

[SwitchA] vsi vpnc

[SwitchA-vsi-vpnc] vxlan 30

[SwitchA-vsi-vpnc-vxlan-30] quit

[SwitchA-vsi-vpnc] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

# 在Switch A和Switch B之间建立VXLAN隧道:

·              创建模式为VXLAN的隧道接口Tunnel1。

·              指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1。

·              指定隧道的目的端地址为Switch B上接口Loopback0的地址2.2.2.2。

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchA] interface tunnel 2 mode vxlan

[SwitchA-Tunnel2] source 1.1.1.1

[SwitchA-Tunnel2] destination 3.3.3.3

[SwitchA-Tunnel2] quit

# 配置Tunnel1和Tunnel2与VXLAN 10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] tunnel 1

[SwitchA-vsi-vpna-vxlan-10] tunnel 2

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 配置Tunnel1和Tunnel2与VXLAN 20关联。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] vxlan 20

[SwitchA-vsi-vpnb-vxlan-20] tunnel 1

[SwitchA-vsi-vpnb-vxlan-20] tunnel 2

[SwitchA-vsi-vpnb-vxlan-20] quit

[SwitchA-vsi-vpnb] quit

# 配置Tunnel2与VXLAN 30关联。

[SwitchA] vsi vpnc

[SwitchA-vsi-vpnc] vxlan 30

[SwitchA-vsi-vpnc-vxlan-30] tunnel 2

[SwitchA-vsi-vpnc-vxlan-30] quit

[SwitchA-vsi-vpnc] quit

# 在接入VM 1的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] service-instance 1000

[SwitchA-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchA-HundredGigE1/0/1-srv1000] quit

[SwitchA-HundredGigE1/0/1] quit

# 在接入VM 2的接口HundredGigE1/0/3上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchA] interface hundredgige 1/0/3

[SwitchA-HundredGigE1/0/3] service-instance 1000

[SwitchA-HundredGigE1/0/3-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpnb关联。

[SwitchA-HundredGigE1/0/3-srv1000] xconnect vsi vpnb

[SwitchA-HundredGigE1/0/3-srv1000] quit

[SwitchA-HundredGigE1/0/3] quit

# 创建VSI虚接口VSI-interface1,并为其配置IP地址和MAC地址,该IP地址作为VXLAN 10内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchA] interface vsi-interface 1

[SwitchA-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchA-Vsi-interface1] mac-address 1-1-1

[SwitchA-Vsi-interface1] distributed-gateway local

[SwitchA-Vsi-interface1] local-proxy-arp enable

[SwitchA-Vsi-interface1] quit

# 创建VSI虚接口VSI-interface2,并为其配置IP地址和MAC地址,该IP地址作为VXLAN 20内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchA] interface vsi-interface 2

[SwitchA-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[SwitchA-Vsi-interface2] mac-address 2-2-2

[SwitchA-Vsi-interface2] distributed-gateway local

[SwitchA-Vsi-interface2] local-proxy-arp enable

[SwitchA-Vsi-interface2] quit

# 开启分布式网关的动态ARP表项同步功能。

[SwitchA] arp distributed-gateway dynamic-entry synchronize

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联,并配置该VSI实例的子网网段为10.1.1.0/24。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] gateway vsi-interface 1

[SwitchA-vsi-vpna] gateway subnet 10.1.1.0 0.0.0.255

[SwitchA-vsi-vpna] quit

# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] gateway vsi-interface 2

[SwitchA-vsi-vpnb] quit

# 为VSI虚接口VSI-interface1配置从IP地址,该从IP地址作为VXLAN 30内虚拟机的网关地址。

[SwitchA] interface vsi-interface 1

[SwitchA-Vsi-interface1] ip address 20.1.1.1 255.255.255.0 sub

[SwitchA-Vsi-interface1] quit

# 配置VXLAN 30所在的VSI实例和接口VSI-interface1关联,并配置该VSI实例的子网网段为20.1.1.0/24。

[SwitchA] vsi vpnc

[SwitchA-vsi-vpnc] gateway vsi-interface 1

[SwitchA-vsi-vpnc] gateway subnet 20.1.1.0 0.0.0.255

[SwitchA-vsi-vpnc] quit

# 配置策略路由,指定IPv4报文如果未找到匹配的路由表项,则设置报文的下一跳为Switch B上接口VSI-interface1的IP地址10.1.1.2。

[SwitchA] acl advanced 3000

[SwitchA-acl-ipv4-adv-3000] rule 0 permit ip

[SwitchA-acl-ipv4-adv-3000] quit

[SwitchA] policy-based-route vxlan10 permit node 5

[SwitchA-pbr-vxlan10-5] if-match acl 3000

[SwitchA-pbr-vxlan10-5] apply default-next-hop 10.1.1.2

[SwitchA-pbr-vxlan10-5] quit

# 配置策略路由,指定IPv4报文如果未找到匹配的路由表项,则设置报文的下一跳为Switch B上接口VSI-interface2的IP地址10.1.2.2。

[SwitchA] policy-based-route vxlan20 permit node 5

[SwitchA-pbr-vxlan20-5] if-match acl 3000

[SwitchA-pbr-vxlan20-5] apply default-next-hop 10.1.2.2

[SwitchA-pbr-vxlan20-5] quit

# 在VSI虚接口VSI-interface1和VSI-interface2上应用策略路由。

[SwitchA] interface vsi-interface 1

[SwitchA-Vsi-interface1] ip policy-based-route vxlan10

[SwitchA-Vsi-interface1] quit

[SwitchA] interface vsi-interface 2

[SwitchA-Vsi-interface2] ip policy-based-route vxlan20

[SwitchA-Vsi-interface2] quit

(3)      配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 创建VSI实例vpna和VXLAN 10。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 创建VSI实例vpnb和VXLAN 20。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] vxlan 20

[SwitchB-vsi-vpnb-vxlan-20] quit

[SwitchB-vsi-vpnb] quit

# 创建VSI实例vpnc和VXLAN 30。

[SwitchB] vsi vpnc

[SwitchB-vsi-vpnc] vxlan 30

[SwitchB-vsi-vpnc-vxlan-30] quit

[SwitchB-vsi-vpnc] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchB-Loopback0] quit

# 在Switch A和Switch B之间建立VXLAN隧道。

[SwitchB] interface tunnel 2 mode vxlan

[SwitchB-Tunnel2] source 2.2.2.2

[SwitchB-Tunnel2] destination 1.1.1.1

[SwitchB-Tunnel2] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchB] interface tunnel 3 mode vxlan

[SwitchB-Tunnel3] source 2.2.2.2

[SwitchB-Tunnel3] destination 3.3.3.3

[SwitchB-Tunnel3] quit

# 配置Tunnel2与VXLAN 10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] tunnel 2

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 配置Tunnel2与VXLAN 20关联。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] vxlan 20

[SwitchB-vsi-vpnb-vxlan-20] tunnel 2

[SwitchB-vsi-vpnb-vxlan-20] quit

[SwitchB-vsi-vpnb] quit

# 配置Tunnel3与VXLAN 30关联。

[SwitchB] vsi vpnc

[SwitchB-vsi-vpnc] vxlan 30

[SwitchB-vsi-vpnc-vxlan-30] tunnel 3

[SwitchB-vsi-vpnc-vxlan-30] quit

[SwitchB-vsi-vpnc] quit

# 创建VSI虚接口VSI-interface1,并为其配置IP地址。

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip address 10.1.1.2 255.255.255.0

[SwitchB-Vsi-interface1] quit

# 创建VSI虚接口VSI-interface2,并为其配置IP地址。

[SwitchB] interface vsi-interface 2

[SwitchB-Vsi-interface2] ip address 10.1.2.2 255.255.255.0

[SwitchB-Vsi-interface2] quit

# 创建VSI虚接口VSI-interface3,并为其配置IP地址。

[SwitchB] interface vsi-interface 3

[SwitchB-Vsi-interface3] ip address 20.1.1.2 255.255.255.0

[SwitchB-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] gateway vsi-interface 1

[SwitchB-vsi-vpna] quit

# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] gateway vsi-interface 2

[SwitchB-vsi-vpnb] quit

# 配置VXLAN 30所在的VSI实例和接口VSI-interface3关联。

[SwitchB] vsi vpnc

[SwitchB-vsi-vpnc] gateway vsi-interface 3

[SwitchB-vsi-vpnc] quit

(4)      配置Switch C

# 开启L2VPN能力。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 创建VSI实例vpna和VXLAN 10。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 创建VSI实例vpnb和VXLAN 20。

[SwitchC] vsi vpnb

[SwitchC-vsi-vpnb] vxlan 20

[SwitchC-vsi-vpnb-vxlan-20] quit

[SwitchC-vsi-vpnb] quit

# 创建VSI实例vpnc和VXLAN 30。

[SwitchC] vsi vpnc

[SwitchC-vsi-vpnc] vxlan 30

[SwitchC-vsi-vpnc-vxlan-30] quit

[SwitchC-vsi-vpnc] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 3.3.3.3 255.255.255.255

[SwitchC-Loopback0] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 3.3.3.3

[SwitchC-Tunnel1] destination 1.1.1.1

[SwitchC-Tunnel1] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 3 mode vxlan

[SwitchC-Tunnel3] source 3.3.3.3

[SwitchC-Tunnel3] destination 2.2.2.2

[SwitchC-Tunnel3] quit

# 配置Tunnel1与VXLAN 10关联。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] tunnel 1

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 配置Tunnel1与VXLAN 20关联。

[SwitchC] vsi vpnb

[SwitchC-vsi-vpnb] vxlan 20

[SwitchC-vsi-vpnb-vxlan-20] tunnel 1

[SwitchC-vsi-vpnb-vxlan-20] quit

[SwitchC-vsi-vpnb] quit

# 配置Tunnel1和Tunnel3与VXLAN 30关联。

[SwitchC] vsi vpnc

[SwitchC-vsi-vpnc] vxlan 30

[SwitchC-vsi-vpnc-vxlan-30] tunnel 1

[SwitchC-vsi-vpnc-vxlan-30] tunnel 3

[SwitchC-vsi-vpnc-vxlan-30] quit

[SwitchC-vsi-vpnc] quit

# 在接入VM 3的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 4的数据帧。

[SwitchC] interface hundredgige 1/0/1

[SwitchC-HundredGigE1/0/1] service-instance 1000

[SwitchC-HundredGigE1/0/1-srv1000] encapsulation s-vid 4

# 配置以太网服务实例1000与VSI实例vpnc关联。

[SwitchC-HundredGigE1/0/1-srv1000] xconnect vsi vpnc

[SwitchC-HundredGigE1/0/1-srv1000] quit

[SwitchC-HundredGigE1/0/1] quit

# 创建VSI虚接口VSI-interface1,并为其配置IP地址和MAC地址,该IP地址作为VXLAN 10内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchC] interface vsi-interface 1

[SwitchC-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchC-Vsi-interface1] mac-address 1-1-1

[SwitchC-Vsi-interface1] distributed-gateway local

[SwitchC-Vsi-interface1] local-proxy-arp enable

[SwitchC-Vsi-interface1] quit

# 创建VSI虚接口VSI-interface2,并为其配置IP地址和MAC地址,该IP地址作为VXLAN 20内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchC] interface vsi-interface 2

[SwitchC-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[SwitchC-Vsi-interface2] mac-address 2-2-2

[SwitchC-Vsi-interface2] distributed-gateway local

[SwitchC-Vsi-interface2] local-proxy-arp enable

[SwitchC-Vsi-interface2] quit

# 开启分布式网关的动态ARP表项同步功能。

[SwitchC] arp distributed-gateway dynamic-entry synchronize

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联,并配置该VSI实例的子网网段为10.1.1.0/24。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] gateway vsi-interface 1

[SwitchC-vsi-vpna] gateway subnet 10.1.1.0 0.0.0.255

[SwitchC-vsi-vpna] quit

# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchC] vsi vpnb

[SwitchC-vsi-vpnb] gateway vsi-interface 2

[SwitchC-vsi-vpnb] quit

# 为VSI虚接口VSI-interface1配置从IP地址,该从IP地址作为VXLAN 30内虚拟机的网关地址。

[SwitchC] interface vsi-interface 1

[SwitchC-Vsi-interface1] ip address 20.1.1.1 255.255.255.0 sub

[SwitchC-Vsi-interface1] quit

# 配置VXLAN 30所在的VSI实例和接口VSI-interface1关联,并配置该VSI实例的子网网段为20.1.1.0/24。

[SwitchC] vsi vpnc

[SwitchC-vsi-vpnc] gateway vsi-interface 1

[SwitchC-vsi-vpnc] gateway subnet 20.1.1.0 0.0.0.255

[SwitchC-vsi-vpnc] quit

# 配置策略路由,指定IPv4报文如果未找到匹配的路由表项,则设置报文的下一跳为Switch B上接口VSI-interface1的IP地址20.1.1.2。

[SwitchC] acl advanced 3000

[SwitchC-acl-ipv4-adv-3000] rule 0 permit ip

[SwitchC-acl-ipv4-adv-3000] quit

[SwitchC] policy-based-route vxlan permit node 5

[SwitchC-pbr-vxlan-5] if-match acl 3000

[SwitchC-pbr-vxlan-5] apply default-next-hop 20.1.1.2

[SwitchC-pbr-vxlan-5] quit

# 在VSI虚接口VSI-interface1上应用策略路由。

[SwitchC] interface vsi-interface1

[SwitchC-Vsi-interface1] ip policy-based-route vxlan

[SwitchC-Vsi-interface1] quit

4. 验证配置

(1)      验证分布式VXLAN IP网关设备Switch A

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。

[SwitchA] display interface tunnel 2

Tunnel2

Current state: UP

Line protocol state: UP

Description: Tunnel2 Interface

Bandwidth: 64kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.1.1.1, destination 3.3.3.3

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch A上的VSI虚接口信息,可以看到VSI虚接口处于up状态。

[SwitchA] display interface vsi-interface 1

Vsi-interface1

Current state: UP

Line protocol state: UP

Description: Vsi-interface1 Interface

Bandwidth: 1000000kbps

Maximum transmission unit: 1444

Internet address: 10.1.1.1/24 (primary)

IP packet frame type: Ethernet II, hardware address: 0001-0001-0001

IPv6 packet frame type: Ethernet II, hardware address: 0001-0001-0001

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的VSI虚接口等信息。

[SwitchA] display l2vpn vsi name vpna verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Gateway Interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type

    Tunnel1              0x5000001  Up     Manual

    Tunnel2              0x5000002  Up     Manual

  ACs:

     AC                               Link ID    State

     HGE1/0/1 srv1000                 0          Up

# 查看Switch A上VSI的ARP表项信息,可以看到已学习到了虚拟机的ARP信息。

[SwitchA] display arp

  Type: S-Static   D-Dynamic   O-Openflow   R-Rule   M-Multiport  I-Invalid

IP address      MAC address    VID        Interface/Link ID        Aging Type

11.1.1.4        000c-29c1-5e46 11         Vlan11                   19    D

10.1.1.2        0003-0000-0000 N/A        Vsi1                     20    D

10.1.1.11       0cda-41b5-cf09 N/A        Vsi1                     20    D

10.1.2.2        0004-0000-0000 N/A        Vsi2                     20    D

10.1.2.11       0cda-41b5-cf89 N/A        Vsi2                     20    D

20.1.1.12       0000-fc00-0b01 N/A        Vsi1                     19    D

(2)      验证边界网关设备Switch B

# 查看Switch B上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。

[SwitchB] display interface tunnel 2

Tunnel2

Current state: UP

Line protocol state: UP

Description: Tunnel2 Interface

Bandwidth: 64kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 2.2.2.2, destination 1.1.1.1

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch B上的VSI虚接口信息,可以看到VSI虚接口处于up状态。

[SwitchB] display interface vsi-interface 1

Vsi-interface1

Current state: UP

Line protocol state: UP

Description: Vsi-interface1 Interface

Bandwidth: 1000000kbps

Maximum transmission unit: 1444

Internet address: 10.1.1.2/24 (primary)

IP packet frame type: Ethernet II, hardware address: 0011-2200-0102

IPv6 packet frame type: Ethernet II, hardware address: 0011-2200-0102

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch B上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的VSI虚接口等信息。

[SwitchB] display l2vpn vsi name vpna verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Gateway interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type

    Tunnel1              0x5000001  Up     Manual

    Tunnel2              0x5000002  Up     Manual

# 查看Switch B上VSI的ARP表项信息,可以看到已学习到了虚拟机的ARP信息。

[SwitchB] display arp

  Type: S-Static   D-Dynamic   O-Openflow   R-Rule   M-Multiport  I-Invalid

IP address      MAC address    VID        Interface/Link ID        Aging Type

12.1.1.4        0000-fc00-00ab 12         Vlan12                   14    D

25.1.1.5        4431-9234-24bb 20         Vlan20                   17    D

10.1.1.1        0000-fc00-00ab N/A        Vsi1                     17    D

10.1.1.11       0000-fc00-00ab N/A        Vsi1                     20    D

10.1.2.1        0000-fc00-00bc N/A        Vsi2                     17    D

10.1.1.11       0000-fc00-00bc N/A        Vsi2                     20    D

20.1.1.1        0000-fc00-00aa N/A        Vsi3                     17    D

20.1.1.12       0000-fc00-00aa N/A        Vsi3                     20    D

# 查看Switch B上FIB表项信息,可以看到已学习到了虚拟机的转发表项信息。

[SwitchB] display fib 10.1.1.11

Destination count: 1 FIB entry count: 1

Flag:

  U:Useable   G:Gateway   H:Host   B:Blackhole   D:Dynamic   S:Static

  R:Relay     F:FRR

Destination/Mask   Nexthop         Flag     OutInterface/Token       Label

10.1.1.11/32       10.1.1.11       UH       Vsi1                     Null

[SwitchB] display fib 20.1.1.12

Destination count: 1 FIB entry count: 1

Flag:

  U:Useable   G:Gateway   H:Host   B:Blackhole   D:Dynamic   S:Static

  R:Relay     F:FRR

Destination/Mask   Nexthop         Flag     OutInterface/Token       Label

20.1.1.12/32       20.1.1.12       UH       Vsi1                     Null

(3)      验证主机和广域网互访

虚拟机VM 1、VM 2、VM 3之间可以互访;VM 1、VM 2和VM 3可以与Switch E上接口Vlan-interface20的地址25.1.1.5之间互访。


4 OVSDB-VTEP

4.1  简介

OVSDB(Open vSwitch Database,开源虚拟交换机数据库)控制协议用来实现NVC(Network Virtualization Controller,网络虚拟化控制器)对网络中VTEP设备的管理和部署。

图4-1 OVSDB-VTEP示意图

 

图4-1所示,VTEP设备上维护OVSDB数据库,VXLAN相关配置以表项的形式保存在该数据库中。控制器与VTEP设备上的OVSDB服务器建立连接,二者采用OVSDB控制协议进行交互并操作OVSDB数据库中的数据。OVSDB VTEP服务从OVSDB服务器获取数据库中的数据,将其转变为VXLAN相关配置(例如创建或删除VXLAN、创建或删除VXLAN隧道)下发到设备上。同时,OVSDB VTEP服务也会通过OVSDB服务器,将本地的用户侧接入端口和VXLAN隧道全局源地址信息添加到数据库中,并上报给控制器。

提示

用户可以同时通过命令行和控制器配置VTEP设备。建议不要在VTEP设备上通过命令行删除控制器下发的配置。

 

4.2  协议规范

与OVSDB相关的协议规范有:

·              RFC 7047:The Open vSwitch Database Management Protocol

4.3  OVSDB-VTEP配置任务简介

要实现控制器对VTEP设备的部署,需要在VTEP设备上完成表4-1所示配置。

表4-1 OVSDB-VTEP配置任务简介

配置任务

说明

详细配置

与控制器建立OVSDB连接

与控制器建立主动TCP连接

必选

OVSDB服务器支持同时与多个控制器建立连接,且支持同时建立多种类型的连接

在开启OVSDB服务器之前,必须先进行本配置。如果在开启OVSDB服务器之后修改本配置,那么需要关闭OVSDB服务器后再重新开启,新的连接配置才能生效

4.5.1 

与控制器建立被动TCP连接

4.5.2 

开启OVSDB服务器

必选

4.6 

开启OVSDB VTEP服务

必选

4.7 

配置VXLAN隧道的全局源地址

必选

4.8 

指定用户侧的接入端口

必选

4.9 

开启组播隧道泛洪代理功能

可选

4.10 

 

4.4  配置准备

在进行OVSDB-VTEP相关配置前,需要首先通过l2vpn enable命令开启L2VPN功能。

4.5  与控制器建立OVSDB连接

OVSDB服务器和控制器之间可以建立多种类型的OVSDB连接,设备支持的OVSDB连接类型包括:

·              主动TCP连接:OVSDB服务器主动向控制器发起TCP连接。OVSDB服务器最多可以同时与8个控制器建立主动TCP连接。

·              被动TCP连接:OVSDB服务器监听并接收来自控制器的TCP连接请求。OVSDB服务器只能监听1个端口的TCP连接请求。

4.5.1  与控制器建立主动TCP连接

表4-2 与控制器建立主动TCP连接

操作

命令

说明

进入系统视图

system-view

-

与控制器建立主动TCP连接

ovsdb server tcp ip ip-address port port-number

缺省情况下,不会与控制器建立主动TCP连接

 

4.5.2  与控制器建立被动TCP连接

表4-3 与控制器建立被动TCP连接

操作

命令

说明

进入系统视图

system-view

-

与控制器建立被动TCP连接

ovsdb server ptcp [ port port-number ]

缺省情况下,不会与控制器建立被动TCP连接

 

4.6  开启OVSDB服务器

需要注意的是,为了保证OVSDB服务器能够与控制器建立连接,在开启OVSDB服务器前,必须先配置至少一条与控制器的连接。

表4-4 开启OVSDB服务器

操作

命令

说明

进入系统视图

system-view

-

开启OVSDB服务器

ovsdb server enable

缺省情况下,OVSDB服务器处于关闭状态

 

4.7  开启OVSDB VTEP服务

表4-5 开启OVSDB VTEP服务

操作

命令

说明

进入系统视图

system-view

-

开启OVSDB VTEP服务

vtep enable

缺省情况下,OVSDB VTEP服务处于关闭状态

 

4.8  配置VXLAN隧道的全局源地址

用户需要在VTEP设备上配置VXLAN隧道的全局源地址,该地址会通过OVSDB协议上报给控制器,用于控制器对VTEP设备进行部署和控制。

采用OVSDB对VTEP设备进行部署和控制时,用户不能在VXLAN隧道的Tunnel接口下手工指定源地址,否则会影响控制器对VTEP设备的管理。

表4-6 配置VXLAN隧道的全局源地址

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN隧道的全局源地址

tunnel global source-address ip-address

缺省情况下,未配置VXLAN隧道的全局源地址

 

4.9  指定用户侧的接入端口

为了在控制器上显示VTEP上的端口并对其进行控制,必须在VTEP上将该端口配置为用户侧的接入端口。

表4-7 指定接入侧端口

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

指定当前接口为用户侧的接入端口

vtep access port

缺省情况下,当前接口不是用户侧的接入端口

 

4.10  开启组播隧道泛洪代理功能

开启组播隧道泛洪代理功能后,系统会将控制器下发的组播隧道转换为具有泛洪代理功能的隧道。VXLAN内的广播、组播和未知单播流量将通过具有泛洪代理功能的隧道发送到泛洪代理服务器,由代理服务器进行复制并转发到其他远端VTEP。

采用泛洪代理(服务器复制)方式转发站点间的泛洪流量时,必须开启该功能。

表4-8 开启组播隧道泛洪代理功能

操作

命令

说明

进入系统视图

system-view

-

开启组播隧道泛洪代理功能

vxlan tunnel flooding-proxy

缺省情况下,组播隧道泛洪代理功能处于关闭状态

 

4.11  OVSDB-VTEP典型配置举例

4.11.1  OVSDB-VTEP头端复制配置举例

1. 组网需求

Switch A、Switch B、Switch C为与服务器连接的VTEP设备。虚拟机VM 1、VM 2和VM 3同属于VXLAN 10。通过VXLAN实现不同站点间的二层互联,确保虚拟机在站点之间进行迁移时用户的访问流量不会中断。

具体需求为:

·              通过控制器下发配置,在不同VTEP之间建立VXLAN隧道。

·              站点之间的泛洪流量采用头端复制的方式转发。

2. 组网图

图4-2 OVSDB-VTEP头端复制组网图

 

3. 配置步骤

(1)      配置IP地址、单播路由协议、控制器

请按照图4-2配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。

(2)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchA] ovsdb server tcp ip 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchA] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchA] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchA] interface loopback 0

[SwitchA-LoopBack0] ip address 1.1.1.1 255.255.255.255

[SwitchA-LoopBack0] quit

[SwitchA] tunnel global source-address 1.1.1.1

# 指定接入服务器的接口HundredGigE1/0/1上为用户侧的接入端口。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] vtep access port

[SwitchA-HundredGigE1/0/1] quit

(3)      配置Switch B

# 开启L2VPN功能。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchB] ovsdb server tcp 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchB] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchB] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchB] interface loopback 0

[SwitchB-LoopBack0] ip address 2.2.2.2 255.255.255.255

[SwitchB-LoopBack0] quit

[SwitchB] tunnel global source-address 2.2.2.2

# 指定接入服务器的接口HundredGigE1/0/1上为用户侧的接入端口。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] vtep access port

[SwitchB-HundredGigE1/0/1] quit

(4)      配置Switch C

# 开启L2VPN功能。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchC] ovsdb server tcp ip 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchC] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchC] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchC] interface loopback 0

[SwitchC-LoopBack0] ip address 3.3.3.3 255.255.255.255

[SwitchC-LoopBack0] quit

[SwitchC] tunnel global source-address 3.3.3.3

# 指定接入服务器的接口HundredGigE1/0/1上为用户侧的接入端口。

[SwitchC] interface hundredgige 1/0/1

[SwitchC-HundredGigE1/0/1] vtep access port

[SwitchC-HundredGigE1/0/1] quit

(5)      控制器上进行VXLAN配置(略)

4. 验证配置

(1)      验证VTEP设备(下文以Switch A为例,其它设备验证方法与此类似)

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。

[SwitchA] display interface tunnel

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.1.1.1, destination 2.2.2.2

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的以太网服务实例等信息。

[SwitchA] display l2vpn vsi verbose

VSI Name: evpn2014

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flood proxy

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  Up     Manual      Disabled

  ACs:

    AC                               Link ID    State

    HGE1/0/1 srv2                    0          Up

# 查看Switch A上VSI的MAC地址表项信息,可以看到已学习到的MAC地址信息。

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb   Dynamic  evpn2014                        Tunnel1       Aging

cc3e-5f9c-23dc   Dynamic  evpn2014                        Tunnel2       Aging

--- 2 mac address(es) found  ---

(2)      验证主机

虚拟机VM 1、VM 2、VM 3之间可以互访。

4.11.2  OVSDB-VTEP泛洪代理配置举例

1. 组网需求

Switch A、Switch B、Switch C为与服务器连接的VTEP设备。虚拟机VM 1、VM 2和VM 3同属于VXLAN 10。通过VXLAN实现不同站点间的二层互联,确保虚拟机在站点之间进行迁移时用户的访问流量不会中断。

具体需求为:

·              通过控制器下发配置,在不同VTEP之间建立VXLAN隧道。

·              站点之间的泛洪流量采用泛洪代理(服务器复制)的方式转发。

·              VTEP采用控制器下发的MAC地址表项进行流量转发。

2. 组网图

图4-3 OVSDB-VTEP泛洪代理组网图

 

3. 配置步骤

(1)      配置IP地址、单播路由协议、控制器和服务器

请按照图4-3配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。

(2)      配置Switch A

# 开启L2VPN功能。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchA] ovsdb server tcp ip 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchA] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchA] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchA] interface loopback 0

[SwitchA-LoopBack0] ip address 1.1.1.1 255.255.255.255

[SwitchA-LoopBack0] quit

[SwitchA] tunnel global source-address 1.1.1.1

# 指定接入服务器的接口HundredGigE1/0/1上为用户侧的接入端口。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] vtep access port

[SwitchA-HundredGigE1/0/1] quit

# 在网络侧接口上关闭报文入接口与静态MAC地址表项匹配检查功能。

[SwitchA] interface hundredgige 1/0/2

[SwitchA-HundredGigE1/0/2] undo mac-address static source-check enable

[SwitchA-HundredGigE1/0/2] quit

# 关闭远端MAC地址自动学习功能。

[SwitchA] vxlan tunnel mac-learning disable

# 开启组播隧道泛洪代理功能。

[SwitchA] vxlan tunnel flooding-proxy

(3)      配置Switch B

# 开启L2VPN功能。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchB] ovsdb server tcp ip 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchB] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchB] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchB] interface loopback 0

[SwitchB-LoopBack0] ip address 2.2.2.2 255.255.255.255

[SwitchB-LoopBack0] quit

[SwitchB] tunnel global source-address 2.2.2.2

# 指定接入服务器的接口HundredGigE1/0/1上为用户侧的接入端口。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] vtep access port

[SwitchB-HundredGigE1/0/1] quit

# 在网络侧接口上关闭报文入接口与静态MAC地址表项匹配检查功能。

[SwitchB] interface hundredgige 1/0/2

[SwitchB-HundredGigE1/0/2] undo mac-address static source-check enable

[SwitchB-HundredGigE1/0/2] quit

# 关闭远端MAC地址自动学习功能。

[SwitchB] vxlan tunnel mac-learning disable

# 开启组播隧道泛洪代理功能。

[SwitchB] vxlan tunnel flooding-proxy

(4)      配置Switch C

# 开启L2VPN功能。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchC] ovsdb server tcp 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchC] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchC] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchC] interface loopback 0

[SwitchC-LoopBack0] ip address 3.3.3.3 255.255.255.255

[SwitchC-LoopBack0] quit

[SwitchC] tunnel global source-address 3.3.3.3

# 指定接入服务器的接口HundredGigE1/0/1上为用户侧的接入端口。

[SwitchC] interface hundredgige 1/0/1

[SwitchC-HundredGigE1/0/1] vtep access port

[SwitchC-HundredGigE1/0/1] quit

# 在网络侧接口上关闭报文入接口与静态MAC地址表项匹配检查功能。

[SwitchC] interface hundredgige 1/0/2

[SwitchC-HundredGigE1/0/2] undo mac-address static source-check enable

[SwitchC-HundredGigE1/0/2] quit

# 关闭远端MAC地址自动学习功能。

[SwitchC] vxlan tunnel mac-learning disable

# 开启组播隧道泛洪代理功能。

[SwitchC] vxlan tunnel flooding-proxy

(5)      控制器上进行VXLAN配置(略)

4. 验证配置

(1)      验证VTEP设备(下文以Switch A为例,其它设备验证方法与此类似)

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。

[SwitchA] display interface tunnel

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64kbps

Maximum Transmit Unit: 1464

Internet protocol processing: disabled

Last clearing of counters: Never

Tunnel source 1.1.1.1, destination 2.2.2.2

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的以太网服务实例等信息,其中Tunnel1和Tunnel2为去往SwitchB、SwitchC的隧道,Tunnel3为去往代理服务器的隧道。

[SwitchA] display l2vpn vsi verbose

VSI Name: evpn2014

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flood proxy

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  Up     Manual      Disabled

    Tunnel3              0x5000003  Up     Manual      Enabled

  ACs:

    AC                               Link ID    State

    HGE1/0/1 srv2                    0          Up

# 查看Switch A上VSI的MAC地址表项信息,可以看到控制器下发的MAC地址信息。

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb   OVSDB    evpn2014                        Tunnel1       NotAging

cc3e-5f9c-23dc   OVSDB    evpn2014                        Tunnel2       NotAging

--- 2 mac address(es) found  ---

(2)      验证主机

虚拟机VM 1、VM 2、VM 3之间可以互访。

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!