• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

17-VXLAN配置指导

目录

01-VXLAN配置

本章节下载 01-VXLAN配置  (1.74 MB)

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/ND泛洪抑制

1.5 VXLAN IP网关

1.6 VXLAN支持M-LAG

1.7 协议规范

2 配置VXLAN

2.1 VXLAN配置限制和指导

2.1.1 VXLAN硬件限制

2.1.2 VXLAN软件限制

2.1.3 VXLAN隧道配置限制和指导

2.2 VXLAN配置任务简介

2.3 创建VSI和VXLAN

2.4 创建VXLAN隧

2.5 关联VXLAN与VXLAN隧道

2.6 建立数据帧与VSI的关联

2.6.1 配置限制和指导

2.6.2 配置手工创建的以太网服务实例与VSI关联

2.6.3 配置动态创建的以太网服务实例与VSI关联

2.6.4 配置VLAN与VXLAN关联

2.7 管理本地和远端MAC地址

2.7.1 开启本地MAC地址的日志记录功能

2.7.2 添加静态远端MAC地址

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

2.7.4 配置接口的MAC地址软件学习功能

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

2.8.1 配置准备

2.8.2 配置PIM模式

2.8.3 配置IGMP主机模式

2.9 配置Private VSI

2.10 配置VSI泛洪抑制

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

2.12 配置VXLAN报文检查功能

2.13 配置缺省解封装VXLAN报文功能

2.14 配置ARP泛洪抑制

2.15 配置ND泛洪抑制

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

2.17 配置VXLAN流量统计

2.17.1 配置VSI的报文统计功能

2.17.2 配置AC的报文统计功能

2.18 检测VXLAN隧道的连通性

2.18.1 配置限制和指导

2.18.2 开启VXLAN隧道的连通性检测功能

2.18.3 配置Ping方式检测VXLAN隧道的连通性

2.18.4 配置Tracert方式检测VXLAN隧道的连通性

2.19 VXLAN显示和维护

2.20 VXLAN典型配置举例

2.20.1 VXLAN头端复制配置举例

2.20.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.1.5 VXLAN IP网关代理功能

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

3.2.1 VXLAN IP网关硬件限制

3.2.2 VXLAN IP网关软件限制

3.2.3 VXLAN IP网关用户侧接口板使用限制

3.3 VXLAN IP网关配置任务简介

3.4 VXLAN IP网关配置准备

3.5 配置集中式VXLAN IP网关

3.5.1 配置限制和指导

3.5.2 配置步骤

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

3.6.1 VXLAN IP网关上的配置

3.7 配置分布式VXLAN IP网关

3.7.1 配置限制和指导

3.7.2 配置准备

3.7.3 配置步骤

3.8 静态配置ARP表项

3.9 配置VSI虚接口

3.10 开启VXLAN支持M-LAG功能

3.11 VXLAN IP网关显示和维护

3.12 VXLAN IP网关典型配置举例

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

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

3.12.3 分布式VXLAN IP网关配置举例(IPv4网络)

3.12.4 IPv4 VXLAN支持M-LAG配置举例(直连模式peer-link链路)

3.12.5 IPv4 VXLAN支持M-LAG配置举例(隧道模式peer-link链路)

4 VXLAN数据中心互联

4.1 VXLAN数据中心互联简介

4.1.1 VXLAN数据中心互联典型组网

4.1.2 VXLAN数据中心互联工作机制

4.2 VXLAN数据中心互联配置限制和指导

4.3 VXLAN数据中心互联配置任务简介

4.4 创建VXLAN-DCI隧道

4.5 关联VXLAN与VXLAN-DCI隧道

4.6 配置VSI虚接口

4.7 为VSI指定网关接口

4.8 VXLAN数据中心互联显示和维护

4.9 VXLAN数据中心互联典型配置举例

5 OVSDB-VTEP

5.1 简介

5.2 协议规范

5.3 OVSDB-VTEP配置任务简介

5.4 配置准备

5.5 与控制器建立OVSDB连接

5.5.1 与控制器建立主动SSL连接

5.5.2 与控制器建立被动SSL连接

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

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

5.6 开启OVSDB服务器

5.7 开启OVSDB VTEP服务

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

5.9 指定用户侧的接入端口

5.10 开启禁止控制器下发的ACL在VTEP上生效功能

5.11 OVSDB-VTEP典型配置举例

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

 


1 VXLAN简介

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

VXLAN具有如下特点:

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

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

1.1  VXLAN网络模型

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

站点网络和Underlay网络既可以是IPv4网络也可以是IPv6网络。

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

 

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

·     用户终端(Terminal):用户终端设备可以是PC机、无线终端设备、服务器上创建的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)     发现远端VTEP,在VTEP之间建立VXLAN隧道,并将VXLAN隧道与VXLAN关联。

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

(3)     学习用户终端的MAC地址。

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

1.3.2  识别报文所属的VXLAN

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

VTEP采用如下几种方式在数据帧和VXLAN之间建立关联:

·     将以太网服务实例与VSI关联:以太网服务实例在二层以太网接口上创建,它定义了一系列匹配规则(匹配接口接收到的所有报文、匹配所有携带VLAN Tag的报文、匹配所有不携带VLAN Tag的报文等)。从二层以太网接口上接收到的、与规则匹配的数据帧均属于指定的VSI/VXLAN。

·     将VLAN与VXLAN关联:VTEP接收到的该VLAN的数据帧均属于指定的VXLAN。

VTEP从指定VLAN或以太网服务实例接收到数据帧后,根据关联方式判断报文所属的VXLAN。

在VXLAN中,与VSI关联的以太网服务实例称为AC(Attachment Circuit,接入电路)。

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

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

 

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

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

1.3.3  学习MAC地址

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

·     本地MAC地址学习

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

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

·     远端MAC地址学习

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

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

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

¡     通过BGP EVPN学习:在VTEP上运行BGP EVPN,通过BGP EVPN将本地MAC地址及其所属的VXLAN信息通告给远端VTEP。远端VTEP接收到该信息后,在VXLAN对应VSI的MAC地址表中添加MAC地址表项。EVPN的详细介绍请参见“EVPN配置指导”。

¡     通过OpenFlow下发:OpenFlow控制器以流表的形式向VTEP设备下发远端MAC地址表项。OpenFlow的详细介绍请参见“OpenFlow配置指导”。

¡     通过OVSDB下发:控制器通过OVSDB协议向VTEP设备下发远端MAC地址表项。

通过不同方式学习到的远端MAC地址优先级由高到低依次为:

·     静态配置、OpenFlow下发、OVSDB下发的MAC地址优先级相同,且优先级最高。

·     通过BGP EVPN学习的MAC地址优先级,且优先级次之。

·     动态学习的MAC地址优先级最低。

1.3.4  接入模式

接入模式分为VLAN接入模式和Ethernet接入模式两种。

1. VLAN接入模式

如果以太网服务实例上的匹配规则为encapsulation untagged,则该模式下,VTEP从本地站点接收到不携带VLAN tag的数据帧后,转发该数据帧;VTEP发送以太网帧到本地站点时,不会为其添加VLAN Tag。

如果以太网服务实例上配置了其他匹配规则,则在该模式下,从本地站点接收到的和发送给本地站点的以太网帧必须带有VLAN Tag。

·     VTEP从本地站点接收到以太网帧后,删除该帧的所有VLAN Tag,再转发该数据帧;

·     VTEP发送以太网帧到本地站点时,为其添加本地站点的VLAN Tag。

采用VLAN接入模式时,以太网服务实例上的匹配规则不能为encapsulation default

采用该模式时,VTEP不会传递VLAN Tag信息,不同站点可以独立地规划自己的VLAN,不同站点的不同VLAN之间可以互通。

2. Ethernet接入模式

在该模式下,从本地站点接收到的和发送给本地站点的以太网帧可以携带VLAN Tag,也可以不携带VLAN Tag。

·     VTEP从本地站点接收到以太网帧后,保持该帧的VLAN Tag信息不变,转发该数据帧;

·     VTEP发送以太网帧到本地站点时,不会为其添加VLAN Tag。

采用该模式时,VTEP会在不同站点间传递VLAN Tag信息,不同站点的VLAN需要统一规划,否则无法互通。

1.3.5  转发单播流量

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

1. 站点内流量

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

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

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

2. 站点间流量

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

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

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

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

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

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

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

(6)     VTEP 2从接口Interface A的VLAN 20内将数据帧发送给Terminal 7。

1.3.6  转发泛洪流量

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

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

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

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

 

 

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

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

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

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

说明

IPv6网络作为Underlay网络时不支持组播路由方式转发泛洪流量。

 

数据中心网络中需要通过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隧道。

1.4  ARP/ND泛洪抑制

ARP/ND泛洪抑制功能可以减少ARP/ND泛洪的次数,避免广播发送的ARP请求或组播发送的ND请求报文占用核心网络带宽。

ARP/ND泛洪抑制功能的工作机制为:

(1)     VTEP从本地站点或VXLAN隧道接收到ARP/ND请求和ARP/ND应答报文后,根据该报文在本地建立ARP/ND泛洪抑制表项。

(2)     后续当VTEP收到本站点内用户终端请求其它用户终端MAC地址的ARP/ND请求时,如果VTEP上不存在该请求对应的ARP/ND泛洪抑制表项,则丢弃该请求或将ARP/ND请求泛洪到核心网。如果VTEP上存在对应的ARP/ND泛洪抑制表项,则根据ARP/ND泛洪抑制模式处理该请求:

¡     使用设备代答模式时,VTEP不转发ARP/ND请求报文,而是直接代替目标IP/IPv6对应的设备回应ARP/ND应答报文。此ARP/ND应答报文的发送端IP/IPv6地址为ARP/ND请求报文的目标IP/IPv6地址;ARP应答报文内部的发送端MAC地址和链路层的源MAC地址均为ARP泛洪抑制表项中目标IP地址对应的MAC地址,ND应答报文的链路层的源MAC地址为ND泛洪抑制表项中目标IPv6地址对应的MAC地址。

¡     使用单播转发模式时,VTEP将ARP请求报文内部的目标MAC地址和链路层的目的MAC地址均修改为泛洪抑制表项中与目标IP地址对应的MAC地址,将ND请求报文的链路层的目的MAC地址修改为泛洪抑制表项中与目标IPv6地址对应的MAC地址,然后单播转发ARP/ND请求报文。

设备代答模式占用的系统资源较少。单播转发模式虽然占用更多的系统资源,但是可以减少由于泛洪抑制表项未及时更新造成的ARP/ND表项学习错误。

为了避免报文被错误的丢弃,在ARP/ND泛洪抑制表项建立之前,建议不要丢弃无对应的泛洪抑制表项的ARP/ND请求。

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

 

图1-8所示,以ARP的设备代答模式、泛洪无对应泛洪抑制表项的ARP/ND请求为例,泛洪抑制的处理过程如下:

(1)     用户终端Terminal 1发送ARP请求,获取Terminal 7的MAC地址。

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

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

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

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

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

(7)     在VTEP 1上建立ARP泛洪抑制表项后,用户终端Terminal 4发送ARP请求,获取Terminal 1或Terminal 7的MAC地址。

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

(9)     在VTEP 3上建立ARP泛洪抑制表项后,用户终端Terminal 10发送ARP请求,获取Terminal 1的MAC地址。

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

1.5  VXLAN IP网关

VXLAN可以为分散的物理站点提供二层互联。如果要为VXLAN站点内的虚拟机提供三层业务,则需要在网络中部署VXLAN IP网关,以便站点内的虚拟机通过VXLAN IP网关与外界网络或其他VXLAN网络内的虚拟机进行三层通信。

VXLAN IP网关的详细介绍,请参见“3 VXLAN IP网关”。

1.6  VXLAN支持M-LAG

说明

目前,本功能仅支持IPv4站点网络和IPv4网络作为Underlay网络。

VXLAN利用M-LAG(Multichassis link aggregation,跨设备链路聚合)功能将两台物理设备连接起来虚拟成一台设备,使用该虚拟设备作为VTEP(既可以是仅用于二层转发的VTEP,也可以是VXLAN IP网关),可以避免VTEP单点故障对网络造成影响,从而提高VXLAN网络的可靠性。M-LAG的详细介绍,请参见“二层技术-以太网交换配置指导”中的“M-LAG”。

图1-9 VXLAN支持M-LAG组网图

 

图1-9所示,VXLAN支持M-LAG功能的工作机制包括:

·     同步MAC地址和ARP信息

作为M-LAG设备的两台VTEP通过peer-link链路连接,在peer-link链路上同步MAC地址和ARP信息,以确保两台VTEP上的MAC地址和ARP信息保持一致。peer-link链路连接既可以是以太网聚合链路,也可以是VXLAN隧道。作为peer-link链路的以太网聚合链路称为直连模式peer-link链路,作为peer-link链路的VXLAN隧道称为隧道模式peer-link链路。

说明

作为peer-link链路的VXLAN隧道自动与设备上的所有VXLAN关联。

 

·     使用相同的隧道源IP地址

跨设备链路聚合的两台VTEP使用相同的隧道源IP地址,与其他VTEP设备建立VXLAN隧道。

·     备份双挂AC的用户侧链路

在用户侧,两台VTEP均通过以太网链路接入同一台虚拟机,跨设备在两条链路间建立二层聚合接口,将该聚合接口配置为AC(在聚合接口上创建以太网服务实例、配置报文匹配规则并关联以太网服务实例与VSI),则该AC称为双挂AC。VXLAN M-LAG组网中采用双挂AC,来避免单条以太网链路故障导致虚拟机无法访问网络。

¡     采用直连模式peer-link链路时,用户侧链路备份机制为:将二层聚合接口配置为AC后,VTEP会在peer-link链路上自动创建具有相同报文匹配规则、关联相同VSI的AC。当一台VTEP上的AC故障后,从VXLAN隧道上接收到的、发送给该AC的报文将通过peer-link链路转发到另一台VTEP,该VTEP根据peer-link链路上配置的AC判断报文所属VSI,并转发该报文,从而保证转发不中断。

¡     采用隧道模式peer-link链路时,用户侧链路备份机制为:如果一台VTEP上的AC故障,则该VTEP从VXLAN隧道上接收到发送给故障AC的报文后,为报文添加VXLAN封装,封装的VXLAN ID为故障AC所属VSI对应的VXLAN ID,并通过作为peer-link链路的VXLAN隧道将其转发到另一台VTEP。该VTEP根据VXLAN ID判断报文所属的VSI,并转发该报文。

·     单挂AC互通

在VXLAN M-LAG组网中,组成M-LAG系统的两台VTEP上AC配置可能不一致,若某个AC仅连接到其中一台VTEP,则该AC称为单挂AC。组成M-LAG系统的两台VTEP下不同单挂AC的互通通过peer-link链路来实现。

¡     采用直连模式peer-link链路时,单挂AC互通机制为:将接口配置为单挂AC后,VTEP会在peer-link链路上自动创建具有相同报文匹配规则、关联相同VSI的AC。当从单挂AC上收到报文后,将通过peer-link链路转发到另一台VTEP,该VTEP根据peer-link链路上配置的AC判断报文所属VSI,并转发该报文。

¡     采用隧道模式peer-link链路时,单挂AC互通机制为:当从单挂AC上收到报文后,为报文添加VXLAN封装,封装的VXLAN ID为单挂AC所属VSI对应的VXLAN ID,并通过作为peer-link链路的VXLAN隧道将其转发到另一台VTEP。该VTEP根据VXLAN ID判断报文所属的VSI,并转发该报文。

1.7  协议规范

与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配置限制和指导

2.1.1  VXLAN硬件限制

1. 二层VXLAN用户侧端口限制

VXLAN用户侧端口必须位于FD/FE/SG系列接口板或以下接口板上:

·     LSQM1SRP8X2QE0主控板

·     下列SC系列接口板:LSQM2GP24TSSC0、LSQM2GP44TSSC0、LSQM2GT24PTSSC0、LSQM2GT24TSSC0、LSQM2GT48SC0、LSQM4GV48SC0、LSQM3GP44TSSC0

·     EC系列接口板

2. 二层VXLAN公网侧端口/IRF物理端口限制

·     VXLAN公网侧端口和IRF物理端口必须位于FD/FE/SG系列接口板或LSQM1SRP8X2QE0主控板上。

·     当多个VXLAN隧道共用一个公网侧端口,且该端口位于LSQM1SRP8X2QE0主控板上时,这些隧道必须使用设备的同一个VLAN接口来转发报文。

2.1.2  VXLAN软件限制

·     请不要在VXLAN网络中配置MPLS相关功能。有关MPLS的详细介绍,请参见“MPLS配置指导”。

·     请不要同时配置VXLAN功能和MAC地址认证请求中携带用户IP地址功能,关于MAC地址认证请求中携带用户IP地址功能的详细介绍,请参见“安全配置指导”中的“MAC地址认证”。

·     配置AC(以太网服务实例)时,需要注意:

¡     对于VTEP上配置了AC的端口,如果收到的流量不符合以太网服务实例报文匹配规则,则该流量不支持组播。

¡     VTEP设备的同一端口下不支持同时配置AC和QinQ。有关QinQ的介绍,请参见“二层技术-以太网交换配置指导”中的“QinQ”。

¡     如果端口上配置了mac-based ac命令,或者该端口的不同AC配置了以下任意两种报文匹配规则命令,则该端口不支持透传VXLAN报文。

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

-     encapsulation s-vid vlan-id-list c-vid { vlan-id-list | all }

-     encapsulation c-vid vlan-id-list

¡     有关AC的其他配置限制,请参见“2.6.2  配置手工创建的以太网服务实例与VSI关联

·     VXLAN网络的公网侧端口不支持配置端口优先级信任模式为DSCP。关于优先级信任模式的配置,请参见“ACL和QoS配置指导”中的“QoS”。

·     在组播路由方式下,VTEP通过AC从本地站点接收到的协议报文(如ARP/ND报文、组播协议报文)不能透传到远端站点。

·     在组播路由方式下,不允许在核心设备上创建VXLAN或VXLAN隧道,否则会导致VXLAN报文转发不通。

·     VTEP不支持通过多条等价路由对组播、广播和未知单播流量进行负载分担。

·     VXLAN网络不支持处理带两层以上VLAN标签的报文。

·     系统中配置了Private VLAN功能时,请勿创建4096个以上的VSI,否则VSI索引号大于4095的VSI可能无法转发流量。

2.1.3  VXLAN隧道配置限制和指导

设备暂不支持VXLAN over IPv6隧道和VXLAN-DCI over IPv6隧道。

2.2  VXLAN配置任务简介

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

表2-1 VXLAN配置任务简介

配置任务

说明

详细配置

创建VSI和VXLAN

必选

2.3 

创建VXLAN隧道

必选

2.4 

关联VXLAN与VXLAN隧道

必选

2.5 

建立数据帧与VSI的关联

必选

2.6 

管理本地和远端MAC地址

可选

2.7 

配置VXLAN组播路由泛洪方式

可选

2.8 

配置Private VSI

可选

2.9 

配置VSI泛洪抑制

可选

2.10 

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

可选

2.11 

配置VXLAN报文检查功能

可选

2.12 

配置缺省解封装VXLAN报文功能

可选

2.13 

配置ARP泛洪抑制

可选

2.14 

配置ND泛洪抑制

可选

2.15 

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

可选

2.16 

配置VXLAN流量统计

可选

2.17 

检测VXLAN隧道的连通性

可选

2.18 

 

2.3  创建VSI和VXLAN

表2-2 创建VSI和VXLAN

操作

命令

说明

进入系统视图

system-view

-

开启L2VPN功能

l2vpn enable

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

创建VSI,并进入VSI视图

vsi vsi-name

缺省情况下,不存在VSI

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

description text

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

开启VSI

undo shutdown

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

(可选)配置VSI的MTU值

mtu size

缺省情况下,VSI的MTU值为1500字节

(可选)开启VSI的MAC地址学习功能

mac-learning enable

缺省情况下,VSI的MAC地址学习功能处于开启状态

对于VXLAN,设备不支持关闭VSI的MAC地址学习功能,执行undo mac-learning enable命令后不生效

创建VXLAN,并进入VXLAN视图

vxlan vxlan-id

缺省情况下,不存在VXLAN

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

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

 

2.4  创建VXLAN隧道

1. 功能简介

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

2. 配置限制和指导

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

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

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

3. 配置步骤

表2-3 手工创建VXLAN隧道

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN隧道的全局源地址

tunnel global source-address { ipv4-address | ipv6 ipv6-address }

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

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

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

interface tunnel tunnel-number mode vxlan [ ipv6 ]

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

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

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

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

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

采用OVSDB对VTEP设备进行部署和控制时,不能执行本配置

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

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

配置隧道的目的端地址

destination { ipv4-address | ipv6-address }

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

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

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

tunnel bfd enable destination-mac mac-address

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

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

本命令不能与uRPF功能同时配置,否则,BFD会话无法up。关于uRPF功能的详细介绍请参见“安全配置指导”中的“uRPF”

(可选)退回系统视图

quit

-

(可选)配置保留VXLAN

reserved vxlan vxlan-id

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

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

配置的保留VXLAN不能与mapping vni命令配置的映射远端VXLAN相同。mapping vni命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”

 

2.5  关联VXLAN与VXLAN隧道

1. 功能简介

一个VXLAN可以关联多条VXLAN隧道。一条VXLAN隧道可以关联多个VXLAN,这些VXLAN共用该VXLAN隧道,VTEP根据VXLAN报文中的VXLAN ID来识别隧道传递的报文所属的VXLAN。VTEP接收到某个VXLAN的泛洪流量后,如果采用单播路由泛洪方式,则VTEP将在与该VXLAN关联的所有VXLAN隧道上发送该流量,以便将流量转发给所有的远端VTEP。

2. 配置限制和指导

配置VXLAN与VXLAN隧道关联时,如果指定了relay-agent ipoe参数,则在隧道上开启IPoE报文的代理透传功能,即从VXLAN内接收到的IPoE报文均通过该隧道转发给远端VTEP。

隧道的代理透传功能通常应用在转发控制分离组网中:在UP上为UP与CP之间的VXLAN隧道开启代理透传功能,以便将控制流量(IPoE报文)发送给CP。有关转发控制分离的介绍,请参见《vBRAS系列虚拟宽带远程接入服务器配置指导手册》。

转控分离特性不能和ARP/ND攻击防御以及DHCP/DHCPv6攻击防御功能(例如DHCP/DHCPv6 Snooping信任端口特性)一起使用。

开启IPoE报文的代理透传功能时,具有如下配置限制:

·     该功能不支持VXLAN-DCI隧道。

·     在CP和UP上必须为关联同一个VXLAN的VSI虚接口配置相同的MAC地址。

·     设备的所有公网侧端口上都需要配置undo mac-address static source-check enable命令。

·     设备将不支持DHCP/DHCPv6相关功能。

·     VSI将由CP下发ARP/ND表项,本身不再支持ARP/ND学习(ARP/ND泛洪抑制、ARP/ND Detection、本地代理ARP/本地ND Proxy等相关功能也不支持)。不建议在用户所属的VXLAN部署应用服务器。

·     如果VSI对应的VXLAN关联了多个VXLAN隧道,那么该VSI转发ARP/ND广播报文或DHCP/DHCPv6广播报文时,会转发到所有这些隧道。

·     不支持出方向的VSI报文统计。

·     VSI关联的AC仅支持如下报文匹配规则:

¡     匹配单个外层VLAN标签(encapsulation s-vid vlan-id [ only-tagged ]

¡     匹配外层VLAN标签+内层VLAN标签(encapsulation s-vid { vlan-id | vlan-id-list } c-vid { vlan-id-list | all }

3. 配置步骤

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

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

进入VXLAN视图

vxlan vxlan-id

-

配置VXLAN与VXLAN隧道关联

tunnel { tunnel-number [ relay-agent ipoe ] | all }

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

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

 

2.6  建立数据帧与VSI的关联

2.6.1  配置限制和指导

开启VLAN关联VXLAN功能后,不能再手工或动态创建以太网服务实例,如需创建以太网服务实例,请先执行undo vxlan vlan-based命令关闭VLAN关联VXLAN功能后再创建;反之,手工或动态创建以太网服务实例后,不能再开启VLAN关联VXLAN功能,如需开启该功能,请先删除所有的以太网服务实例后再开启。

2.6.2  配置手工创建的以太网服务实例与VSI关联

1. 功能简介

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

只有使用Ethernet接入模式的以太网服务实例,才可以修改该以太网服务实例上入方向和出方向报文的VLAN标签。修改方式包括添加标签、映射标签和剥离标签。关于修改入方向/出方向报文VLAN标签的配置限制和指导,请参见“VXLAN命令参考”中的rewrite inbound tagrewrite outbound tag命令。

2. 配置限制和指导

注意

·     请不要在同一端口下同时配置VLAN映射和配置以太网服务实例匹配多个VLAN标签(encapsulation命令中vlan-id-list参数指定多个VLAN);否则会导致报文转发异常,必须删除冲突配置并重启端口所在接口板才能恢复业务。有关VLAN映射的介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN映射”。

·     encapsulation命令中匹配的外层VLAN不能再配置其他业务(包括二层、三层业务)。

 

为确保转发正常,端口上以太网服务实例的报文匹配规则需要与该端口上允许通过的VLAN、VLAN报文是否带Tag配置保持一致。当端口上以太网服务实例的报文匹配规则为encapsulation { default | tagged | untagged }时,该端口需要允许缺省VLAN通过。

当接入模式为VLAN时,如果端口接收到的报文不带Tag,需要配置报文匹配规则为encapsulation untagged

存在以下情况时,请用xconnect vsi命令指定接入模式为Ethernet。

·     以太网服务实例匹配了多个外层或内层VLAN标签(encapsulation命令中vlan-id-list参数指定了多个VLAN)。

·     以太网服务实例采用缺省的报文匹配规则(encapsulation default)。

·     以太网服务实例匹配携带VLAN标签的报文(encapsulation tagged)。

当以太网服务实例匹配了多个VLAN标签时(encapsulation命令中vlan-id-list参数指定了多个VLAN),需要注意:

·     该以太网服务实例只匹配携带VLAN标签的报文。

·     该以太网服务实例所在端口不支持802.1X、MAC地址认证或端口安全功能。有关802.1X、MAC地址认证和端口安全的介绍,请参见“安全配置指导”。

·     如果在以太网服务实例上修改入方向/出方向报文的VLAN标签(rewrite inbound tagrewrite outbound tag命令),请不要在该以太网服务实例或它的所在端口上配置DHCP相关功能,否则会导致功能异常。有关DHCP的介绍,请参见“三层技术-IP业务配置指导”中的“DHCP概述”。

·     同一接口下不同以太网服务实例,不能配置匹配相同外层VLAN tag不同内层VLAN tag的报文匹配规则。

同一个接口下为不同以太网服务实例配置不同的报文匹配规则时,有如下限制:

·     仅当这些以太网服务实例上配置的encapsulation命令均同时指定s-vid参数和c-vid vlan-id-list时,允许内层VLAN ID范围(c-vid vlan-id-list)存在交叉;其他情况下,不同以太网服务实例下匹配的外层VLAN ID范围(s-vid vlan-id-list)或内层VLAN ID范围(c-vid vlan-id-list)均不能有交叉。

·     encapsulation tagged命令和带有s-vidc-vid参数的encapsulation命令互斥,不能同时配置。

·     请不要同时配置以下三种命令,否则可能导致部分以太网服务实例不能正常工作。

¡     encapsulation s-vid vlan-id-list [ only-tagged ]

¡     encapsulation s-vid vlan-id-list c-vid { vlan-id-list | all }

¡     encapsulation c-vid vlan-id-list

仅当以太网服务实例的报文匹配规则为encapsulation untaggedencapsulation s-vid vlan-id [ only-tagged ]时,它的所在端口支持MAC地址认证功能。

以太网服务实例支持与生成树功能同时配置。报文匹配规则为encapsulation untaggedencapsulation s-vid vlan-id-list的以太网服务实例所在的端口开启了生成树功能后,以太网服务实例能够根据生成树的计算结果进行状态变化(如阻塞或维持正常转发状态等)。其他报文匹配规则的以太网服务实例不能根据生成树的计算结果进行状态变化。有关生成树的详细介绍,请参见“二层技术-以太网交换配置指导”中的“生成树”。

3. 配置步骤

表2-5 配置手工创建的以太网服务实例与VSI关联

操作

命令

说明

进入系统视图

system-view

-

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

·     进入二层以太网接口视图:
interface
interface-type interface-number

·     进入二层聚合接口视图:
interface bridge-aggregation
interface-number

-

将二层接口加入本地站点VLAN

配置端口的链路类型

port link-type { access | trunk | hybrid }

缺省情况下,所有端口的链路类型均为Access类型

将当前端口加入本地站点VLAN

·     port access vlan vlan-id

·     port trunk permit vlan { vlan-id-list | all }

·     port hybrid vlan vlan-id-list { tagged | untagged }

三者选其一

本地站点VLAN必须是设备上已创建的VLAN

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

service-instance instance-id

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

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

·     encapsulation s-vid vlan-id-list [ only-tagged ]

·     encapsulation s-vid vlan-id c-vid { vlan-id-list | all }

·     encapsulation s-vid vlan-id-list c-vid vlan-id-list

·     encapsulation c-vid vlan-id-list

·     encapsulation { default | tagged | 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 } | microsegment microsegment-id | on-demand ] [ track track-entry-number&<1-3> ]

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

配置本功能时,如果不指定access-mode参数,将采用缺省接入模式VLAN

 

2.6.3  配置动态创建的以太网服务实例与VSI关联

1. 功能简介

802.1X或MAC地址认证为用户下发授权VSI、Guest VSI、Auth-Fail VSI或Critical VSI后,将用户信息(接入端口、所属VLAN、MAC地址)及VSI信息通知给VXLAN。VXLAN根据用户信息动态创建以太网服务实例,并将其与VSI关联。802.1X和MAC地址认证的详细介绍,请参见“安全配置指导”中的“802.1X”和“MAC地址认证”。

动态创建的以太网服务实例仅支持通过MAC地址方式判断接口接收到的报文是否属于该AC:检查报文携带的源MAC地址是否与以太网服务实例匹配的MAC地址相同。只有二者相同,报文才属于该AC。

2. 配置限制和指导

配置本功能时,必须采用MAC地址认证或基于MAC接入控制的802.1X认证,并开启动态创建的以太网服务实例匹配MAC地址功能。

配置本功能时,需要注意:

·     用户侧端口必须位于FD/FE/SG系列接口板或LSQM1SRP8X2QE0主控板上。

·     配置了mac-based ac命令的端口不支持源MAC地址相同、VLAN不同的用户同时接入。

·     用户侧端口仅支持链路类型为Access或Trunk。

·     如果用户侧端口接收到的报文不带Tag或带的Tag等于端口缺省VLAN,则该端口仅支持转发不带Tag的报文。

·     如果要同时配置以太网服务实例的报文匹配规则,仅支持encapsulation s-vid vlan-id [ only-tagged ]命令。

·     同一接口上源MAC地址相同的报文只能匹配到一个动态创建的以太网服务实例。

·     二层聚合接口的成员端口上无法动态创建以太网服务实例。

3. 配置步骤

802.1X或MAC地址认证中,接入认证设备上配置了Guest VSI、Auth-Fail VSI、Critical VSI,或远程AAA服务器为认证成功用户下发了授权VSI,则接入认证设备上会自动地创建以太网服务实例,并将其与Guest VSI、Auth-Fail VSI、Critical VSI或授权VSI关联。

在接入认证设备上开启动态创建的以太网服务实例匹配MAC地址功能。

表2-6 开启动态创建的以太网服务实例匹配MAC地址功能

操作

命令

说明

进入系统视图

system-view

-

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

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

开启动态创建的以太网服务实例匹配MAC地址功能

mac-based ac

缺省情况下,动态创建的以太网服务实例匹配MAC地址功能处于关闭状态,即动态创建的以太网服务实例只匹配VLAN

 

2.6.4  配置VLAN与VXLAN关联

1. 功能简介

开启VLAN关联VXLAN功能,并在VLAN视图下配置与该VLAN关联的VXLAN后,如果存在属于该VLAN的接口,则自动在该接口上创建编号为当前VLAN ID、匹配外层VLAN tag为当前VLAN ID的以太网服务实例,并将该以太网服务实例与指定VXLAN对应的VSI关联,从而确保属于该VLAN的数据帧均通过指定的VSI转发。

2. 配置限制和指导

将VLAN与VXLAN关联后,该VLAN内将不能进行普通的二层转发,该VLAN对应的VLAN接口也不能进行三层转发。

与VXLAN关联的VLAN数目、允许这些VLAN通过的Trunk类型的端口数目较多时,AC创建和删除过程可能会耗费一定的时间,VXLAN、EVPN等相关操作需要等待AC创建、删除完成后才会响应。

3. 配置准备

本配置中指定的与VLAN关联的VXLAN需要通过vxlan命令创建。

4. 配置步骤

操作

命令

说明

进入系统视图

system-view

-

开启VLAN关联VXLAN功能

vxlan vlan-based

缺省情况下,VLAN关联VXLAN功能处于关闭状态

进入VLAN视图

vlan vlan-id

本配置中指定的VLAN不能为VLAN 1

配置VLAN与指定的VXLAN关联

vxlan vni vxlan-id

缺省情况下,未指定与VLAN关联的VXLAN

本配置中指定的VXLAN ID不能为EVPN组网中的L3VNI

 

2.7  管理本地和远端MAC地址

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

远端MAC地址表项可以静态添加。

2.7.1  开启本地MAC地址的日志记录功能

开启本地MAC地址的日志记录功能后,VXLAN会立即根据已经学习到的本地MAC地址表项生成日志信息,之后在增加或删除本地MAC地址时也将产生日志信息。生成的日志信息将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。

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

操作

命令

说明

进入系统视图

system-view

-

开启本地MAC地址的日志记录功能

vxlan local-mac report

缺省情况下,本地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关联,否则配置将失败

 

说明

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

 

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

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

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

操作

命令

说明

进入系统视图

system-view

-

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

vxlan tunnel mac-learning disable

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

 

2.7.4  配置接口的MAC地址软件学习功能

本功能适用于SDN(Software Defined Network,软件定义网络)组网。

在SDN组网中,设备将接口学习到的MAC地址上传给控制器,控制器把收到的MAC地址下发给其它远端设备,以减少不必要的广播流量。

接口的MAC地址学习方式包括:

·     硬件学习:接口通过硬件学习MAC地址。软件周期性地检查硬件是否学习到新的MAC地址,把学到的地址上传控制器处理。硬件学习方式下需等待软件检查周期的到来,控制器获取MAC地址的速度较慢。

·     软件学习:接口通过软件学习MAC地址。软件把学到的MAC地址下发给硬件,同时上传控制器处理。软件学习方式下不需等待软件检查周期的到来,控制器获取MAC地址的速度较快。

需要注意的是,开启接口的MAC地址软件学习功能后,大量的MAC地址学习可能对系统造成冲击,不建议用户在大量MAC地址频繁变化的情况下开启本功能。

表2-10 配置接口的MAC地址软件学习功能

操作

命令

说明

进入系统视图

system-view

-

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

·     进入二层以太网接口视图:
interface
interface-type interface-number

·     进入二层聚合接口视图:
interface bridge-aggregation
interface-number

-

开启接口的MAC地址软件学习功能

l2vpn mac-address software-learning enable

缺省情况下,接口的MAC地址软件学习功能处于关闭状态,设备采用硬件方式学习MAC地址

 

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

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

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

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

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

2.8.1  配置准备

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

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

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

2.8.2  配置PIM模式

表2-11 配置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隧道的源端地址

本命令指定的组播地址和源IP地址不能与MVXLAN IPv4地址族视图下data-group命令(或default-group命令)、source命令指定的组播地址和源IP地址同时相同。MVXLAN的详细介绍,请参见“EVPN配置指导”中的“组播VXLAN”

进入接口视图

interface interface-type interface-number

Loopback接口和与核心设备相连的接口上均需要使能PIM协议

在接口上使能PIM协议

pim sm

二者选其一

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

pim dm

 

2.8.3  配置IGMP主机模式

采用该模式时,必须使用VTEP上网络侧接口的IP地址作为组播报文的源IP地址,并在该接口上开启IGMP协议的主机功能。

表2-12 配置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都要加入相同的组播组

必须使用VTEP上网络侧接口的IP地址作为组播报文的源IP地址

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

interface interface-type interface-number

-

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

igmp host enable

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

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

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

 

2.9  配置Private VSI

1. 功能简介

数据中心网络中,同一服务器上的VM通常划分到同一网段。这些VM在服务器内部可以直接互访,无法实现安全隔离。若出于安全性等方面的考虑,需要基于VM属性、操作系统、名称等,对同一服务器上的VM进行安全隔离,则可以通过配合使用本功能及服务器上的Private VLAN功能来实现。

在VTEP设备上配置本功能,并在服务器上配置Private VLAN功能后,服务器会将该服务器上VM之间的互访流量通过AC发送给VTEP设备,VTEP根据配置对流量进行隔离或执行安全策略等。

Private VSI功能将VSI划分为Primary VSI和Secondary VSI:

·     Primary VSI:用于不同Secondary VSI之间的三层互通,一个Primary VSI可以关联多个Secondary VSI。

·     Community:表示VSI为Secondary VSI,且允许同一Secondary VSI内各AC之间二层互通。

·     Isolated:表示VSI为Secondary VSI,且不允许同一Secondary VSI内各AC之间二层互通。

图2-1 Private VSI示意图

 

图2-1所示,服务器上配置Private VLAN实现不同VM之间的隔离:

·     VLAN 10为Primary VLAN。

·     VLAN 2、VLAN 5、VLAN 8为Secondary VLAN。

VTEP设备上配置Private VSI实现不同AC之间的隔离:

·     VSI 10为Primary VSI,关联的VXLAN ID为10,AC的报文匹配规则为匹配VLAN 10的报文。

·     VSI 2为Community类型的Secondary VSI,关联的VXLAN ID为2,AC的报文匹配规则为匹配VLAN 2的报文。

·     VSI 5为Community类型的Secondary VSI,关联的VXLAN ID为5,AC的报文匹配规则为匹配VLAN 5的报文。

·     VSI 8为Community类型的Secondary VSI,关联的VXLAN ID为8,AC的报文匹配规则为匹配VLAN 8的报文。

·     配置VSI虚接口1,开启VSI接口的本地ARP/ND代理功能,将VSI虚接口作为上述VSI的网关接口,用于实现不同Secondary VSI之间的三层互通。

·     所有VTEP发送给VM的报文只能通过Primary VSI的AC转发出去。

以VM 1访问VM 3为例,报文转发过程为:

(2)     服务器将VM 1发送的VLAN 2的报文转发给VTEP,报文的目的IP为VM 3的IP地址,目的MAC为VSI虚接口1的MAC地址。

(3)     VTEP从VSI 1关联的AC接收到报文后,将该报文转发到VSI虚接口1。

(4)     VSI虚接口1查找ARP表项找到出接口,将报文重新封装后从出接口上关联Primary VSI 10的AC将报文转发出去。

服务器收到报文后,将报文转发给VM 3。

2. 配置限制和指导

配置Private VSI时,存在如下限制:

·     关联Primary VSI的以太网服务实例的报文匹配规则建议配置为匹配服务器上Primary VLAN的报文。

·     关联Secondary VSI的以太网服务实例的报文匹配规则建议配置为匹配服务器上Secondary VLAN的报文。

·     Private VLAN和Private VSI为一一对应关系,即一个Private VLAN只能对应一个Private VSI。

·     需要通过Private VSI进行三层转发时,Primary VSI和Secondary VSI都必须指定网关接口,并且需要指定同一个VSI虚接口为网关接口。并且,Private VSI和VSI虚接口需要满足以下要求:

¡     在指定为网关接口的VSI虚接口上,需要配置本地ARP/ND代理功能,否则无法实现Secondary VSI之间的三层互通。

¡     在Primary VSI上,需要配置gateway subnet命令,指定VSI所属的子网网段为VSI虚接口的IP地址所在网段。

·     配置AC关联Private VSI时,存在如下限制:

¡     Primary VSI在同一个物理接口下最多只能关联一个AC。

¡     多个Primary VSI不能关联同一个Secondary VSI。

¡     如果一个物理接口下存在关联了Secondary VSI的AC,那也必须要存在关联了该Secondary VSI对应的Primary VSI的AC,否则Private VSI功能不生效。

·     同一Primary VSI最多关联8个Secondary VSI。

3. 配置步骤

表2-13 配置Primary VSI

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

开启Private VSI功能,并配置VSI为Primary VSI

private-vsi primary

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

配置Primary VSI关联的Secondary VSI

private-vsi secondary vsi-name&<1-8>

缺省情况下,Primary VSI未关联Secondary VSI

 

表2-14 配置Secondary VSI

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

开启Private VSI功能,并配置VSI为Secondary VSI

private-vsi { community | isolated }

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

 

2.10  配置VSI泛洪抑制

1. 功能简介

缺省情况下,VTEP从本地站点内接收到目的MAC地址为广播、未知单播和未知组播的数据帧后,会在该VXLAN内除接收接口外的所有本地接口和VXLAN隧道上泛洪该数据帧,将该数据帧发送给VXLAN内的所有站点;VTEP从VXLAN隧道接收到目的MAC地址为广播、未知单播和未知组播的数据帧后,会在该VXLAN内的所有本地接口上泛洪该数据帧。通过本配置可以手工禁止某类数据帧在VXLAN内泛洪,以减少网络中的泛洪流量。

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

2. 配置限制和指导

VXLAN M-LAG场景中,配置flooding disable all后,本地泛洪流量仍会转发给相同VSI内的peer-link链路;配置flooding disable all all-direction可以禁止将本地泛洪流量转发给相同VSI内的peer-link链路。

3. 配置步骤

表2-15 配置VSI泛洪抑制

操作

命令

说明

 

进入系统视图

system-view

-

 

进入VSI视图

vsi vsi-name

-

关闭VSI的泛洪功能

flooding disable { all | { broadcast | unknown-multicast | unknown-unicast } * } [ all-direction | dci ]

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

数据中心互联场景中,如果只想禁止向数据中心间的VXLAN-DCI隧道泛洪,而数据中心内部的VXLAN隧道可以泛洪,请指定dci参数

 

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

selective-flooding mac-address mac-address

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

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

 

 

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

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

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

操作

命令

说明

进入系统视图

system-view

-

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

vxlan udp-port port-number

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

 

2.12  配置VXLAN报文检查功能

通过本配置可以实现对接收到的VXLAN报文内层封装的以太网数据帧是否携带VLAN Tag进行检查:VTEP接收到VXLAN报文并对其解封装后,若内层以太网数据帧带有VLAN Tag,则丢弃该VXLAN报文。

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

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

操作

命令

说明

进入系统视图

system-view

-

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

vxlan invalid-vlan-tag discard

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

 

2.13  配置缺省解封装VXLAN报文功能

1.功能简介

在仅建立单向VXLAN隧道的组网中,本端未建立指向对端的VXLAN隧道,对端建立指向本端的VXLAN隧道时,会导致本端从对端接收的VXLAN报文无法解封装而被丢弃。配置本功能后,如果本端接收到的VXLAN报文的目的地址为BGP建立连接使用的源地址、虚拟VTEP/ED地址(evpn m-lag group)、M-LAG系统的本地地址(evpn m-lag local)或指定源接口的IPv4地址,则本端会解封装该报文,不会丢弃。可以通过如下两种方式配置本功能:

·     vxlan default-decapsulation source方式:本端接收到的VXLAN报文的目的地址为指定源接口的IPv4地址,本端会解封装该报文,不会丢弃。

·     vxlan default-decapsulation enable方式:本端接收到的VXLAN报文的目的地址为BGP建立连接使用的源地址、虚拟VTEP/ED地址(evpn m-lag group)或M-LAG系统的本地地址(evpn m-lag local),本端都会解封装该报文,不会丢弃。

2.配置限制和指导

只有指定的接口上配置了IPv4地址,本功能才生效。

如果在建立单向IPv4 VXLAN隧道的组网中配置本功能后,又建立了以指定源接口下配置的IPv4/IPv6地址为源地址的、指向对端的IPv4 VXLAN隧道,则本功能失效。

3.开启缺省解封装指定IPv4 VXLAN报文功能

表2-18 开启缺省解封装指定IPv4 VXLAN报文功能

操作

命令

说明

进入系统视图

system-view

-

开启缺省解封装指定IPv4 VXLAN报文功能

vxlan default-decapsulation source interface interface-type interface-number

缺省情况下,缺省解封装指定IPv4 VXLAN报文功能处于关闭状态

2.14  配置ARP泛洪抑制

配置ARP泛洪抑制时需要注意:

·     当同时执行flooding disable命令关闭了VSI的泛洪功能时:

¡     如果要与远端站点互通,则两端VTEP都需要为对端站点添加静态远端MAC地址表项(相关命令为mac-address static)。

¡     建议通过mac-address timer命令配置动态MAC地址的老化时间大于25分钟(ARP泛洪抑制表项的老化时间),以免MAC地址在ARP泛洪抑制表项老化之前老化,产生黑洞MAC地址。

¡     如果用户终端通过DHCP获取IP地址,为使DHCP请求报文能在VSI内泛洪,需要在VTEP上配置VXLAN的AC链路为DHCP Snooping信任端口(dhcp snooping trust),并配置VXLAN隧道接口为DHCP Snooping信任接口(dhcp snooping trust tunnel)。相关配置请参见“三层技术-IP业务配置指导”中的“DHCP Snooping”。

·     VLAN接入模式下,如果以太网服务实例的报文匹配规则为encapsulation s-vid vlan-id,且匹配的VLAN为接口的缺省VLAN,则VTEP对匹配ARP泛洪抑制表项的ARP请求进行应答时,ARP应答报文的VLAN tag将被删除后再转发给用户终端。如果用户终端要求接收到的ARP应答报文携带VLAN tag,则会导致该用户终端无法学习到ARP表项。在这种情况下,建议不要将以太网服务实例匹配的VLAN指定为接口的缺省VLAN。

·     当VXLAN网络采用组播路由(核心复制)方式转发泛洪流量时:

¡     若需要使用ARP泛洪抑制功能,必须保证所有VTEP设备均开启ARP泛洪抑制功能;

¡     如果需要和其他厂商的VTEP设备互通,则不能使用ARP泛洪抑制功能。

表2-19 配置ARP泛洪抑制

操作

命令

说明

 

进入系统视图

system-view

-

 

进入VSI视图

vsi vsi-name

-

(可选)配置ARP泛洪抑制模式

arp suppression mode { proxy-reply | unicast-forward } [ mismatch-discard ]

缺省情况下,开启ARP泛洪抑制功能后,ARP泛洪抑制模式为设备代答模式。当ARP请求报文的目标IP地址不是本端设备的IP地址,且不能匹配本端设备的ARP泛洪抑制表项时,广播转发ARP请求报文

开启ARP泛洪抑制功能

arp suppression enable [ no-broadcast ]

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

 

 

2.15  配置ND泛洪抑制

1. 配置限制和指导

LSQM1SRP8X2QE0主控板不支持ND泛洪抑制功能(ipv6 nd suppression enable)。

2. 配置步骤

表2-20 配置ND泛洪抑制

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

(可选)配置ND泛洪抑制模式

ipv6 nd suppression mode { proxy-reply | unicast-forward } [ mismatch-discard ]

缺省情况下,开启ND泛洪抑制功能后,ND泛洪抑制模式为设备代答模式。当NS报文的目标IPv6地址不是本端设备的IPv6地址,且不能匹配本端设备的ND泛洪抑制表项时,广播转发NS报文

开启ND泛洪抑制功能

ipv6 nd suppression enable [ no-broadcast ]

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

 

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

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

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

表2-21 关闭远端ARP/ND自动学习功能

操作

命令

说明

进入系统视图

system-view

-

关闭远端ARP自动学习功能

vxlan tunnel arp-learning disable

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

关闭远端ND自动学习功能

vxlan tunnel nd-learning disable

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

 

2.17  配置VXLAN流量统计

2.17.1  配置VSI的报文统计功能

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

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

操作

命令

说明

进入系统视图

system-view

-

进入VXLAN所在VSI视图

vsi vsi-name

-

开启VSI的报文统计功能

statistics enable

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

 

2.17.2  配置AC的报文统计功能

1. 配置限制和指导

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

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

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

操作

命令

说明

进入系统视图

system-view

-

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

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

进入以太网服务实例视图

service-instance instance-id

-

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

statistics enable

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

 

3. 配置VLAN下对应AC的报文统计功能

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

开启VLAN下对应AC的报文统计功能

ac statistics enable

缺省情况下,VLAN下对应AC的报文统计功能处于关闭状态

本功能用来对VLAN与VXLAN关联方式下自动生成的AC进行报文统计。开启本功能前,必须先执行vxlan vlan-based命令开启VLAN关联VXLAN功能

 

2.18  检测VXLAN隧道的连通性

2.18.1  配置限制和指导

仅VXLAN over IPv4隧道支持本功能。

在VXLAN M-LAG组网中,作为M-LAG设备的VTEP使用相同的虚拟IP与对端VTEP建立的VXLAN通道不支持本功能。

2.18.2  开启VXLAN隧道的连通性检测功能

1. 功能简介

在隧道源节点上检测VXLAN隧道的连通性前,需要在VXLAN隧道的尾节点上执行本配置,否则隧道尾节点无法正常识别检测报文,导致检测失败。

2. 配置限制和指导

如果隧道源节点执行ping vxlan/tracert vxlan命令时指定-r reply-mode参数为3,则还需要在隧道源节点上执行本命令。

3. 配置步骤

表2-24 开启VXLAN隧道的连通性检测功能

操作

命令

说明

进入系统视图

system-view

-

开启VXLAN隧道的连通性检测功能

overlay oam enable

缺省情况下,VXLAN隧道的连通性检测功能处于关闭状态

 

2.18.3  配置Ping方式检测VXLAN隧道的连通性

1. 功能简介

在VXLAN组网中,VTEP之间通过VXLAN隧道传输数据报文。当VTEP间出现丢包或断流现象时,可以通过本功能检测VTEP设备间VXLAN隧道的连通性。具体检测过程为:

(1)     本端VTEP设备通过tunnel-source source-address tunnel-destination dest-address指定的VXLAN隧道向远端VTEP发送VXLAN Echo Request报文,该报文采用VXLAN封装。

(2)     远端VTEP设备收到VXLAN Echo Request报文后,回复VXLAN Echo Reply报文。

(3)     本端设备根据是否收到VXLAN Echo Reply报文、收到VXLAN Echo Reply报文的信息,判断该VXLAN隧道的连通性,并输出相应的统计信息。

2. 配置限制和指导

VTEP基于VXLAN Echo Request报文的源UDP端口号进行负载分担。当两个VTEP之间的VXLAN隧道对应多条路径时,为了保证检测结果的准确性,可以通过配置负载分担参数实现对多条路径的遍历检测。可以通过如下两种方式指定VXLAN Echo Request报文的源UDP端口号:

·     直接指定源UDP端口号的起始值和结束值,使设备发出的VXLAN Echo Request报文中的UDP端口号从起始值开始,依次+1,直到递增到结束值。

·     通过指定不同的MAC地址、IP地址以及协议类型参数动态计算VXLAN的源UDP号。

配置本功能时,指定负载分担参数仅改变VXLAN Echo Request报文的源UDP端口号并不会改变设备发送的VXLAN Echo Request报文的其他信息。

指定vxlan-source-udpport vxlan-source-udpport [ end-vxlan-src-udpport ]参数后,每个源UDP端口号对应VXLAN Echo Request报文的发送数目由-c count参数决定。

通过本功能检测VXLAN隧道的连通性时,需要在VXLAN隧道的对端VTEP上配置overlay oam enable命令。

3. 配置步骤

表2-25 配置Ping方式检测VXLAN隧道的连通性

操作

命令

说明

配置Ping方式检测VXLAN隧道的连通性

ping vxlan [ -a inner-src-address | -c count | -m interval | -r reply-mode | -t timeout | -tos tos-value ] * vxlan-id vxlan-id tunnel-source source-address tunnel-destination dest-address [ destination-udpport dest-port ] [ vxlan-source-address vxlan-source-address ] [ load-balance { vxlan-source-udpport vxlan-source-udpport [ end-vxlan-src-udpport ] | source-address lb-src-address destination-address lb-dest-address protocol { udp | lb-protocol-id } source-port lb-src-port destination-port lb-dest-port source-mac lb-source-mac destination-mac lb-destination-mac } ]

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

 

2.18.4  配置Tracert方式检测VXLAN隧道的连通性

1. 功能简介

在VXLAN中,VTEP之间通过VXLAN隧道传输数据报文。当VTEP间出现丢包或断流现象时,可以通过本功能查看VXLAN隧道所经过的路径,并根据应答信息对错误点进行定位。具体检测过程为:

(1)     本端VTEP设备通过tunnel-source source-address tunnel-destination dest-address指定的VXLAN隧道向远端VTEP发送VXLAN Echo Request报文,该报文采用VXLAN封装且IPv4报文头部的TTL字段取值设置为1。

(2)     下一个节点收到报文后,TTL字段的值变成0,会向首节点(即本端VTEP)发送ICMP的TTL超时报文。

(3)     本端VTEP收到ICMP报文后,将TTL字段的取值加1(此时设置为2)继续发送VXLAN Echo Request报文。

(4)     下游节点收到报文后,依次将TTL减1,直到TTL为0,该节点会向首节点发送ICMP报文;若为目的节点则向首节点发送VXLAN Echo Reply报文。

(5)     本端VTEP依次重复上述过程,直至TTL达到最大值或收到远端VTEP发送的应答报文。

(6)     本端VTEP设备根据是否收到应答报文、收到应答报文的信息,判断该VXLAN隧道的连通性,并输出相应的统计信息。

2. 配置限制和指导

VTEP基于VXLAN Echo Request报文的源UDP端口号进行负载分担。当两个VTEP之间的VXLAN隧道对应多条路径时,为了保证检测结果的准确性,可以通过配置负载分担参数实现对多条路径的遍历。可以通过如下两种方式指定VXLAN Echo Request报文的源UDP端口号:

·     直接指定源UDP端口号的起始值和结束值,使设备发出的VXLAN Echo Request报文中的UDP端口号从起始值开始,依次+1,直到递增到结束值。

·     通过指定不同的MAC地址、IP地址以及协议类型参数动态计算VXLAN的源UDP号。

配置本功能时,指定负载分担参数仅改变VXLAN Echo Request报文的源UDP端口号并不会改变设备发送的VXLAN Echo Request报文的其他信息。

通过本命令检测VXLAN隧道的连通性时,需要在VXLAN隧道的对端VTEP上配置overlay oam enable命令。

3. 配置步骤

表2-26 配置Tracert方式检测VXLAN隧道的连通性

操作

命令

说明

配置Tracert方式检测VXLAN隧道的连通性

tracert vxlan [ -a inner-src-address | -h ttl-value | -r reply-mode | -t timeout ] * vxlan-id vxlan-id  tunnel-source source-address tunnel-destination dest-address [ destination-udpport dest-port ] [ vxlan-source-address vxlan-source-address ] [ load-balance { vxlan-source-udpport vxlan-source-udpport | source-address lb-src-address destination-address lb-dest-address protocol { udp | lb-protocol-id } source-port lb-src-port destination-port lb-dest-port source-mac lb-source-mac destination-mac lb-destination-mac } ]

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

 

2.19  VXLAN显示和维护

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

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

表2-27 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 | verbose ] | vsi vsi-name mac-address [ dynamic ] [ verbose ] ]

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

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 [ vpn-instance vpn-instance-name ] host group [ group-address | interface interface-type interface-number ] [ verbose ]

显示Tunnel接口信息

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

显示VXLAN隧道接口的信息

display vxlan tunnel-interface [ tunnel number [ verbose ] ]

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

display ipv6 nd suppression vsi [ name vsi-name ] [ slot slot-number ] [ count ]

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

display ipv6 nd suppression vsi [ name vsi-name ] [ chassis chassis-number slot slot-number ] [ count ]

显示VXLAN关联的VXLAN隧道信息

display vxlan tunnel [ vxlan-id vxlan-id ]

清除VSI的ARP泛洪抑制表项

reset arp suppression vsi [ name vsi-name ]

清除VSI的ND泛洪抑制表项

reset ipv6 nd 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.20  VXLAN典型配置举例

2.20.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-2 VXLAN头端复制组网图

3. 配置步骤

(1)     创建VLAN和VLAN接口

根据组网图,完成各个VLAN和VLAN接口的创建,具体配置过程略。

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

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

(3)     配置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

# 配置接口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

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

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/0/1] quit

(4)     配置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与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

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

[SwitchB] interface ten-gigabitethernet 1/0/1

[SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchB-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchB-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchB-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchB-Ten-GigabitEthernet1/0/1] quit

(5)     配置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

# 配置接口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

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

[SwitchC] interface ten-gigabitethernet 1/0/1

[SwitchC-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchC-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchC-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchC-Ten-GigabitEthernet1/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       Type

    XGE1/0/1 srv1000                 0        Up          Manual

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

<SwitchA> display l2vpn mac-address

* - The output interface is issued to another VSI

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.20.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-3 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)     创建VLAN和VLAN接口

根据组网图,完成各个VLAN和VLAN接口的创建,具体配置过程略。

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

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

(3)     配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 使能IP组播路由。

[SwitchA] multicast routing

[SwitchA-mrib] quit

# 创建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

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

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/0/1] quit

(4)     配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 使能IP组播路由。

[SwitchB] multicast routing

[SwitchB-mrib] quit

# 创建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

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

[SwitchB] interface ten-gigabitethernet 1/0/1

[SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchB-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchB-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchB-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchB-Ten-GigabitEthernet1/0/1] quit

(5)     配置Switch C

# 开启L2VPN能力。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 使能IP组播路由。

[SwitchC] multicast routing

[SwitchC-mrib] quit

# 创建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

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

[SwitchC] interface ten-gigabitethernet 1/0/1

[SwitchC-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchC-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchC-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchC-Ten-GigabitEthernet1/0/1] quit

(6)     配置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

(7)     配置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

(8)     配置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

(9)     配置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       Type

    XGE1/0/1 srv1000                 0        Up          Manual

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

<SwitchA> display l2vpn mac-address

* - The output interface is issued to another VSI

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之间单播流量通过VXLAN隧道转发、泛洪流量通过组播VXLAN隧道(MTunnel)转发。

 


3 VXLAN IP网关

3.1  VXLAN IP网关简介

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

说明

本节仅以IPv4网络为例说明VXLAN IP网关的流量转发过程,IPv6网络中的流量转发过程与此类似。

 

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功能(IPv4网络)或本地ND代理功能(IPv6网络)。边界网关(Border)上也需要创建VSI虚接口,并配置IP地址。在分布式VXLAN IP网关上还需要开启以下功能中的一种:

·     ARP/ND泛洪抑制功能:开启本功能后,二层流量查找MAC地址表进行转发,三层流量查找ARP/ND表项进行转发。

·     本地代理ARP功能或本地ND代理功能:开启本功能后,所有流量都通过查找ARP表项或ND表项进行三层转发。下文均以此功能为例,介绍分布式VXLAN IP网关中的通信过程。

网关可以通过多种方式生成ARP表项和ND表项,下文以根据ARP协议和ND协议动态学习表项来介绍分布式VXLAN IP网关中的通信过程。

2. 相同VXLAN内不同站点的用户终端通信过程

图3-6所示,以Terminal 1访问Terminal 4为例,相同VXLAN内不同站点的用户终端的通信过程为:

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

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

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

(4)     GW 1将接收到的ARP请求消息中的源MAC地址修改为VSI虚接口10的MAC地址,在VXLAN 10内向本地站点和远端站点广播发送该ARP请求。

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

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

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

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

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

3. 不同VXLAN间不同站点的用户终端通信过程

图3-6所示,以Terminal 1访问Terminal 5为例,不同VXLAN的用户终端的通信过程为:

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

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

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

(4)     GW 1在所有VXLAN内向本地站点和远端站点广播发送ARP请求,获取Terminal 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)     Terminal 5收到ARP请求后,学习GW 2的ARP信息(IP为20.1.1.1、MAC为GW 2上VSI虚接口20的MAC),并发送ARP应答消息给本地网关GW 2。

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

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

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

4. 用户终端与外部网络的三层通信过程

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

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

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

图3-6所示,以Terminal 1访问外部网络内的主机50.1.1.1为例,用户终端访问外部网络的三层通信过程为:

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

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

(3)     Terminal 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根据获取到的信息为Terminal 1发送的报文封装链路层地址(10.1.1.2对应的MAC地址),并通过VXLAN隧道将报文发送给Border。

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

3.1.5  VXLAN IP网关代理功能

当设备上存在不同类型的接口板,且部分接口板支持VXLAN IP网关功能、部分接口板不支持VXLAN IP网关功能时,支持VXLAN IP网关功能的接口板可以代理不支持VXLAN IP网关功能的接口板处理VXLAN IP网关业务,使得不支持VXLAN IP网关功能的接口板也能承担VXLAN IP网关角色。

支持代理其他接口板处理VXLAN IP网关业务的接口板包括:

·     SG系列接口板

·     FD系列接口板

·     FE系列接口板

需要注意的是,上述接口板只有处于支持VXLAN IP网关功能的工作模式下时,才能代理其他接口板处理VXLAN IP网关业务,有关单板的工作模式的详细介绍,请参见“基础配置指导”中的“设备管理”。

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

3.2.1  VXLAN IP网关硬件限制

1. 三层VXLAN公网侧端口限制

配置VXLAN IP网关时,报文不支持从VXLAN IP网关转发到三层以太网子接口或三层聚合子接口。

配置VXLAN IP网关时,VXLAN公网侧端口必须位于以下接口板上:

·     FD系列接口板

·     FE系列接口板

·     SG系列接口板

2. 三层VXLAN用户侧端口限制

配置VXLAN IP网关时,VXLAN用户侧端口除了不允许位于LSQM1SRP8X2QE0主控板 之外,所属接口板类型限制与二层VXLAN用户侧端口限制一致,请参见“VXLAN配置指导”中的“配置VXLAN/VXLAN配置限制和指导”。

3. VXLAN IP网关场景限制

对于如下接口板:

·     FD系列接口板

·     FE系列接口板

·     SG系列接口板

如果存在流量从三层聚合接口收到并转发至VXLAN隧道的场景,请确保该三层聚合接口及其所有成员接口的MAC地址相同,否则可能导致报文携带错误的VLAN Tag。

3.2.2  VXLAN IP网关软件限制

同一台VTEP上,对于支持提供VXLAN公网侧端口的接口板,当GRE公网侧端口和GRE业务环回组的成员端口均位于这些接口板时,该VTEP上支持GRE隧道和VXLAN隧道互通。关于GRE的介绍,请参见“三层技术-IP业务配置指导”中的“GRE”。

VXLAN IP网关功能不支持与以下特性组合使用:Super VLAN、Private VLAN。有关Super VLAN和Private VLAN的介绍,请参见“二层技术-以太网交换配置指导”中的“Super VLAN”和“Private VLAN”。

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

VXLAN IP网关功能仅支持以下几种以太网服务实例:

·     报文匹配规则为encapsulation s-vid vlan-idencapsulation untagged,且接入模式为VLAN的以太网服务实例。

·     报文匹配规则为encapsulation s-vid vlan-id c-vid vlan-id,且接入模式为VLAN的以太网服务实例。该AC仅支持与配置相同的本地AC三层互通;与远端VTEP三层通信时,VXLAN隧道报文内层封装的以太网数据帧会携带c-vid(Customer VLAN ID)标签。

VXLAN IP网关接口(VSI虚接口)仅支持如下协议类型:Telnet、TFTP、DHCP、ARP、ND、RADIUS、SSH、NTP、SNMP、NETCONF。有关DHCP、ARP和ND协议的介绍,请分别参见“三层技术-IP业务配置指导”中的“DHCP”、“ARP”和“IPv6基础”;有关RADIUS和SSH协议的介绍,请分别参见“安全配置指导”中的“AAA”和“SSH”;有关NTP、SNMP和NETCONF协议的介绍,请分别参见“网络管理和监控配置指导”中的“NTP”、“SNMP”和“NETCONF”。

如需VSI虚接口和AC上的OSPFv3功能生效,则与该AC直连的对端接口需要修改发送IPv6报文的MTU,将其修改为与该AC所属的VSI关联的VSI虚接口一致的MTU值。有关OSPFv3的详细介绍,请参见“三层技术-IP路由配置指导”中的“OSPFv3”;有关MTU修改的详细介绍,请参见“三层技术-IP业务配置指导”中的“IP性能优化”。

3.2.3  VXLAN IP网关用户侧接口板使用限制

以下接口板的端口上,如果以太网服务实例匹配两层VLAN标签的报文(encapsulation命令配置了s-vidc-vid参数),则该以太网服务实例关联的VSI不支持VXLAN IP网关功能。

·     下列SC系列接口板:LSQM2GP24TSSC0、LSQM2GP44TSSC0、LSQM2GT24PTSSC0、LSQM2GT24TSSC0、LSQM2GT48SC0、LSQM3GP44TSSC0、LSQM4GV48SC0

·     EC系列接口板

对于以上接口板,还有如下使用限制:

·     设备上必须至少安装一块VXLAN IP网关公网侧使用的接口板(请参见“三层VXLAN公网侧端口限制”),才支持VXLAN三层转发。

·     对于这些接口板的端口上以太网实例关联的VSI,当不同的VSI指定同一网关接口时,该接口不支持应用ACL进行报文过滤。有关应用ACL进行报文过滤的介绍,请参见“ACL和QoS配置指导”中的“ACL”。

·     请不要将这些接口板上的三层以太网接口/三层聚合接口关联到VPN实例(ip binding vpn-instance),否则从这些接口上进入的流量不能进行VXLAN三层转发。有关VPN实例的配置,请参见“MPLS配置指导”中的“MPLS L3VPN”。

·     从这些接口板的端口进入的流量进行VXLAN三层转发时,入接口和出接口不能是同一个AC。

·     当用户流量从这些单板进入,并通过FD系列接口板、FE系列接口板或SG系列接口板的出接口进行VXLAN三层转发时,这些VXLAN报文内层封装的以太网数据帧会携带用户VLAN Tag。

3.3  VXLAN IP网关配置任务简介

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

·     创建VSI和VXLAN。

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

要实现控制器对VTEP设备的部署,需要在VTEP设备上完成表3-1所示配置。

表3-1 VXLAN IP网关配置任务简介

配置任务

说明

详细配置

配置VXLAN IP网关

配置集中式VXLAN IP网关

必选

请根据实际组网,选择其中一种配置方式

3.5 

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

3.6 

配置分布式VXLAN IP网关

3.7 

静态配置ARP表项

可选

3.8 

配置VSI虚接口

可选

3.9 

开启VXLAN支持M-LAG功能

可选

3.10 

3.4  VXLAN IP网关配置准备

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

·     创建VSI和VXLAN。

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

3.5  配置集中式VXLAN IP网关

3.5.1  配置限制和指导

在集中式VXLAN IP网关组网中,请不要执行local-proxy-arp enable命令开启本地代理ARP功能。

3.5.2  配置步骤

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

操作

命令

说明

进入系统视图

system-view

-

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

interface vsi-interface vsi-interface-id

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

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

配置VSI虚接口的IP地址

·     (IPv4网络)
ip address ipv4-address { mask | mask-length }

·     (IPv6网络)
IPv6地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

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

退回系统视图

quit

-

进入VXLAN所在VSI视图

vsi vsi-name

-

为VSI指定网关接口

gateway vsi-interface vsi-interface-id

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

 

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

3.6.1  VXLAN IP网关上的配置

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

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

操作

命令

说明

进入系统视图

system-view

-

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

interface vsi-interface vsi-interface-id

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

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

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

配置VSI虚接口的IP地址

·     (IPv4网络)
ip address ipv4-address { mask | mask-length }

·     (IPv6网络)
IPv6地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

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

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

配置VSI虚接口的MAC地址

mac-address mac-address

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

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

退回系统视图

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.7  配置分布式VXLAN IP网关

3.7.1  配置限制和指导

分布式VXLAN IP网关上所有公网侧端口都需要配置undo mac-address static source-check enable命令。

分布式网关上不能ping通该网关学习到的远端主机的ARP/ND表项对应的IPv4/IPv6地址。

分布式VXLAN IP网关连接IPv4站点网络时,所有网关上都需要为相同VSI虚接口配置相同的MAC地址。如果网关同时连接IPv4站点网络和IPv6站点网络,则不同分布式VXLAN IP网关上需要为相同VSI虚接口配置不同的链路本地地址。

在分布式VXLAN IP网关设备上,如果开启了ARP/ND泛洪抑制功能,并在VSI虚接口上开启了本地代理ARP/ND功能,则只有ARP/ND泛洪抑制功能生效。请在分布式VXLAN IP网关设备上选择一种进行配置,建议不要在分布式VXLAN IP网关设备上同时开启这两个功能。

3.7.2  配置准备

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

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

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

3.7.3  配置步骤

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

操作

命令

说明

进入系统视图

system-view

-

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

interface vsi-interface vsi-interface-id

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

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

配置VSI虚接口的IP地址或IPv6地址

·     配置VSI虚接口的IP地址:
ip
address ip-address { mask | mask-length } [ sub ]

·     配置VSI虚接口的IPv6地址:
IPv6地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

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

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

distributed-gateway local

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

开启本地代理ARP功能

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

对于IPv4网络,必选

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

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

开启本地ND代理功能

local-proxy-nd enable

对于IPv6网络,必选

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

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

退回系统视图

quit

-

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

arp distributed-gateway dynamic-entry synchronize

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

分布式VXLAN IP网关上开启本地代理ARP功能时,需要开启本功能,以保证所有网关都能学习到ARP表项

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

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

ipv6 nd distributed-gateway dynamic-entry synchronize

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

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

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

进入VXLAN所在VSI视图

vsi vsi-name

-

为VSI指定网关接口

gateway vsi-interface vsi-interface-id

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

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

gateway subnet { ipv4-address wildcard-mask | ipv6-address prefix-length }

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

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

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

通过本功能指定VSI所属的子网网段后,不会限制学习到该VSI的ARP/ND表项所属的网段,该VSI可能会学习到共用同一个VSI虚接口的其他VSI所属子网网段的ARP/ND表项。

 

3.8  静态配置ARP表项

VXLAN IP网关既可以动态学习ARP表项,也可以通过本配置静态创建ARP表项。

表3-5 静态配置ARP表项

操作

命令

说明

进入系统视图

system-view

-

静态配置本地ARP表项

arp static ip-address mac-address vsi-interface vsi-interface-id interface-type interface-number service-instance instance-id vsi vsi-name [ vpn-instance vpn-instance-name ]

缺省情况下,不存在本地ARP表项

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

静态配置远端ARP表项

arp static ip-address mac-address vsi-interface vsi-interface-id tunnel number vsi vsi-name [ vpn-instance vpn-instance-name ]

缺省情况下,不存在远端ARP表项

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

 

3.9  配置VSI虚接口

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

注意

VSI虚接口下的某些配置恢复到缺省情况后,会对设备上当前运行的业务产生影响。建议您在执行本配置前,完全了解其对网络产生的影响。

 

表3-6 配置VSI虚接口

操作

命令

说明

进入系统视图

system-view

-

进入VSI虚接口视图

interface vsi-interface vsi-interface-id

-

配置VSI虚接口的MAC地址

mac-address mac-address

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

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

description text

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

(可选)配置接口的MTU

mtu size

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

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

bandwidth bandwidth-value

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

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

default

-

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

arp send-rate pps

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

本功能仅限制VSI虚接口触发的ARP请求报文的发送速率

开启VSI虚接口

undo shutdown

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

 

3.10  开启VXLAN支持M-LAG功能

1. 功能简介

VXLAN利用M-LAG功能将两台物理设备连接起来虚拟成一台设备,使用该虚拟设备作为VTEP(既可以是仅用于二层转发的VTEP,也可以是VXLAN IP网关),可以避免VTEP单点故障对网络造成影响,从而提高VXLAN网络的可靠性。

2. VXLAN支持M-LAG的硬件限制、与其他软件特性之间的限制

M-LAG接口对应的M-LAG组中的成员端口作为VXLAN IP网关的公网侧端口时,M-LAG设备上用于建立隧道的VLAN接口不能配置相同的MAC地址。

M-LAG接口对应的M-LAG组中的成员端口作为VXLAN IP网关的公网侧端口时,M-LAG设备之间必须直连。

M-LAG接口对应聚合接口的成员端口、peer-link接口对应聚合接口的成员端口、作为peer-link链路的VXLAN隧道接口所在端口的所属接口板类型限制与VXLAN IP网关的公网侧端口限制相同。请参见“三层VXLAN公网侧端口限制”。

VXLAN M-LAG组网不支持802.1X、MAC地址认证、ND Detection功能。

采用隧道模式peer-link链路时,为确保三层单播流量转发正常,建议在peer-link链路两端端口上关闭报文入接口与静态MAC地址表项匹配检查功能,即,在作为peer-link链路的VXLAN隧道的出接口上配置undo mac-address static source-check enable命令。

在VXLAN M-LAG网络中,以下接口板上的雷达探测功能和三层模式的以太网接口互斥,请不要同时配置:

·     SG系列接口板

以下接口板上的接口不支持作为VXLAN M-LAG组网中的M-LAG接口、peer-link接口以及作为peer-link链路的VXLAN隧道出接口:

·     下列SC系列接口板:LSQM2GP24TSSC0、LSQM2GP44TSSC0、LSQM2GT24PTSSC0、LSQM2GT24TSSC0、LSQM2GT48SC0、LSQM3GP44TSSC0、LSQM4GV48SC0

 

3. 配置限制和指导

在VXLAN M-LAG组网中,不支持部署二层组播功能。

M-LAG的两台VTEP必须使用相同的隧道源IP地址与其他VTEP设备建立VXLAN隧道。

配置采用直连模式peer-link链路的VXLAN支持M-LAG功能时,需要注意:

·     根据用户侧以太网服务实例的报文匹配规则创建peer-link链路上的AC时,用户侧以太网服务实例配置的报文匹配规则只能为匹配报文的外层VLAN tag(encapsulation s-vid vlan-id)或匹配不携带VLAN tag的所有报文(encapsulation untagged),前者AC的接入模式必须为VLAN模式,后者AC的接入模式可以为VLAN模式或Ethernet模式。

·     采用VXLAN ID映射方式生成peer-link链路上动态AC的报文匹配规则,AC的接入模式必须为VLAN模式。

·     配置相同报文匹配规则的以太网服务实例必须关联相同的VSI。

·     跨设备链路聚合的两台VTEP上,同一M-LAG接口以及单挂AC口上以太网服务实例的匹配规则、关联的VSI对应的VXLAN ID必须一致,且只能采用手工方式创建AC。

配置采用隧道模式peer-link链路的VXLAN支持M-LAG功能时,需要注意:

·     用户侧端口所属VLAN的报文不支持通过peer-link链路与远端M-LAG设备互通。

·     建议为VXLAN隧道和作为peer-link链路的VXLAN隧道配置不同的物理接口作为隧道出接口。

·     建议在作为peer-link链路的VXLAN隧道接口上执行tunnel tos命令为封装后的隧道报文配置较高的优先级(数值越大,优先级越高),以确保该隧道上传递的M-LAG协议报文的优先级高于其他隧道上传递的普通数据报文。

·     在作为peer-link链路的VXLAN隧道对应的二层以太网接口上关闭STP功能,以免上行设备错误地阻塞连接M-LAG设备的接口。

·     执行reserved vxlan命令配置保留VXLAN,以便通过该VXLAN转发M-LAG协议报文等。作为M-LAG设备的两台VTEP上必须配置相同的保留VXLAN。

·     跨设备链路聚合的两台VTEP上,M-LAG接口的以太网服务实例匹配规则、关联的VSI对应的VXLAN ID必须一致,且只能采用手工方式创建AC。

作为M-LAG设备的VTEP从M-LAG接口学习到本地MAC地址,并通过peer-link链路将MAC地址同步给远端VTEP(另一台M-LAG设备)后,在本端VTEP上手动删除MAC地址表项,远端VTEP(M-LAG设备)上的MAC地址表项不会随之删除,只能等待MAC地址老化时间到达后,才会删除远端VTEP上的表项。

在M-LAG组网中, 缺省情况下,VSI虚接口关联VSI后,其UP/DOWN状态不受VSI是否关联以太网服务实例的影响。如果VSI未关联以太网服务实例、或关联的以太网服务实例所在的端口DOWN时,VSI虚接口实际上没有业务流量的需求,仍然保持UP状态可能会造成流量转发错误。为了解决此问题,可以在单挂AC关联的VSI上不创建VXLAN,仅关联VSI虚接口,并且配置l2vpn m-lag peer-link ac-match-rule vxlan-mapping命令。这样只有VSI关联了以太网服务实例,且以太网服务实例所在端口UP,其关联的VSI虚接口才能UP。 此机制仅适用于单挂AC互联场景。

4. 配置步骤

操作

命令

说明

配置M-LAG

M-LAG的配置方法请参见“二层技术-以太网交换配置指导”中的“M-LAG”

-

配置保留接口

m-lag mad exclude interface interface-type interface-number

缺省情况下,未配置保留接口

为了避免M-LAG协议将接口置为M-LAG MAD DOWN状态,所有参与VXLAN业务的接口(VSI虚接口、Keepalive链路的接口、VXLAN隧道的公网出接口)配置为保留接口。采用隧道模式peer-link链路时,需要将该隧道配置为保留接口

本命令的详细介绍,请参见“二层技术-以太网交换命令参考”中的“M-LAG”

配置M-LAG的延迟恢复时间

m-lag restore-delay value

缺省情况下,定时器超时时间为300秒

在VXLAN M-LAG组网中,需要配置延迟恢复时间大于等于180秒

本命令的详细介绍,请参见“二层技术-以太网交换命令参考”中的“M-LAG”

配置VXLAN

有关VXLAN的配置请参见“2 配置VXLAN”或“3 VXLAN IP网关

-

(可选)采用直连模式peer-link链路时,配置通过VXLAN ID映射方式生成peer-link链路上动态AC的报文匹配规则

l2vpn m-lag peer-link ac-match-rule vxlan-mapping

缺省情况下,采用直连模式peer-link链路时,peer-link链路上动态AC的报文匹配规则与用户侧链路上AC的报文匹配规则相同

peer-link链路上根据用户侧AC创建AC时,匹配相同外层VLAN Tag的不同以太网服务实例必须关联相同的VSI;采用VXLAN ID映射方式时,VTEP上创建的VXLAN的ID不能大于16000000

本命令的详细介绍,请参见“EVPN”中的“EVPN命令”

 

3.11  VXLAN IP网关显示和维护

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

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

操作

命令

显示M-LAG设备上L2VPN的ARP信息

display l2vpn m-lag arp [ local | remote ] [ count | { public-instance | vpn-instance vpn-instance-name } [ count | ip-address ] ]

显示M-LAG设备上的ARP泛洪抑制表项信息

display l2vpn m-lag arp suppression [ local | remote ] [ count | vsi vsi-name [ count | ip-address ] ]

显示M-LAG设备上L2VPN的MAC地址表信息

display l2vpn m-lag mac-address [ local | remote ] [ count | vsi vsi-name [ count | mac-address ] ]

显示M-LAG设备上的ND信息

display l2vpn m-lag nd [ local | remote ] [ count | { public-instance | vpn-instance vpn-instance-name } [ count | ipv6-address ] ]

显示M-LAG设备上的ND泛洪抑制表项信息

display l2vpn m-lag nd suppression [ local | remote ] [ count | vsi vsi-name [ count | ipv6-address ] ]

显示VSI虚接口信息

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

清除VSI虚接口的统计信息

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

 

3.12  VXLAN IP网关典型配置举例

3.12.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

# 创建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

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

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/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与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

# 创建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

# 创建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

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

[SwitchC] interface ten-gigabitethernet 1/0/1

[SwitchC-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchC-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchC-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchC-Ten-GigabitEthernet1/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: Tunnel1 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-interface100 Interface

Bandwidth: 1000000kbps

Maximum transmission unit: 1500

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    VLAN/VSI   Interface/Link ID        Aging Type

20.1.1.5        000c-29c1-5e46 --         Vlan20                   19    D

10.1.1.11       0000-1234-0001 0          Tunnel2                  20    D

10.1.1.12       0000-1234-0002 0          Tunnel3                  19    D

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

[SwitchB] display fib 10.1.1.11

Destination count: 1 FIB entry count: 1

Flag:

  U:Usable     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       Vsi100                   Null

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

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

3.12.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

# 创建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

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

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/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地址和MAC地址,该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地址和MAC地址,该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.12.3  分布式VXLAN IP网关配置举例(IPv4网络)

说明

本节仅以IPv4站点接入IPv4网络为例,IPv6站点接入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网段的路由。(具体配置过程略)

# 在Switch A、Switch C的公网侧端口上配置undo mac-address static source-check enable命令。(具体配置过程略)

(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的接口Ten-GigabitEthernet1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2

[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000

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

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

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/0/1] quit

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

[SwitchA] interface ten-gigabitethernet 1/0/3

[SwitchA-Ten-GigabitEthernet1/0/3] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/3] port trunk permit vlan 3

[SwitchA-Ten-GigabitEthernet1/0/3] service-instance 1000

[SwitchA-Ten-GigabitEthernet1/0/3-srv1000] encapsulation s-vid 3

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

[SwitchA-Ten-GigabitEthernet1/0/3-srv1000] xconnect vsi vpnb

[SwitchA-Ten-GigabitEthernet1/0/3-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/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的接口Ten-GigabitEthernet1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 4的数据帧。

[SwitchC] interface ten-gigabitethernet 1/0/1

[SwitchC-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchC-Ten-GigabitEthernet1/0/1] port trunk permit vlan 4

[SwitchC-Ten-GigabitEthernet1/0/1] service-instance 1000

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 4

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

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpnc

[SwitchC-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchC-Ten-GigabitEthernet1/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: 64 kbps

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: 1000000 kbps

Maximum transmission unit: 1500

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       Type

    XGE1/0/1 srv1000                 0        Up          Manual

# 查看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    VLAN/VSI   Interface/Link ID        Aging Type

11.1.1.4        000c-29c1-5e46 11         Vlan11 19    D

10.1.1.2        3c8c-400d-867a 0          Tunnel1                  20    D

10.1.1.11       0cda-41b5-cf09 0          0                        20    D

10.1.2.2        3c8c-400d-867a 1          Tunnel1                  20    D

10.1.2.11       0cda-41b5-cf89 1          0                        20    D

20.1.1.12       0001-0001-0001 2          Tunnel2                  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: 64 kbps

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: 1000000 kbps

Maximum transmission unit: 1500

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    VLAN/VSI   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        0001-0001-0001 0          Tunnel2                  17    D

10.1.1.11       0001-0001-0001 0          Tunnel2                  20    D

20.1.1.1        0002-0002-0002 1          Tunnel3                  17    D

20.1.1.12       0002-0002-0002 1          Tunnel3                  20    D

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

[SwitchB] display fib 10.1.1.11

Destination count: 1 FIB entry count: 1

Flag:

  U:Usable    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:Usable    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       Vsi3                     Null

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

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

3.12.4  IPv4 VXLAN支持M-LAG配置举例(直连模式peer-link链路)

1. 组网需求

Switch A、Switch B、Switch C为与服务器连接的分布式VXLAN IP网关,Switch A和Switch B跨设备链路聚合为一台虚拟VXLAN IP网关,采用直连模式peer-link链路。

虚拟机VM 1和VM 2属于VXLAN 10,VM 3属于VXLAN 20,通过分布式VXLAN IP网关实现VM 1、VM 2和VM 3互通。

2. 组网图

图3-10 IPv4 VXLAN支持M-LAG配置组网图

 

3. 配置步骤

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

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

# 配置各接口的IP地址和子网掩码。(具体配置过程略)

# 在IP核心网络内配置OSPF协议,发布各接口IP地址(包括Loopback接口的IP地址)对应网段的路由,确保交换机之间路由可达;并在OSPF邻居两端的接口上配置ospf peer hold-max-cost duration命令,提高M-LAG设备重启后的回切性能。(具体配置过程略)

(2)     配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置peer-link链路上动态AC的报文匹配规则,有如下两个方案。Switch A和Switch B上采用的方案必须相同。

¡     方案一:采用VXLAN ID映射方式生成peer-link链路上动态AC的报文匹配规则。

本方案无需执行其他配置,设备将聚合接口配置为peer-link接口后会自动执行l2vpn m-lag peer-link ac-match-rule vxlan-mapping命令。

¡     方案二:根据用户侧以太网服务实例的报文匹配规则创建peer-link链路上的AC。

使用此方案时,请在将聚合接口位置为peer-link接口后执行如下配置。

[SwitchA] undo l2vpn m-lag peer-link ac-match-rule vxlan-mapping

# 配置M-LAG系统。

[SwitchA] m-lag system-mac 0001-0001-0001

[SwitchA] m-lag system-number 1

[SwitchA] m-lag system-priority 10

[SwitchA] m-lag keepalive ip destination 60.1.1.2 source 60.1.1.1

[SwitchA] m-lag restore-delay 180

# 创建二层聚合接口3,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 3

[SwitchA-Bridge-Aggregation3] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation3] quit

# 将端口Ten-GigabitEthernet1/0/3加入聚合组3中。

[SwitchA] interface ten-gigabitethernet 1/0/3

[SwitchA-Ten-GigabitEthernet1/0/3] port link-aggregation group 3

[SwitchA-Ten-GigabitEthernet1/0/3] quit

# 将二层聚合接口3配置为peer-link接口。

[SwitchA] interface bridge-aggregation 3

[SwitchA-Bridge-Aggregation3] port m-lag peer-link 1

[SwitchA-Bridge-Aggregation3] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation4] quit

# 将端口Ten-GigabitEthernet1/0/1加入聚合组4中。

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-aggregation group 4

[SwitchA-Ten-GigabitEthernet1/0/1] quit

# 将二层聚合接口4加入M-LAG组4中。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port m-lag group 4

[SwitchA-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation5] quit

# 将端口Ten-GigabitEthernet1/0/2加入到聚合组5中。

[SwitchA] interface ten-gigabitethernet 1/0/2

[SwitchA-Ten-GigabitEthernet1/0/2] port link-aggregation group 5

[SwitchA-Ten-GigabitEthernet1/0/2] quit

# 将二层聚合接口5加入M-LAG组5中。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port m-lag group 5

[SwitchA-Bridge-Aggregation5] quit

# 创建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

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

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

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

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

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

¡     指定隧道的目的端地址为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和VXLAN10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

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

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

[SwitchA-vsi-vpna] quit

# 配置Tunnel1和VXLAN20关联。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] vxlan 20

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

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

[SwitchA-vsi-vpnb] quit

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

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port link-type trunk

[SwitchA-Bridge-Aggregation4] port trunk permit vlan 1

[SwitchA-Bridge-Aggregation4] service-instance 1000

[SwitchA-Bridge-Aggregation4-srv1000] encapsulation s-vid 1

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

[SwitchA-Bridge-Aggregation10-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation10-srv1000] quit

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

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port link-type trunk

[SwitchA-Bridge-Aggregation5] port trunk permit vlan 2

[SwitchA-Bridge-Aggregation5] service-instance 1000

[SwitchA-Bridge-Aggregation5-srv1000] encapsulation s-vid 2

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

[SwitchA-Bridge-Aggregation5-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation5-srv1000] quit

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

[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虚接口为分布式本地网关接口。

[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关联。

[SwitchA] vsi vpna

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

[SwitchA-vsi-vpna] quit

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

[SwitchA] vsi vpnb

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

[SwitchA-vsi-vpnb] quit

# 将所有参与VXLAN业务的接口配置为保留接口。

[SwitchA] m-lag mad exclude interface loopback 0

[SwitchA] m-lag mad exclude interface ten-gigabitethernet 1/0/4

[SwitchA] m-lag mad exclude interface vsi-interface 1

[SwitchA] m-lag mad exclude interface vsi-interface 2

[SwitchA] m-lag mad exclude interface vlan-interface 11

(3)     配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

¡     方案一:采用VXLAN ID映射方式生成peer-link链路上动态AC的报文匹配规则。

本方案无需执行其他配置,设备将聚合接口配置为peer-link接口后会自动执行l2vpn m-lag peer-link ac-match-rule vxlan-mapping命令。

¡     方案二:根据用户侧以太网服务实例的报文匹配规则创建peer-link链路上的AC。

使用此方案时,请在将聚合接口位置为peer-link接口后执行如下配置。

[SwitchB] undo l2vpn m-lag peer-link ac-match-rule vxlan-mapping

# 配置M-LAG系统。

[SwitchB] m-lag system-mac 0001-0001-0001

[SwitchB] m-lag system-number 2

[SwitchB] m-lag system-priority 10

[SwitchB] m-lag keepalive ip destination 60.1.1.1 source 60.1.1.2

[SwitchB] m-lag restore-delay 180

# 创建二层聚合接口3,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 3

[SwitchB-Bridge-Aggregation3] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation3] quit

# 将端口Ten-GigabitEthernet1/0/3加入聚合组3中。

[SwitchB] interface ten-gigabitethernet 1/0/3

[SwitchB-Ten-GigabitEthernet1/0/3] port link-aggregation group 3

[SwitchB-Ten-GigabitEthernet1/0/3] quit

# 将二层聚合接口3配置为peer-link接口。

[SwitchB] interface bridge-aggregation 3

[SwitchB-Bridge-Aggregation3] port m-lag peer-link 1

[SwitchB-Bridge-Aggregation3] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation4] quit

# 将端口Ten-GigabitEthernet1/0/1加入聚合组4中。

[SwitchB] interface ten-gigabitethernet 1/0/1

[SwitchB-Ten-GigabitEthernet1/0/1] port link-aggregation group 4

[SwitchB-Ten-GigabitEthernet1/0/1] quit

# 将二层聚合接口4加入M-LAG组4中。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port m-lag group 4

[SwitchB-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation5] quit

# 将端口Ten-GigabitEthernet1/0/2加入聚合组5中。

[SwitchB] interface ten-gigabitethernet 1/0/2

[SwitchB-Ten-GigabitEthernet1/0/2] port link-aggregation group 5

[SwitchB-Ten-GigabitEthernet1/0/2] quit

# 将二层聚合接口5加入M-LAG组5中。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port m-lag group 5

[SwitchB-Bridge-Aggregation5] quit

# 创建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

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

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchB-Loopback0] quit

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

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

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

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

[SwitchB] interface tunnel 1 mode vxlan

[SwitchB-Tunnel1] source 1.1.1.1

[SwitchB-Tunnel1] destination 2.2.2.2

[SwitchB-Tunnel1] quit

# 配置Tunnel1和VXLAN10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

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

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

[SwitchB-vsi-vpna] quit

# 配置Tunnel1和VXLAN20关联。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] vxlan 20

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

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

[SwitchB-vsi-vpnb] quit

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

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port link-type trunk

[SwitchB-Bridge-Aggregation4] port trunk permit vlan 1

[SwitchB-Bridge-Aggregation4] service-instance 1000

[SwitchB-Bridge-Aggregation4-srv1000] encapsulation s-vid 1

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

[SwitchB-Bridge-Aggregation10-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation10-srv1000] quit

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

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port link-type trunk

[SwitchB-Bridge-Aggregation5] port trunk permit vlan 2

[SwitchB-Bridge-Aggregation5] service-instance 1000

[SwitchB-Bridge-Aggregation5-srv1000] encapsulation s-vid 2

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

[SwitchB-Bridge-Aggregation5-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation5-srv1000] quit

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

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

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

[SwitchB-Vsi-interface1] distributed-gateway local

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

[SwitchB-Vsi-interface1] quit

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

[SwitchB] interface vsi-interface 2

[SwitchB-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

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

[SwitchB-Vsi-interface2] distributed-gateway local

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

[SwitchB-Vsi-interface2] quit

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

[SwitchB] arp distributed-gateway dynamic-entry synchronize

# 配置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业务的接口配置为保留接口。

[SwitchB] m-lag mad exclude interface loopback 0

[SwitchB] m-lag mad exclude interface ten-gigabitethernet 1/0/4

[SwitchB] m-lag mad exclude interface vsi-interface 1

[SwitchB] m-lag mad exclude interface vsi-interface 2

[SwitchB] m-lag mad exclude interface vlan-interface 12

(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

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

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchC-Loopback0] quit

# 在Switch C和对端的聚合设备之间建立VXLAN隧道:

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

¡     指定隧道的源端地址为本地接口Loopback0的地址2.2.2.2。

¡     指定隧道的目的端地址为Switch C上接口Loopback0的地址1.1.1.1。

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 2.2.2.2

[SwitchC-Tunnel1] destination 1.1.1.1

[SwitchC-Tunnel1] quit

# 配置Tunnel1和VXLAN10关联。

[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和VXLAN20关联。

[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

# 在接入服务器的接口Ten-GigabitEthernet1/0/3上创建以太网服务实例1000,该实例用来匹配VLAN 4的数据帧。

[SwitchC] interface ten-gigabitethernet 1/0/3

[SwitchC-Ten-GigabitEthernet1/0/3] port link-type trunk

[SwitchC-Ten-GigabitEthernet1/0/3] port trunk permit vlan 4

[SwitchC-Ten-GigabitEthernet1/0/3] service-instance 1000

[SwitchC-Ten-GigabitEthernet1/0/3] encapsulation s-vid 4

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

[SwitchC-Ten-GigabitEthernet1/0/3] xconnect vsi vpnb

[SwitchC-Ten-GigabitEthernet1/0/3] quit

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

[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虚接口为分布式本地网关接口。

[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关联。

[SwitchC] vsi vpna

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

[SwitchC-vsi-vpna] quit

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

[SwitchC] vsi vpnb

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

[SwitchC-vsi-vpnb] quit

4. 验证配置

(1)     以Switch A为例,验证M-LAG设备

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态,并且隧道源地址为1.1.1.1。

[SwitchA]display interface tunnel

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

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: 50506 bytes/sec, 404048 bits/sec, 295 packets/sec

Input: 4 packets, 240 bytes, 0 drops

Output: 257011 packets, 43395523 bytes, 0 drops

# 查看Switch A上的VSI信息,可以看到设备自动在peer-link链路上创建了AC,并将其与VSI关联。

¡     采用VXLAN ID映射方式生成peer-link链路上动态AC的报文匹配规则:

[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

  Statistics              : Disabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel1              0x5000000  UP       Manual      Disabled

  ACs:

    AC                               Link ID  State       Type

    BAGG3 srv1                       0        Up          Dynamic (M-LAG)

    BAGG4 srv1000                    1        Up          Manual

    BAGG5 srv1000                    2        Up          Manual

¡     根据用户侧以太网服务实例的报文匹配规则创建peer-link链路上的AC:

[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

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel1              0x5000001  UP       Manual      Disabled

  ACs:

    AC                                 Link ID    State       Type

    BAGG4 srv1000                      0          Up          Manual

    BAGG3 srv1                         1          Up          Dynamic (M-LAG)

    BAGG5 srv1000                      2          Up          Manual

    BAGG3 srv2                         3          Up          Dynamic (M-LAG)

(2)     验证分布式VXLAN IP网关设备Switch C

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

[SwitchC]display interface tunnel

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

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: 8 packets, 480 bytes, 0 drops

Output: 4 packets, 240 bytes, 0 drops

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

[SwitchC] dis 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

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel1              0x5000001  UP       Manual      Disabled

 

VSI Name: vpnb

  VSI Index               : 1

  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

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 2

  VXLAN ID                : 20

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel1              0x5000001  UP       Manual      Disabled

(3)     验证主机之间可以互访

虚拟机VM 1、VM 2和VM 3之间可以互访。虚拟机与Switch A或Switch B相连的链路断开后,VM 1、VM 2和VM 3仍然可以通过另一台设备互访。

3.12.5  IPv4 VXLAN支持M-LAG配置举例(隧道模式peer-link链路)

1. 组网需求

Switch A、Switch B、Switch C为与服务器连接的分布式VXLAN IP网关,Switch A和Switch B跨设备链路聚合为一台虚拟VXLAN IP网关,采用隧道模式peer-link链路。

虚拟机VM 1和VM 2属于VXLAN 10,VM 3属于VXLAN 20,通过分布式VXLAN IP网关实现VM 1、VM 2和VM 3互通。

2. 组网图

图3-11 IPv4 VXLAN支持M-LAG配置组网图

 

3. 配置步骤

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

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

# 配置各接口的IP地址和子网掩码。(具体配置过程略)

# 在IP核心网络内配置OSPF协议,发布各接口IP地址(包括Loopback接口的IP地址)对应网段的路由,确保交换机之间路由可达;并在OSPF邻居两端的接口上配置ospf peer hold-max-cost duration命令,提高M-LAG设备重启后的回切性能。(具体配置过程略)

(2)     配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置预留VXLAN ID为1234。

[SwitchA] reserved vxlan 1234

# 配置M-LAG系统。

[SwitchA] m-lag system-mac 0001-0001-0001

[SwitchA] m-lag system-number 1

[SwitchA] m-lag system-priority 10

[SwitchA] m-lag keepalive ip destination 11.1.1.1 source 12.1.1.2

[SwitchA] m-lag restore-delay 180

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

[SwitchA] interface loopback 1

[SwitchA-Loopback1] ip address 8.8.8.8 255.255.255.255

[SwitchA-Loopback1] quit

# 在Switch A和Switch B之间手工创建VXLAN隧道Tunnel2,将其配置为peer-link接口,并配置封装后隧道报文的ToS值为100。

[SwitchA] interface tunnel 2 mode vxlan

[SwitchA-Tunnel2] source 8.8.8.8

[SwitchA-Tunnel2] destination 9.9.9.9

[SwitchA-Tunnel2] port m-lag peer-link 1

[SwitchA-Tunnel2] tunnel tos 100

[SwitchA-Tunnel2] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation4] quit

# 将端口Ten-GigabitEthernet1/0/1加入聚合组4中。

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-aggregation group 4

[SwitchA-Ten-GigabitEthernet1/0/1] quit

# 将二层聚合接口4加入M-LAG组4中。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port m-lag group 4

[SwitchA-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation5] quit

# 将端口Ten-GigabitEthernet1/0/2加入到聚合组5中。

[SwitchA] interface ten-gigabitethernet 1/0/2

[SwitchA-Ten-GigabitEthernet1/0/2] port link-aggregation group 5

[SwitchA-Ten-GigabitEthernet1/0/2] quit

# 将二层聚合接口5加入M-LAG组5中。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port m-lag group 5

[SwitchA-Bridge-Aggregation5] quit

# 创建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

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

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

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

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

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

¡     指定隧道的目的端地址为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和VXLAN10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

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

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

[SwitchA-vsi-vpna] quit

# 配置Tunnel1和VXLAN20关联。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] vxlan 20

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

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

[SwitchA-vsi-vpnb] quit

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

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port link-type trunk

[SwitchA-Bridge-Aggregation4] port trunk permit vlan 1

[SwitchA-Bridge-Aggregation4] service-instance 1000

[SwitchA-Bridge-Aggregation4-srv1000] encapsulation s-vid 1

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

[SwitchA-Bridge-Aggregation10-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation10-srv1000] quit

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

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port link-type trunk

[SwitchA-Bridge-Aggregation5] port trunk permit vlan 2

[SwitchA-Bridge-Aggregation5] service-instance 1000

[SwitchA-Bridge-Aggregation5-srv1000] encapsulation s-vid 2

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

[SwitchA-Bridge-Aggregation5-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation5-srv1000] quit

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

[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虚接口为分布式本地网关接口。

[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关联。

[SwitchA] vsi vpna

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

[SwitchA-vsi-vpna] quit

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

[SwitchA] vsi vpnb

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

[SwitchA-vsi-vpnb] quit

# 将所有参与VXLAN业务的接口配置为保留接口。

[SwitchA] m-lag mad exclude interface loopback 0

[SwitchA] m-lag mad exclude interface loopback 1

[SwitchA] m-lag mad exclude interface tunnel 2

[SwitchA] m-lag mad exclude interface vsi-interface 1

[SwitchA] m-lag mad exclude interface vsi-interface 2

[SwitchA] m-lag mad exclude interface vlan-interface 11

(3)     配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 配置预留VXLAN ID为1234。

[SwitchA] reserved vxlan 1234

# 配置M-LAG系统。

[SwitchB] m-lag system-mac 0001-0001-0001

[SwitchB] m-lag system-number 2

[SwitchB] m-lag system-priority 10

[SwitchB] m-lag keepalive ip destination 12.1.1.2 source 11.1.1.1

[SwitchB] m-lag restore-delay 180

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

[SwitchB] interface loopback 1

[SwitchB-Loopback1] ip address 9.9.9.9 255.255.255.255

[SwitchB-Loopback1] quit

# 在Switch A和Switch B之间手工创建VXLAN隧道Tunnel2,将其配置为peer-link接口,并配置封装后隧道报文的ToS值为100。

[SwitchB] interface tunnel 2 mode vxlan

[SwitchB-Tunnel2] source 9.9.9.9

[SwitchB-Tunnel2] destination 8.8.8.8

[SwitchB-Tunnel2] port m-lag peer-link 1

[SwitchB-Tunnel2] tunnel tos 100

[SwitchB-Tunnel2] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation4] quit

# 将端口Ten-GigabitEthernet1/0/1加入聚合组4中。

[SwitchB] interface ten-gigabitethernet 1/0/1

[SwitchB-Ten-GigabitEthernet1/0/1] port link-aggregation group 4

[SwitchB-Ten-GigabitEthernet1/0/1] quit

# 将二层聚合接口4加入M-LAG组4中。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port m-lag group 4

[SwitchB-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation5] quit

# 将端口Ten-GigabitEthernet1/0/2加入聚合组5中。

[SwitchB] interface ten-gigabitethernet 1/0/2

[SwitchB-Ten-GigabitEthernet1/0/2] port link-aggregation group 5

[SwitchB-Ten-GigabitEthernet1/0/2] quit

# 将二层聚合接口5加入M-LAG组5中。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port m-lag group 5

[SwitchB-Bridge-Aggregation5] quit

# 创建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

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

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchB-Loopback0] quit

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

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

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

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

[SwitchB] interface tunnel 1 mode vxlan

[SwitchB-Tunnel1] source 1.1.1.1

[SwitchB-Tunnel1] destination 2.2.2.2

[SwitchB-Tunnel1] quit

# 配置Tunnel1和VXLAN10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

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

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

[SwitchB-vsi-vpna] quit

# 配置Tunnel1和VXLAN20关联。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] vxlan 20

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

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

[SwitchB-vsi-vpnb] quit

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

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port link-type trunk

[SwitchB-Bridge-Aggregation4] port trunk permit vlan 1

[SwitchB-Bridge-Aggregation4] service-instance 1000

[SwitchB-Bridge-Aggregation4-srv1000] encapsulation s-vid 1

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

[SwitchB-Bridge-Aggregation10-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation10-srv1000] quit

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

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port link-type trunk

[SwitchB-Bridge-Aggregation5] port trunk permit vlan 2

[SwitchB-Bridge-Aggregation5] service-instance 1000

[SwitchB-Bridge-Aggregation5-srv1000] encapsulation s-vid 2

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

[SwitchB-Bridge-Aggregation5-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation5-srv1000] quit

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

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

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

[SwitchB-Vsi-interface1] distributed-gateway local

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

[SwitchB-Vsi-interface1] quit

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

[SwitchB] interface vsi-interface 2

[SwitchB-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

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

[SwitchB-Vsi-interface2] distributed-gateway local

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

[SwitchB-Vsi-interface2] quit

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

[SwitchB] arp distributed-gateway dynamic-entry synchronize

# 配置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业务的接口配置为保留接口。

[SwitchB] m-lag mad exclude interface loopback 0

[SwitchB] m-lag mad exclude interface loopback 1

[SwitchB] m-lag mad exclude interface tunnel 2

[SwitchB] m-lag mad exclude interface vsi-interface 1

[SwitchB] m-lag mad exclude interface vsi-interface 2

[SwitchB] m-lag mad exclude interface vlan-interface 12

(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

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

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchC-Loopback0] quit

# 在Switch C和对端的聚合设备之间建立VXLAN隧道:

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

¡     指定隧道的源端地址为本地接口Loopback0的地址2.2.2.2。

¡     指定隧道的目的端地址为Switch C上接口Loopback0的地址1.1.1.1。

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 2.2.2.2

[SwitchC-Tunnel1] destination 1.1.1.1

[SwitchC-Tunnel1] quit

# 配置Tunnel1和VXLAN10关联。

[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和VXLAN20关联。

[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

# 在接入服务器的接口Ten-GigabitEthernet1/0/3上创建以太网服务实例1000,该实例用来匹配VLAN 4的数据帧。

[SwitchC] interface ten-gigabitethernet 1/0/3

[SwitchC-Ten-GigabitEthernet1/0/3] port link-type trunk

[SwitchC-Ten-GigabitEthernet1/0/3] port trunk permit vlan 4

[SwitchC-Ten-GigabitEthernet1/0/3] service-instance 1000

[SwitchC-Ten-GigabitEthernet1/0/3] encapsulation s-vid 4

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

[SwitchC-Ten-GigabitEthernet1/0/3] xconnect vsi vpnb

[SwitchC-Ten-GigabitEthernet1/0/3] quit

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

[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虚接口为分布式本地网关接口。

[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关联。

[SwitchC] vsi vpna

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

[SwitchC-vsi-vpna] quit

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

[SwitchC] vsi vpnb

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

[SwitchC-vsi-vpnb] quit

4. 验证配置

(1)     以Switch A为例,验证M-LAG设备

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态,并且与Switch C建立的隧道源地址是1.1.1.1。

[SwitchA] display interface tunnel

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

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: 73 bytes/sec, 584 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 161 packets, 22684 bytes, 0 drops

 

Tunnel2

Current state: UP

Line protocol state: UP

Description: Tunnel2 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

Last clearing of counters: Never

Tunnel source 8.8.8.8, destination 9.9.9.9

Tunnel protocol/transport UDP_VXLAN/IP

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

Last 300 seconds output rate: 775 bytes/sec, 6200 bits/sec, 3 packets/sec

Input: 298 packets, 47222 bytes, 0 drops

Output: 978 packets, 233157 bytes, 0 drops

# 查看Switch A上的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

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 1

  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       Type

    BAGG4 srv1000                      0          Up          Manual

    BAGG5 srv1000                      1          Up          Manual

(2)     验证分布式VXLAN IP网关设备Switch C

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

[SwitchC] display interface tunnel

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

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: 8 packets, 480 bytes, 0 drops

Output: 4 packets, 240 bytes, 0 drops

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

[SwitchC] dis 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

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel1              0x5000001  UP       Manual      Disabled

 

VSI Name: vpnb

  VSI Index               : 1

  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

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 2

  VXLAN ID                : 20

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel1              0x5000001  UP       Manual      Disabled

(3)     验证主机之间可以互访

虚拟机VM 1、VM 2和VM 3之间可以互访。虚拟机与Switch A或Switch B相连的链路断开后,VM 1、VM 2和VM 3仍然可以通过另一台设备互访。

 

 


4 VXLAN数据中心互联

4.1  VXLAN数据中心互联简介

VXLAN隧道只能用于数据中心内部,实现数据中心内部用户终端的互联。VXLAN-DCI(VXLAN Data Center Interconnection,VXLAN数据中心互联)隧道可以用来实现数据中心之间的互联。

4.1.1  VXLAN数据中心互联典型组网

VXLAN数据中心互联典型组网如图4-1所示。VXLAN-DCI隧道采用VXLAN封装格式,该隧道的端点称为ED(Edge Device,边缘设备)。ED与数据中心内部的VTEP建立VXLAN隧道。ED从VXLAN隧道或VXLAN-DCI隧道上接收到报文后,解除VXLAN封装,根据目的网络重新对报文进行VXLAN封装,并将其转发到VXLAN-DCI隧道或VXLAN隧道,从而实现VXLAN跨数据中心之间的互通。

图4-1 VXLAN数据中心互联典型组网图

 

4.1.2  VXLAN数据中心互联工作机制

VXLAN数据中心互联组网中,VTEP根据MAC地址表项对流量进行二层转发。ED根据ARP表项或ND表项对流量进行三层转发。

图4-2 VXLAN数据中心互联原理图

 

图4-2所示,所有的ED上都需要创建VSI虚接口,并为不同ED上的相同VSI虚接口配置相同的IP地址,作为VXLAN网络内用户终端的网关地址。在ED上还需要开启本地代理ARP功能(IPv4网络)或本地ND代理功能(IPv6网络)。

2. 相同VXLAN内不同站点的用户终端通信过程

以Terminal 1访问Terminal 4为例,相同VXLAN内不同站点的用户终端的通信过程为:

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

(2)     VTEP 1收到ARP请求消息后,学习Terminal 1的MAC地址,并在Terminal 1所属的VXLAN内广播该ARP请求。

(3)     ED 1接收到ARP请求后,解除VXLAN封装,学习Terminal 1的ARP信息,并代理应答该ARP请求,即:向Terminal 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。ARP应答消息通过VXLAN隧道发送给VTEP 1。

(4)     VTEP 1解除VXLAN封装,学习ED 1的MAC地址,并将ARP应答消息转发给Terminal 1。

(5)     Terminal 1学习Terminal 4的MAC地址,该地址为ED 1上VSI虚接口10的MAC地址。

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

(7)     ED 2对VXLAN报文进行解封装后,学习Terminal 1的ARP信息(IP为10.1.1.100、MAC为ED 1上VSI虚接口10的MAC、出接口为接收该VXLAN报文的VXLAN-DCI模式Tunnel接口),将ARP请求消息中的源MAC修改为本地VSI虚接口10的MAC地址,并在VXLAN 10的所有VXLAN隧道上进行广播。

(8)     VTEP 2收到ARP请求后,解除VXLAN封装,学习ED 2的MAC地址,并向本地站点广播该ARP请求。

(9)     Terminal 4收到ARP请求后,学习Terminal 1的ARP信息(IP为10.1.1.100、MAC为ED 2上VSI虚接口10的MAC),并发送ARP应答消息给VTEP 2。

(10)     VTEP 2 收到ARP应答消息后,查找MAC地址表,对报文进行VXLAN封装后发送给ED 2。

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

(12)     ED 1对VXLAN报文进行解封装后,根据收到的ARP应答消息学习Terminal 4的ARP信息(IP为10.1.1.200、MAC为ED 2上VSI虚接口10的MAC、出接口为接收该VXLAN报文的VXLAN-DCI模式Tunnel接口)。

(13)     通过上述步骤完成MAC地址表项和ARP表项的学习后,Terminal 1发送给Terminal 4的报文,根据已经学习到的表项进行转发:首先VTEP 1添加VXLAN封装,发送给ED 1;ED 1重新进行VXLAN封装后,通过VXLAN-DCI隧道将其发送给ED 2;ED 2重新封装后,通过VXLAN隧道将其发送给VTEP 2;VTEP 2将报文转发给Terminal 4。

3. 不同VXLAN间不同站点的用户终端通信过程

以Terminal 1访问Terminal 5为例,不同VXLAN内用户终端的通信过程为:

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

(2)     VTEP 1收到ARP请求消息后,学习Terminal 1的MAC地址,并在Terminal 1所属的VXLAN内广播该ARP请求。

(3)     ED 1接收到ARP请求后,解除VXLAN封装,学习Terminal 1的ARP信息,并向Terminal 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。ARP应答消息通过VXLAN隧道发送给VTEP 1。

(4)     VTEP 1解除VXLAN封装,学习ED 1的MAC地址,并将ARP应答消息转发给Terminal 1。

(5)     Terminal 1学习网关的ARP信息,并将访问Terminal 5的报文发送给VTEP 1。

(6)     VTEP 1查找MAC地址表项,填加VXLAN封装后,将报文发送给ED 1。

(7)     ED 1收到数据报文后,解除VXLAN封装,并根据报文的目的IP地址查找路由表。由于目的IP地址与VSI虚接口20的接口IP地址在同一网段,ED 1在VXLAN 20内向所有VTEP和ED广播发送ARP请求,获取Terminal 5的MAC地址。ARP请求的源IP地址为20.1.1.1、目标IP地址为20.1.1.200、源MAC为ED 1上VSI虚接口20的MAC地址。

(8)     ED 2接收到VXLAN报文后,对其进行解封装,将ARP请求中的源MAC修改为本地VSI虚接口20的MAC地址,并在VXLAN 20的所有VXLAN隧道上广播该ARP请求。

(9)     VTEP 2收到ARP请求后,解除VXLAN封装,学习ED 2的MAC地址,并向本地站点广播该ARP请求。

(10)     Terminal 5收到ARP请求后,学习ED 2的ARP信息(IP为20.1.1.1、MAC为ED 2上VSI虚接口20的MAC地址),并发送ARP应答消息给VTEP 2。

(11)     VTEP 2 收到ARP应答消息后,查找MAC地址表项,对报文进行VXLAN封装后发送给ED 2。

(12)     ED 2根据接收到的ARP应答消息学习Terminal 5的ARP信息,并通过VXLAN-DCI隧道向ED 1发送免费ARP消息(源IP为20.1.1.200、目标IP为20.1.1.200、源MAC为ED 2上VSI虚接口20的MAC地址)。

(13)     ED 1对VXLAN报文进行解封装后,根据收到的免费ARP消息学习Terminal 5的ARP信息(IP为20.1.1.200、 MAC为ED 2上VSI虚接口20的MAC地址、出接口为接收该VXLAN报文的VXLAN-DCI模式Tunnel接口)。

(14)     通过上述步骤ED 1学习到了Terminal 5的ARP信息,ED 2学习Terminal 1的ARP信息的过程同上面过程类似。ED 1和ED 2均学习到Terminal 1和Terminal 5的ARP信息后,Terminal 1发送给Terminal 5的报文根据已经学习到的表项进行转发。

4.2  VXLAN数据中心互联配置限制和指导

ED上的公网侧端口必须位于的接口板与VXLAN IP网关公网侧端口限制一致,请参见“VXLAN配置指导”中的“VXLAN IP网关/VXLAN IP网关配置限制和指导”。

VXLAN-DCI隧道和VXLAN隧道建议不要共用一个公网侧端口,否则会导致报文丢失。

对于如下接口板:

·     FD系列接口板

·     FE系列接口板

·     SG系列接口板

如果存在流量从三层聚合接口收到并转发至VXLAN隧道的场景,请确保该三层聚合接口及其所有成员接口的MAC地址相同,否则可能导致报文携带错误的VLAN Tag。

SG系列接口板上存在M-LAG peer-link接口时,不能同时支持VXLAN-DCI隧道。

4.3  VXLAN数据中心互联配置任务简介

在VXLAN数据中心互联组网中,各设备上需要进行如下配置:

·     IP核心网络中的设备配置路由协议,确保ED之间路由可达。

·     ED和VTEP上配置路由协议,确保二者之间路由可达。

·     ED和VTEP上配置VXLAN,在二者之间建立VXLAN隧道。

·     ED上配置VXLAN数据中心互联,在ED之间建立VXLAN-DCI隧道。

VXLAN数据中心互联的大部分配置与VXLAN配置、VXLAN IP网关配置相同。表4-1罗列了VXLAN数据中心互联支持的所有配置。本文只介绍与VXLAN、VXLAN IP网关不同的配置,二者相同的配置请分别参见“2 配置VXLAN”和“3 VXLAN IP网关”。

表4-1 VXLAN数据中心互联配置任务简介

配置任务

说明

详细配置

创建VSI和VXLAN

必选

配置方式与VXLAN相同

2.3 

创建VXLAN-DCI隧道

必选

4.4 

关联VXLAN与VXLAN-DCI隧道

必选

4.5 

配置VSI虚接口

必选

4.6 

为VSI指定网关接口

必选

4.7 

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

可选

配置方式与VXLAN相同

2.11 

配置VXLAN报文检查功能

可选

配置方式与VXLAN相同

2.12 

配置VXLAN流量统计

可选

配置方式与VXLAN相同,且仅支持VSI的报文统计功能

2.17 

 

4.4  创建VXLAN-DCI隧道

1. 功能简介

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

2. 配置限制和指导

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

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

3. 配置步骤

表4-2 手工创建VXLAN-DCI隧道

操作

命令

说明

进入系统视图

system-view

-

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

interface tunnel tunnel-number mode vxlan-dci [ ipv6 ]

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

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

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

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

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

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

配置隧道的目的端地址

destination { ipv4-address | ipv6-address }

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

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

 

4.5  关联VXLAN与VXLAN-DCI隧道

一个VXLAN可以关联多条VXLAN-DCI隧道。一条VXLAN-DCI隧道可以关联多个VXLAN,这些VXLAN共用该VXLAN-DCI隧道,ED根据VXLAN报文中的VXLAN ID来识别隧道传递的报文所属的VXLAN。ED接收到某个VXLAN的泛洪流量后,如果采用单播路由泛洪方式,则ED将在与该VXLAN关联的所有VXLAN-DCI隧道上发送该流量,以便将流量转发给所有的远端VTEP。

表4-3 手工关联VXLAN与VXLAN-DCI隧道

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

进入VXLAN视图

vxlan vxlan-id

-

配置VXLAN与VXLAN-DCI隧道关联

tunnel { tunnel-number | all }

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

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

 

4.6  配置VSI虚接口

表4-4 配置VSI虚接口

操作

命令

说明

进入系统视图

system-view

-

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

interface vsi-interface vsi-interface-id

缺省情况下,设备上不存在任何VSI虚接口

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

配置VSI虚接口的IPv4地址或IPv6地址

配置VSI虚接口的IPv4地址

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

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

配置VSI虚接口的IPv6地址

IPv6地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

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

distributed-gateway local

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

开启本地代理ARP功能

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

对于IPv4网络,必选

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

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

开启本地ND代理功能

local-proxy-nd enable

对于IPv6网络,必选

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

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

配置VSI虚接口的MAC地址

mac-address mac-address

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

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

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报文发送限速功能处于关闭状态

开启当前接口

undo shutdown

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

 

4.7  为VSI指定网关接口

表4-5 为VSI指定网关接口

操作

命令

说明

进入系统视图

system-view

-

进入VXLAN所在VSI视图

vsi vsi-name

-

为VSI指定网关接口

gateway vsi-interface vsi-interface-id

缺省情况下,没有为VSI指定网关接口

 

4.8  VXLAN数据中心互联显示和维护

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

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

表4-6 VXLAN数据中心互联显示和维护

操作

命令

显示VSI的信息

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

显示Tunnel接口信息

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

显示VXLAN关联的VXLAN-DCI隧道信息

display vxlan tunnel [ vxlan-id vxlan-id ]

清除VSI的报文统计信息

reset l2vpn statistics vsi [ name vsi-name ]

 

说明

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

 

4.9  VXLAN数据中心互联典型配置举例

1. 组网需求

Switch B、Switch D为ED。虚拟机VM 1、VM 3属于VXLAN 10,VM 2属于VXLAN 20。通过VXLAN数据中心互联实现不同数据中心、不同VXLAN网络的互联。

具体需求为:

·     手工建立VXLAN隧道和VXLAN-DCI隧道。

·     手工关联VXLAN和VXLAN隧道、VXLAN-DCI隧道。

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

2. 组网图

图4-3 VXLAN数据中心互联配置组网图

3. 配置步骤

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

请按照图4-3配置各接口的IP地址和子网掩码;在各台交换机上配置OSPF协议,确保交换机之间路由可达;配置Switch B和Switch D发布10.1.1.0/24、10.1.2.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

# 配置接口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

# 配置Tunnel1与VXLAN 10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

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

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

[SwitchA-vsi-vpna] quit

# 配置Tunnel1与VXLAN 20关联。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] vxlan 20

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

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

[SwitchA-vsi-vpnb] quit

# 在接入服务器的接口Ten-GigabitEthernet1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 100的数据帧,并将该服务实例与VSI实例vpna关联。

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100

[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 100

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/0/1] quit

# 在接入服务器的接口Ten-GigabitEthernet1/0/2上创建以太网服务实例1000,该实例用来匹配VLAN 200的数据帧,并将该服务实例与VSI实例vpnb关联。

[SwitchA] interface ten-gigabitethernet 1/0/2

[SwitchA-Ten-GigabitEthernet1/0/2] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 200

[SwitchA-Ten-GigabitEthernet1/0/2] service-instance 1000

[SwitchA-Ten-GigabitEthernet1/0/2-srv1000] encapsulation s-vid 200

[SwitchA-Ten-GigabitEthernet1/0/2-srv1000] xconnect vsi vpnb

[SwitchA-Ten-GigabitEthernet1/0/2-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/0/2] 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

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

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchB-Loopback0] quit

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

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

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

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

[SwitchB] interface tunnel 1 mode vxlan

[SwitchB-Tunnel1] source 2.2.2.2

[SwitchB-Tunnel1] destination 1.1.1.1

[SwitchB-Tunnel1] quit

# 在Switch B和Switch D之间建立VXLAN-DCI隧道:

·     创建模式为VXLAN-DCI的隧道接口Tunnel2。

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

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

[SwitchB] interface tunnel 2 mode vxlan-dci

[SwitchB-Tunnel2] source 2.2.2.2

[SwitchB-Tunnel2] destination 3.3.3.3

[SwitchB-Tunnel2] quit

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

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

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

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

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

[SwitchB-vsi-vpna] quit

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

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] vxlan 20

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

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

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

[SwitchB-vsi-vpnb] quit

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

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchB-Vsi-interface1] distributed-gateway local

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

[SwitchB-Vsi-interface1] quit

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

[SwitchB] interface vsi-interface 2

[SwitchB-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[SwitchB-Vsi-interface2] distributed-gateway local

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

[SwitchB-Vsi-interface2] quit

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

[SwitchB] arp distributed-gateway dynamic-entry synchronize

# 为VXLAN 10所在的VSI实例vpna指定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

(4)     配置Switch D

# 开启L2VPN能力。

<SwitchD> system-view

[SwitchD] l2vpn enable

# 创建VSI实例vpna和VXLAN 10。

[SwitchD] vsi vpna

[SwitchD-vsi-vpna] vxlan 10

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

[SwitchD-vsi-vpna] quit

# 创建VSI实例vpnb和VXLAN 20。

[SwitchD] vsi vpnb

[SwitchD-vsi-vpnb] vxlan 20

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

[SwitchD-vsi-vpnb] quit

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

[SwitchD] interface loopback 0

[SwitchD-Loopback0] ip address 3.3.3.3 255.255.255.255

[SwitchD-Loopback0] quit

# 在Switch D和Switch E之间建立VXLAN隧道:

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

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

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

[SwitchD] interface tunnel 1 mode vxlan

[SwitchD-Tunnel1] source 3.3.3.3

[SwitchD-Tunnel1] destination 4.4.4.4

[SwitchD-Tunnel1] quit

# 在Switch D和Switch B之间建立VXLAN-DCI隧道:

·     创建模式为VXLAN-DCI的隧道接口Tunnel2。

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

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

[SwitchD] interface tunnel 2 mode vxlan-dci

[SwitchD-Tunnel2] source 3.3.3.3

[SwitchD-Tunnel2] destination 2.2.2.2

[SwitchD-Tunnel2] quit

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

[SwitchD] vsi vpna

[SwitchD-vsi-vpna] vxlan 10

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

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

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

[SwitchD-vsi-vpna] quit

# 配置Tunnel2与VXLAN 20关联。

[SwitchD] vsi vpnb

[SwitchD-vsi-vpnb] vxlan 20

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

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

[SwitchD-vsi-vpnb] quit

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

[SwitchD] interface vsi-interface 1

[SwitchD-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchD-Vsi-interface1] distributed-gateway local

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

[SwitchD-Vsi-interface1] quit

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

[SwitchD] interface vsi-interface 2

[SwitchD-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[SwitchD-Vsi-interface2] distributed-gateway local

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

[SwitchD-Vsi-interface2] quit

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

[SwitchD] arp distributed-gateway dynamic-entry synchronize

# 为VXLAN 10所在的VSI实例vpna指定VSI虚接口VSI-interface1。

[SwitchD] vsi vpna

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

[SwitchD-vsi-vpna] quit

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

[SwitchD] vsi vpnb

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

[SwitchD-vsi-vpnb] quit

(5)     配置Switch E

# 开启L2VPN能力。

<SwitchE> system-view

[SwitchE] l2vpn enable

# 创建VSI实例vpna和VXLAN 10。

[SwitchE] vsi vpna

[SwitchE-vsi-vpna] vxlan 10

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

[SwitchE-vsi-vpna] quit

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

[SwitchE] interface loopback 0

[SwitchE-Loopback0] ip address 4.4.4.4 255.255.255.255

[SwitchE-Loopback0] quit

# 在Switch E和Switch D之间建立VXLAN隧道:

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

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

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

[SwitchE] interface tunnel 1 mode vxlan

[SwitchE-Tunnel1] source 4.4.4.4

[SwitchE-Tunnel1] destination 3.3.3.3

[SwitchE-Tunnel1] quit

# 配置Tunnel1与VXLAN 10关联。

[SwitchE] vsi vpna

[SwitchE-vsi-vpna] vxlan 10

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

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

[SwitchE-vsi-vpna] quit

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

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk

[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100

[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 100

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

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit

[SwitchA-Ten-GigabitEthernet1/0/1] quit

4. 验证配置

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

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

[SwitchB] display interface tunnel

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

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

 

Tunnel2

Current state: UP

Line protocol state: UP

Description: Tunnel2 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 2.2.2.2, destination 3.3.3.3

Tunnel protocol/transport UDP_VXLAN_DCI/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

Vsi-interface1

Current state: UP

Line protocol state: UP

Description: Vsi-interface1 Interface

Bandwidth: 1000000 kbps

Maximum transmission unit: 1500

Internet address: 10.1.1.1/24 (primary)

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

IPv6 packet frame type:PKTFMT_ETHNT_2, 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

 

Vsi-interface2

Current state: UP

Line protocol state: UP

Description: Vsi-interface2 Interface

Bandwidth: 1000000 kbps

Maximum transmission unit: 1500

Internet address: 10.1.2.1/24 (primary)

IP packet frame type:PKTFMT_ETHNT_2, hardware address: 0011-3300-0102

IPv6 packet frame type:PKTFMT_ETHNT_2, hardware address: 0011-3300-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,与VSI关联的VSI虚接口,以及VXLAN关联的VXLAN隧道、VXLAN-DCI隧道等信息。

[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

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  Up     Manual      Disabled

 

VSI Name: vpnb

  VSI Index               : 1

  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 2

  VXLAN ID                : 20

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flood proxy

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  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    VLAN/VSI   Interface/Link ID        Aging Type

11.1.1.4        000c-29c1-5e46 N/A        Vlan11                   19    D

10.1.1.11       0cda-41b5-cf09 0          Tunnel1                  20    D

10.1.1.12       0011-4400-0102 0          Tunnel2                  20    D

10.1.2.11       0cda-41b5-cf89 1          Tunnel1                  20    D

(2)     验证主机

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


5 OVSDB-VTEP

5.1  简介

OVSDB(Open vSwitch Database,开源虚拟交换机数据库)控制协议用来实现NVC(Network Virtualization Controller,网络虚拟化控制器)对网络中VTEP设备的管理和部署。

图5-1 OVSDB-VTEP示意图

 

图5-1所示,VTEP设备上维护OVSDB数据库,VXLAN相关配置以表项的形式保存在该数据库中。控制器与VTEP设备上的OVSDB服务器建立连接,二者采用OVSDB控制协议进行交互并操作OVSDB数据库中的数据。OVSDB VTEP服务从OVSDB服务器获取数据库中的数据,将其转变为VXLAN相关配置(例如创建或删除VXLAN、创建或删除VXLAN隧道)下发到设备上。同时,OVSDB VTEP服务也会通过OVSDB服务器,将本地的用户侧接入端口和VXLAN隧道全局源地址信息添加到数据库中,并上报给控制器。

提示

用户可以同时通过命令行和控制器配置VTEP设备。建议不要在VTEP设备上通过命令行删除控制器下发的配置。

 

5.2  协议规范

与OVSDB相关的协议规范有:

·     RFC 7047:The Open vSwitch Database Management Protocol

5.3  OVSDB-VTEP配置任务简介

要实现控制器对VTEP设备的部署,需要在VTEP设备上完成表5-1所示配置。

表5-1 OVSDB-VTEP配置任务简介

配置任务

说明

详细配置

与控制器建立OVSDB连接

与控制器建立主动SSL连接

必选

OVSDB服务器支持同时与多个控制器建立连接,且支持同时建立多种类型的连接

在开启OVSDB服务器之前,必须先进行本配置。如果在开启OVSDB服务器之后修改本配置,那么需要关闭OVSDB服务器后再重新开启,新的连接配置才能生效

5.5.1 

与控制器建立被动SSL连接

5.5.2 

与控制器建立主动TCP连接

5.5.3 

与控制器建立被动TCP连接

5.5.4 

开启OVSDB服务器

必选

5.6 

开启OVSDB VTEP服务

必选

5.7 

配置VXLAN隧道的全局源地址

必选

5.8 

指定用户侧的接入端口

必选

5.9 

开启禁止控制器下发的ACL在VTEP上生效功能

可选

5.10 

 

5.4  配置准备

在进行OVSDB-VTEP相关配置前,需要首先通过l2vpn enable命令开启L2VPN功能,该命令的详细介绍请参见“MPLS命令参考”中的“MPLS L2VPN”。

如果OVSDB服务器与控制器之间建立SSL连接,则还需要完成SSL相关配置,详细配置方法请参见“安全配置指导”中的“SSL”。

5.5  与控制器建立OVSDB连接

OVSDB服务器和控制器之间可以建立多种类型的OVSDB连接,设备支持的OVSDB连接类型包括:

·     主动SSL连接:OVSDB服务器主动向控制器发起SSL连接。该连接方式必须指定SSL使用的PKI域。

·     被动SSL连接:OVSDB服务器监听并接收来自控制器的SSL连接请求。该连接方式必须指定SSL使用的PKI域。

·     主动TCP连接:OVSDB服务器主动向控制器发起TCP连接。

·     被动TCP连接:OVSDB服务器监听并接收来自控制器的TCP连接请求。

说明

所有SSL连接,包括主动SSL连接和被动SSL连接,使用相同的PKI域和CA证书文件。

 

5.5.1  与控制器建立主动SSL连接

表5-2 与控制器建立主动SSL连接

操作

命令

说明

进入系统视图

system-view

-

指定与控制器进行SSL通信时使用的PKI域

ovsdb server pki domain domain-name

缺省情况下,未指定与控制器进行SSL通信时使用的PKI域

PKI域需提前配置,具体方法请参见“安全配置指导”中的“PKI”

(可选)设置SSL通信时使用的CA证书文件

ovsdb server bootstrap ca-certificate ca-filename

缺省情况下,与控制器进行SSL通信时使用PKI域中的CA证书文件

如果指定的CA证书文件不存在,则使用开启OVSDB服务器时通过SSL连接获取的自签名证书,并通过本命令指定证书文件名

与控制器建立主动SSL连接

ovsdb server ssl ip ip-address port port-number

缺省情况下,不会与控制器建立主动SSL连接

OVSDB服务器最多可以同时与8个控制器建立主动SSL连接

 

5.5.2  与控制器建立被动SSL连接

表5-3 与控制器建立被动SSL连接

操作

命令

说明

进入系统视图

system-view

-

指定与控制器进行SSL通信时使用的PKI域

ovsdb server pki domain domain-name

缺省情况下,未指定与控制器进行SSL通信时使用的PKI域

PKI域需提前配置,具体方法请参见“安全配置指导”中的“PKI”

(可选)设置SSL通信时使用的CA证书文件

ovsdb server bootstrap ca-certificate ca-filename

缺省情况下,与控制器进行SSL通信时使用PKI域中的CA证书文件

如果指定的CA证书文件不存在,则使用开启OVSDB服务器时通过SSL连接获取的自签名证书,并通过本命令指定证书文件名

与控制器建立被动SSL连接

ovsdb server pssl [ port  port-number ]

缺省情况下,不会与控制器建立被动SSL连接

OVSDB服务器只能监听1个端口的SSL连接请求

 

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

表5-4 与控制器建立主动TCP连接

操作

命令

说明

进入系统视图

system-view

-

与控制器建立主动TCP连接

ovsdb server tcp ip ip-address port port-number

缺省情况下,不会与控制器建立主动TCP连接

OVSDB服务器最多可以同时与8个控制器建立主动TCP连接

 

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

表5-5 与控制器建立被动TCP连接

操作

命令

说明

进入系统视图

system-view

-

与控制器建立被动TCP连接

ovsdb server ptcp [ port port-number ] [ acl acl-number ]

缺省情况下,不会与控制器建立被动TCP连接

OVSDB服务器只能监听1个端口的TCP连接请求

 

5.6  开启OVSDB服务器

在开启OVSDB服务器之前,必须先建立OVSDB连接。如果在开启OVSDB服务器之后修改OVSDB连接,那么需要关闭OVSDB服务器后再重新开启,新的连接配置才能生效。

表5-6 开启OVSDB服务器

操作

命令

说明

进入系统视图

system-view

-

开启OVSDB服务器

ovsdb server enable

缺省情况下,OVSDB服务器处于关闭状态

 

5.7  开启OVSDB VTEP服务

表5-7 开启OVSDB VTEP服务

操作

命令

说明

进入系统视图

system-view

-

开启OVSDB VTEP服务

vtep enable

缺省情况下,OVSDB VTEP服务处于关闭状态

 

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

用户需要在VTEP设备上配置VXLAN隧道的全局源地址,该地址会通过OVSDB协议上报给控制器,用于控制器对VTEP设备进行部署和控制。

采用OVSDB对VTEP设备进行部署和控制时,用户不能在VXLAN隧道的Tunnel接口下手工指定源地址,否则会影响控制器对VTEP设备的管理。

表5-8 配置VXLAN隧道的全局源地址

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN隧道的全局源地址

tunnel global source-address { ipv4-address | ipv6 ipv6-address }

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

 

5.9  指定用户侧的接入端口

为了在控制器上显示VTEP上的端口并对其进行控制,必须在VTEP上将该端口配置为用户侧的接入端口。

将接口配置为接入侧端口后,建议不要在该接口下进行手工配置,避免影响控制器对接入侧端口的管理。

表5-9 指定接入侧端口

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

·     进入二层以太网接口视图:
interface
interface-type interface-number

·     进入二层聚合接口视图:
interface bridge-aggregation
interface-number

-

指定当前接口为用户侧的接入端口

vtep access port

缺省情况下,当前接口不是用户侧的接入端口

 

5.10  开启禁止控制器下发的ACL在VTEP上生效功能

1. 功能简介

在OVSDB-VTEP组网中,控制器通过OVSDB控制协议下发ACL到VTEP,占用VTEP上的ACL资源。通过配置本命令,用户可以禁止控制器下发的ACL在VTEP上生效,以便节约设备上的ACL资源。

2. 配置步骤

操作

命令

说明

进入系统视图

system-view

-

开启禁止控制器下发的ACL在VTEP上生效功能

vtep acl disable

缺省情况下,控制器下发的ACL在VTEP上生效

 

5.11  OVSDB-VTEP典型配置举例

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

1. 组网需求

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

具体需求为:

·     通过控制器下发配置,在不同VTEP之间建立VXLAN隧道。

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

2. 组网图

图5-2 OVSDB-VTEP头端复制组网图

3. 配置步骤

(1)     配置IP地址、单播路由协议、控制器

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

(2)     配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置与控制器建立主动SSL连接,SSL连接使用的PKI域为a,连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchA] ovsdb server pki domain a

[SwitchA] ovsdb server ssl 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

# 指定接入服务器的接口Ten-GigabitEthernet1/0/1上为用户侧的接入端口。

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] vtep access port

[SwitchA-Ten-GigabitEthernet1/0/1] quit

(3)     配置Switch B

# 开启L2VPN功能。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 配置与控制器建立主动SSL连接,SSL连接使用的PKI域为a,连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchB] ovsdb server pki domain a

[SwitchB] ovsdb server ssl 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

# 指定接入服务器的接口Ten-GigabitEthernet1/0/1上为用户侧的接入端口。

[SwitchB] interface ten-gigabitethernet 1/0/1

[SwitchB-Ten-GigabitEthernet1/0/1] vtep access port

[SwitchB-Ten-GigabitEthernet1/0/1] quit

(4)     配置Switch C

# 开启L2VPN功能。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 配置与控制器建立主动SSL连接,SSL连接使用的PKI域为a,连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchC] ovsdb server pki domain a

[SwitchC] ovsdb server ssl 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

# 指定接入服务器的接口Ten-GigabitEthernet1/0/1上为用户侧的接入端口。

[SwitchC] interface ten-gigabitethernet 1/0/1

[SwitchC-Ten-GigabitEthernet1/0/1] vtep access port

[SwitchC-Ten-GigabitEthernet1/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       Type

    XGE1/0/1 srv2                    0        Up          Manual

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

<SwitchA> display l2vpn mac-address

* - The output interface is issued to another VSI

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之间可以互访。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们