• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

13-VXLAN配置指导

目录

01-VXLAN配置

本章节下载 01-VXLAN配置  (828.61 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S6500/S6520X-EI/Configure/Operation_Manual/H3C_S6520X-EI_S6520X-HI_CG-R1110P01-6W100/13/201809/1108162_30005_0.htm

01-VXLAN配置

  录

1 VXLAN概述

1.1 VXLAN的优点

1.2 VXLAN网络模型

1.3 VXLAN报文封装格式

1.4 VXLAN运行机制

1.4.1 运行机制概述

1.4.1 建立VXLAN隧道并将其与VXLAN关联

1.4.2 识别报文所属的VXLAN

1.4.3 学习MAC地址

1.4.4 转发单播流

1.4.5 转发泛洪流量

1.4.6 接入模式

1.5 ARP泛洪抑制

1.6 VXLAN IP网关

1.7 协议规范

2 配置VXLAN

2.1 VXLAN配置限制和指导

2.2 VXLAN配置任务简介

2.3 VXLAN配置准备

2.4 配置VXLAN隧道工作模式

2.5 创建VSI和VXLAN

2.6 配置VXLAN隧道

2.6.1 手工创建VXLAN隧道

2.7 手工关联VXLAN与VXLAN隧道

2.8 建立数据帧与VSI的关联

2.8.1 配置限制和指导

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

2.8.3 配置VLAN与VXLAN关联

2.9 管理本地和远端MAC地址

2.9.1 功能简介

2.9.2 添加静态MAC地址

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

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

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

2.11 配置VSI泛洪抑制

2.12 配置ARP泛洪抑制

2.13 配置VXLAN流量统计

2.13.1 配置VSI的报文统计功能

2.13.2 配置AC的报文统计功能

2.14 VXLAN显示和维护

2.15 VXLAN典型配置举例

2.15.1 VXLAN头端复制配置举例

3 VXLAN IP网关

3.1 VXLAN IP网关简介

3.1.1 独立的VXLAN IP网关

3.1.2 集中式VXLAN IP网关

3.1.3 分布式VXLAN IP网关

3.2 VXLAN IP网关配置任务简介

3.3 VXLAN IP网关配置准备

3.4 配置集中式VXLAN IP网关

3.4.1 配置限制和指导

3.4.2 配置集中式网关的网关接口

3.5 配置分布式VXLAN IP网关

3.5.1 配置限制和指导

3.5.2 配置分布式网关的网关接口

3.5.3 开启分布式网关的动态ARP/ND表项同步功能

3.6 管理ARP表项/ND表项

3.6.1 静态配置ARP表项

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

3.7 配置VSI虚接口

3.7.1 配置VSI虚接口的可选参数

3.7.2 恢复VSI虚接口的缺省配置

3.8 VXLAN IP网关显示和维护

3.9 VXLAN IP网关典型配置举例

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

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

3.9.3 分布式VXLAN IP网关连接IPv6网络配置举例

4 OVSDB-VTEP

4.1 OVSDB-VTEP简介

4.1.1 工作机制

4.1.2 协议规范

4.2 OVSDB-VTEP配置限制和指导

4.3 OVSDB-VTEP配置任务简介

4.4 OVSDB-VTEP配置准备

4.5 与控制器建立OVSDB连接

4.5.1 OVSDB连接类型

4.5.2 配置限制和指导

4.5.3 配置准备

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

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

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

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

4.6 开启OVSDB服务器

4.7 开启OVSDB VTEP服务

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

4.9 指定用户侧的接入端口

4.10 OVSDB-VTEP典型配置举例

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

 


1 VXLAN概述

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

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

1.1  VXLAN的优点

VXLAN具有如下优点:

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

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

1.2  VXLAN网络模型

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

图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比特。

说明

本文档中如无特殊说明,均以VM为例介绍VXLAN工作机制。采用其他类型用户终端时,VXLAN工作机制与VM相同,不再赘述。

 

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

·              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一一对应。

·              AC(Attachment Circuit,接入电路):VTEP连接本地站点的物理电路或虚拟电路。在VTEP上,与VSI关联的以太网服务实例(service instance)称为AC。以太网服务实例在二层以太网接口上创建,它定义了一系列匹配规则,用来匹配从该二层以太网接口上接收到的数据帧。

1.3  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-2 VXLAN报文封装示意图

 

1.4  VXLAN运行机制

1.4.1  运行机制概述

VXLAN运行机制可以概括为:

(1)      发现远端VTEP,在VTEP之间建立VXLAN隧道,并将VXLAN隧道与VXLAN关联。

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

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

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

1.4.1  建立VXLAN隧道并将其与VXLAN关联

为了将VXLAN报文传递到远端VTEP,需要创建VXLAN隧道,并将VXLAN隧道与VXLAN关联。

1. 创建VXLAN隧道

VXLAN隧道的建立方式有如下两种:

·              手工方式:手工配置Tunnel接口,并指定隧道的源和目的IP地址分别为本端和远端VTEP的IP地址。

·              自动方式:通过EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)发现远端VTEP后,自动在本端和远端VTEP之间建立VXLAN隧道。EVPN的详细介绍请参见“EVPN配置指导”。

2. 关联VXLAN隧道与VXLAN

VXLAN隧道与VXLAN关联的方式有如下两种:

·              手工方式:手工将VXLAN隧道与VXLAN关联。

·              自动方式:通过EVPN协议自动关联VXLAN隧道与VXLAN。EVPN的详细介绍请参见“EVPN配置指导”。

1.4.2  识别报文所属的VXLAN

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

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

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

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

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

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

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

 

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

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

1.4.3  学习MAC地址

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

·              本地MAC地址学习

是指VTEP对本地站点内虚拟机MAC地址的学习。本地MAC地址通过报文中的源MAC地址动态学习:VTEP接收到本地虚拟机发送的数据帧后,判断该数据帧所属的VSI,并将数据帧中的源MAC地址(本地虚拟机的MAC地址)添加到该VSI的MAC地址表中,该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地址优先级由高到低依次为:

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

b.   通过BGP EVPN学习的MAC地址优先级次之。

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

1.4.4  转发单播流量

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

1. 站点内流量

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

图1-4所示,VM 1(MAC地址为MAC 1)发送以太网帧到VM 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内发送给VM 4。

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

2. 站点间流量

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

(1)      VM 1发送以太网数据帧给VM 7,数据帧的源MAC地址为MAC 1,目的MAC为MAC 7,VLAN Tag为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内将数据帧发送给VM 7。

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

1.4.5  转发泛洪流量

VTEP从本地站点接收到泛洪流量(组播、广播和未知单播流量)后,将其转发给除接收接口外的所有本地接口和VXLAN隧道。为了避免环路,VTEP从VXLAN隧道上接收到报文后,不会再将其泛洪到其他的VXLAN隧道,只会转发给所有本地接口。

目前设备采用单播路由方式(头端复制)转发泛洪流量。

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

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

 

 

1.4.6  接入模式

设备支持VLAN接入模式。

在该模式下,从本地站点接收到的和发送给本地站点的以太网帧必须带有VLAN Tag。

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

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

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

1.5  ARP泛洪抑制

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

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

 

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

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

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

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

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

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

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

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

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

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

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

1.6  VXLAN IP网关

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

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

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

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

2.2  VXLAN配置任务简介

VXLAN组网中,需要在VTEP上进行如下配置:

(1)      配置VXLAN隧道工作模式

(2)      创建VSI和VXLAN

(3)      配置VXLAN隧道

(4)      手工关联VXLAN与VXLAN隧道

(5)      建立数据帧与VSI的关联

(6)      (可选)管理本地和远端MAC地址

¡  添加静态MAC地址

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

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

(7)      (可选)配置VXLAN报文的目的UDP端口号

(8)      (可选)减少发送到核心网的泛洪流量

¡  配置VSI泛洪抑制

¡  配置ARP泛洪抑制

(9)      配置VXLAN流量统计

2.3  VXLAN配置准备

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

2.4  配置VXLAN隧道工作模式

1. 功能简介

VXLAN隧道支持如下两种工作模式:

·              三层转发模式:VTEP设备通过查找ARP表项(IPv4网络)或ND表项(IPv6网络)对流量进行转发。

·              二层转发模式:VTEP通过查找MAC地址表项对流量进行转发。

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


VXLAN IP网关”。

2. 配置限制和指导

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

3. 配置步骤

(1)      进入系统视图。

system-view

(2)      配置VXLAN隧道工作模式。

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

undo vxlan ip-forwarding

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

vxlan ip-forwarding

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

2.5  创建VSI和VXLAN

1. 配置步骤

(1)      进入系统视图。

system-view

(2)      开启L2VPN功能。

l2vpn enable

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

(3)      创建VSI,并进入VSI视图。

vsi vsi-name

(4)      开启VSI。

undo shutdown

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

(5)      创建VXLAN,并进入VXLAN视图。

vxlan vxlan-id

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

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

(6)      (可选)配置VSI相关参数。

a.   退回VSI视图。

quit

b.   配置VSI的描述信息。

description text

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

c.   配置VSI的MTU值。

mtu size

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

d.   开启VSI的MAC地址学习功能。

mac-learning enable

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

2.6  配置VXLAN隧道

2.6.1  手工创建VXLAN隧道

1. 功能简介

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

2. 配置限制和指导

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

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

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

3. 配置步骤

(1)      进入系统视图。

system-view

(2)      (可选)配置VXLAN隧道的全局源地址。

tunnel global source-address ip-address

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

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

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

interface tunnel tunnel-number mode vxlan

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

(4)      配置隧道的源端地址。请选择其中一项进行配置。

¡  直接指定隧道的源端地址。

source ipv4-address

指定的地址将作为封装后VXLAN报文的源IP地址。

¡  指定隧道的源接口。

source interface-type interface-number

指定接口的主IP地址将作为封装后VXLAN报文的源IP地址。

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

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

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

(5)      配置隧道的目的端地址。

destination ipv4-address

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

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

2.7  手工关联VXLAN与VXLAN隧道

1. 功能简介

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

2. 配置限制和指导

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

3. 配置步骤

(1)      进入系统视图。

system-view

(2)      进入VSI视图。

vsi vsi-name

(3)      进入VXLAN视图。

vxlan vxlan-id

(4)      配置VXLAN与VXLAN隧道关联。

tunnel { tunnel-number [ backup-tunnel tunnel-number ] | all }

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

参数

说明

backup-tunnel tunnel-number

本参数指定的隧道作为备用VXLAN隧道,为主用VXLAN隧道提供保护。当主用VXLAN隧道down时,VXLAN将启用备用VXLAN隧道

 

2.8  建立数据帧与VSI的关联

2.8.1  配置限制和指导

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

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

1. 功能简介

手工创建以太网服务实例,并将以太网服务实例与VSI关联后,从该接口接收到的、符合以太网服务实例报文匹配规则的报文,将通过查找关联VSI的MAC地址表进行转发。

2. 配置限制和指导

本配置与以太网链路聚合功能互斥。二层以太网接口加入聚合组后,不能再将该接口上的以太网服务实例与VSI关联;反之亦然。

请不要在同一个二层以太网接口/二层聚合接口上同时配置以下功能:

·              VLAN映射、以太网服务实例与VSI

·              QinQ、以太网服务实例与VSI

请不要在VXLAN隧道出接口的二层以太网接口/二层聚合接口上配置VLAN映射、QinQ、MAC VLAN功能

否则,可能导致这些功能不可用。

配置以太网服务实例的报文匹配规则时需要注意的事项请参见“VXLAN命令参考”中的“VXLAN”。

3. 配置步骤

(1)      进入系统视图。

system-view

(2)      进入接口视图。

¡  进入二层以太网接口视图。

interface interface-type interface-number

¡  进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)      手工创建以太网服务实例,并进入以太网服务实例视图。

service-instance instance-id

(4)      配置以太网服务实例的报文匹配规则。请选择其中一项进行配置。

¡  匹配报文的外层VLAN tag。

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

¡  匹配不携带VLAN tag的所有报文。

encapsulation untagged

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

(5)      将以太网服务实例与VSI关联。

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

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

2.8.3  配置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. 配置步骤

(1)      进入系统视图。

system-view

(2)      开启VLAN关联VXLAN功能。

vxlan vlan-based

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

(3)      进入VLAN视图。

vlan vlan-id

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

(4)      配置VLAN与指定的VXLAN关联。

vxlan vni vxlan-id

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

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

2.9  管理本地和远端MAC地址

2.9.1  功能简介

本地MAC地址通过报文中的源MAC地址动态学习。在动态添加、删除本地MAC地址时,可以记录日志信息。

远端MAC地址表项的产生方法包括静态添加、根据接收到的VXLAN报文内封装的源MAC地址自动学习等。

2.9.2  添加静态MAC地址

1. 配置限制和指导

请不要为EVPN动态创建的隧道配置静态远端MAC地址表项,避免出现如下问题:

·              如果公网侧接口down,设备将删除已创建的隧道,同时删除为该隧道配置的静态远端MAC地址表项,公网侧接口重新up后会自动重新建立隧道,但是无法恢复静态远端MAC地址表项;

·              如果执行了配置回滚操作,设备会重新创建隧道,新创建的隧道编号可能发生变化,造成配置回滚失败。

有关EVPN的介绍请参见“EVPN配置指导”。

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      添加静态远端MAC地址表项。

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

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

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

1. 功能简介

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

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      关闭远端MAC地址自动学习功能。

vxlan tunnel mac-learning disable

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

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

1. 功能简介

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

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      开启本地MAC地址的日志记录功能。

vxlan local-mac report

缺省情况下,本地MAC地址的日志记录功能处于关闭状态。

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

(1)      进入系统视图。

system-view

(2)      配置VXLAN报文的目的UDP端口号。

vxlan udp-port port-number

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

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

2.11  配置VSI泛洪抑制

1. 功能简介

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

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

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      进入VSI视图。

vsi vsi-name

(3)      关闭VSI的泛洪功能。

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

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

2.12  配置ARP泛洪抑制

1. 配置限制和指导

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

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

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      (可选)开启根据ARP泛洪抑制表项生成IP Source Guard动态绑定表项功能。

arp suppression ip-source-binding record

缺省情况下,根据ARP泛洪抑制表项生成IP Source Guard动态绑定表项功能处于关闭状态。

开启本功能后,设备生成ARP泛洪抑制表项的同时会通知IP Source Guard,生成对应的IP Source Guard动态绑定表项,该表项可以上报给特定的控制器,以便控制器了解用户的上下线情况。该表项不能用来过滤报文。IP Source Guard的详细介绍,请参见“安全配置指导”中的“IP Source Guard”。

(3)      进入VSI视图。

vsi vsi-name

(4)      开启ARP泛洪抑制功能。

arp suppression enable

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

2.13  配置VXLAN流量统计

2.13.1  配置VSI的报文统计功能

1. 功能简介

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

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      进入VXLAN所在VSI视图。

vsi vsi-name

(3)      开启VSI的报文统计功能。

statistics enable

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

2.13.2  配置AC的报文统计功能

1. 配置限制和指导

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

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

(1)      进入系统视图。

system-view

(2)      进入接口视图。

¡  进入二层以太网接口视图。

interface interface-type interface-number

¡  进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)      进入以太网服务实例视图。

service-instance instance-id

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

statistics enable

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

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

(1)      进入系统视图。

system-view

(2)      进入VLAN视图。

vlan vlan-id

(3)      开启VLAN下对应AC的报文统计功能。

ac statistics enable

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

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

2.14  VXLAN显示和维护

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

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

表2-1 VXLAN显示和维护

操作

命令

显示VSI的ARP泛洪抑制表项信息

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

显示Tunnel接口信息

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

显示VSI的MAC地址表信息

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

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

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

显示VSI的信息

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

显示VXLAN关联的VXLAN隧道信息

display vxlan tunnel [ vxlan-id vxlan-id ]

清除VSI的ARP泛洪抑制表项

reset arp suppression vsi [ name vsi-name ]

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

reset l2vpn mac-address [ vsi vsi-name ]

清除AC的报文统计信息

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

清除VSI的报文统计信息

reset l2vpn statistics vsi [ name vsi-name ]

 

说明

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

 

2.15  VXLAN典型配置举例

2.15.1  VXLAN头端复制配置举例

1. 组网需求

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

具体需求为:

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

·              手工关联VXLAN和VXLAN隧道。

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

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

2. 组网图

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

 

3. 配置步骤

(1)      配置设备工作的VXLAN模式。

# 配置Switch A、Switch B和Switch C工作的VXLAN模式,并重启设备。以Switch A配置为例,其他设备的配置方法与此相同。

<SwitchA> system-view

[SwitchA] switch-mode 1

Reboot device to make the configuration take effect.

[SwitchA] quit

<SwitchA> reboot

Start to check configuration with next startup configuration file, please wait..

.......DONE!

Current configuration may be lost after the reboot, save current configuration?

[Y/N]:y

This command will reboot the device. Continue? [Y/N]:y

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

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

(3)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

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

[SwitchA] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

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

[SwitchA-vsi-vpna] quit

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

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

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

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

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

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

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] quit

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

[SwitchA] interface tunnel 2 mode vxlan

[SwitchA-Tunnel2] source 1.1.1.1

[SwitchA-Tunnel2] destination 3.3.3.3

[SwitchA-Tunnel2] quit

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

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

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

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

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

[SwitchA-vsi-vpna] quit

# 在接入服务器的接口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

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

[SwitchB] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

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

[SwitchB-vsi-vpna] quit

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

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchB-Loopback0] quit

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

[SwitchB] interface tunnel 2 mode vxlan

[SwitchB-Tunnel2] source 2.2.2.2

[SwitchB-Tunnel2] destination 1.1.1.1

[SwitchB-Tunnel2] quit

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

[SwitchB] interface tunnel 3 mode vxlan

[SwitchB-Tunnel3] source 2.2.2.2

[SwitchB-Tunnel3] destination 3.3.3.3

[SwitchB-Tunnel3] quit

# 配置Tunnel2和Tunnel3与VXLAN10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

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

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

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

[SwitchB-vsi-vpna] quit

# 在接入服务器的接口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

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

[SwitchC] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

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

[SwitchC-vsi-vpna] quit

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

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 3.3.3.3 255.255.255.255

[SwitchC-Loopback0] quit

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

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 3.3.3.3

[SwitchC-Tunnel1] destination 1.1.1.1

[SwitchC-Tunnel1] quit

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

[SwitchC] interface tunnel 3 mode vxlan

[SwitchC-Tunnel3] source 3.3.3.3

[SwitchC-Tunnel3] destination 2.2.2.2

[SwitchC-Tunnel3] quit

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

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

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

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

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

[SwitchC-vsi-vpna] quit

# 在接入服务器的接口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: 64 kbps

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

  Statistics              : Disabled

  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

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之间可以互访。


3 VXLAN IP网关

3.1  VXLAN IP网关简介

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

3.1.1  独立的VXLAN IP网关

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

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

 

3.1.2  集中式VXLAN IP网关

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

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

 

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

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

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

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

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

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

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

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

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

 

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

3.1.3  分布式VXLAN IP网关

1. 简介

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

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

 

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.2  VXLAN IP网关配置任务简介

VXLAN IP网关配置任务如下:

(1)      配置VXLAN IP网关

请根据实际组网,选择以下一项任务进行配置:

¡  配置集中式VXLAN IP网关

¡  配置分布式VXLAN IP网关

(2)      (可选)管理ARP表项/ND表项

(3)      (可选)配置VSI虚接口

3.3  VXLAN IP网关配置准备

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

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

·              创建VSI和VXLAN。

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

 

3.4  配置集中式VXLAN IP网关

3.4.1  配置限制和指导

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

3.4.2  配置集中式网关的网关接口

(1)      进入系统视图。

system-view

(2)      创建VSI虚接口,并进入VSI虚接口视图。

interface vsi-interface vsi-interface-id

(3)      配置VSI虚接口的IP地址。

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

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

(4)      退回系统视图。

quit

(5)      进入VXLAN所在VSI视图。

vsi vsi-name

(6)      为VSI指定网关接口。

gateway vsi-interface vsi-interface-id

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

3.5  配置分布式VXLAN IP网关

3.5.1  配置限制和指导

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

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

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

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

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

3.5.2  配置分布式网关的网关接口

(1)      进入系统视图。

system-view

(2)      创建VSI虚接口,并进入VSI虚接口视图。

interface vsi-interface vsi-interface-id

(3)      配置VSI虚接口的IP地址。

(IPv4网络)

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

(IPv6网络)

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

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

(4)      配置VSI虚接口为分布式网关接口。

distributed-gateway local

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

(5)      开启本地代理ARP或本地ND代理功能。

(IPv4网络)

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

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

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

(IPv6网络)

local-proxy-nd enable

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

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

(6)      开启VSI虚接口。

undo shutdown

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

(7)      退回系统视图。

quit

(8)      进入VXLAN所在VSI视图。

vsi vsi-name

(9)      为VSI指定网关接口。

gateway vsi-interface vsi-interface-id

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

3.5.3  开启分布式网关的动态ARP/ND表项同步功能

1. 功能简介

分布式VXLAN IP网关上开启本地代理ARP/ND功能时,本地网关不会将目标IP地址为分布式网关VSI虚接口的ARP/ND报文转发给其他网关,只有本地网关能够学习到ARP/ND报文发送者的ARP/ND表项。如果希望所有网关都能学习到该ARP/ND表项,需要开启分布式网关的动态ARP/ND表项同步功能。分布式VXLAN IP网关之间也可以通过控制器或EVPN等在彼此之间同步ARP/ND表项,此时无需开启该功能。

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

(1)      进入系统视图。

system-view

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

arp distributed-gateway dynamic-entry synchronize

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

3. 开启分布式网关的动态ND表项同步功能

(1)      进入系统视图。

system-view

(2)      开启分布式网关的动态ND表项同步功能。

ipv6 nd distributed-gateway dynamic-entry synchronize

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

3.6  管理ARP表项/ND表项

3.6.1  静态配置ARP表项

1. 功能简介

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

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      静态配置本地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 ]

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

(3)      静态配置远端ARP表项。

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

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

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

1. 功能简介

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

2. 配置限制和指导

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

3. 配置步骤

(1)      进入系统视图。

system-view

(2)      关闭远端ARP自动学习功能。

vxlan tunnel arp-learning disable

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

(3)      关闭远端ND自动学习功能。

vxlan tunnel nd-learning disable

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

3.7  配置VSI虚接口

3.7.1  配置VSI虚接口的可选参数

(1)      进入系统视图。

system-view

(2)      进入VSI虚接口视图。

interface vsi-interface vsi-interface-id

(3)      配置VSI虚接口的MAC地址。

mac-address mac-address

缺省情况下,VSI虚接口的MAC地址为设备桥MAC地址加26。

(4)      配置接口的描述信息。

description text

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

(5)      配置接口的MTU。

mtu size

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

(6)      配置接口的期望带宽。

bandwidth bandwidth-value

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

期望带宽供业务模块使用,不会对接口实际带宽造成影响。

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

arp send-rate pps

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

3.7.2  恢复VSI虚接口的缺省配置

1. 配置限制和指导

注意

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

 

您可以在执行default命令后通过display this命令确认执行效果。对于未能成功恢复缺省的配置,建议您查阅相关功能的命令手册,手工执行恢复该配置缺省情况的命令。如果操作仍然不能成功,您可以通过设备的提示信息定位原因。

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      进入VSI虚接口视图。

interface vsi-interface vsi-interface-id

(3)      恢复接口的缺省配置。

default

3.8  VXLAN IP网关显示和维护

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

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

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

操作

命令

显示VSI虚接口信息

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

清除VSI虚接口的统计信息

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

 

3.9  VXLAN IP网关典型配置举例

3.9.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-6 集中式VXLAN IP网关配置组网图

 

3. 配置步骤

(1)      配置设备工作的VXLAN模式。

# 配置Switch A、Switch B和Switch C工作的VXLAN模式,并重启设备。以Switch A配置为例,其他设备的配置方法与此相同。

<SwitchA> system-view

[SwitchA] switch-mode 1

Reboot device to make the configuration take effect.

[SwitchA] quit

<SwitchA> reboot

Start to check configuration with next startup configuration file, please wait..

.......DONE!

Current configuration may be lost after the reboot, save current configuration?

[Y/N]:y

This command will reboot the device. Continue? [Y/N]:y

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

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

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

(3)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

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

[SwitchA] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

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

[SwitchA-vsi-vpna] quit

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

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

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

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

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

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

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] quit

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

[SwitchA] interface tunnel 2 mode vxlan

[SwitchA-Tunnel2] source 1.1.1.1

[SwitchA-Tunnel2] destination 3.3.3.3

[SwitchA-Tunnel2] quit

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

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

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

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

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

[SwitchA-vsi-vpna] quit

# 在接入服务器的接口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与VXLAN 10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

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

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

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

[SwitchB-vsi-vpna] quit

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

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchB-Vsi-interface1] quit

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

[SwitchB] vsi vpna

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

[SwitchB-vsi-vpna] quit

(5)      配置Switch C

# 开启L2VPN能力。

<SwitchC> system-view

[SwitchC] l2vpn enable

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

[SwitchC] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

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

[SwitchC-vsi-vpna] quit

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

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 3.3.3.3 255.255.255.255

[SwitchC-Loopback0] quit

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

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 3.3.3.3

[SwitchC-Tunnel1] destination 1.1.1.1

[SwitchC-Tunnel1] quit

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

[SwitchC] interface tunnel 3 mode vxlan

[SwitchC-Tunnel3] source 3.3.3.3

[SwitchC-Tunnel3] destination 2.2.2.2

[SwitchC-Tunnel3] quit

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

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

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

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

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

[SwitchC-vsi-vpna] quit

# 在接入服务器的接口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: 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: 1444

Internet address: 10.1.1.1/24 (primary)

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

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

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

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

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

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

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

[SwitchB] display l2vpn vsi verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  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 20        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       Vsi1                     Null

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

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

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

1. 组网需求

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

具体需求为:

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

·              手工关联VXLAN和VXLAN隧道。

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

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

2. 组网图

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

3. 配置步骤

(1)      配置设备工作在VXLAN模式。

# 配置Switch A、Switch B和Switch C工作在VXLAN模式,并重启设备。以Switch A为例,其他设备的配置方法与此相同。

<SwitchA> system-view

[SwitchA] switch-mode 1

Reboot device to make the configuration take effect.

[SwitchA] quit

<SwitchA> reboot

Start to check configuration with next startup configuration file, please wait..

.......DONE!

Current configuration may be lost after the reboot, save current configuration?

[Y/N]:y

This command will reboot the device. Continue? [Y/N]:y

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

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

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

(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

# 创建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 30关联。

[SwitchA] vsi vpnc

[SwitchA-vsi-vpnc] vxlan 30

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

[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

# 创建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 30内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchA] interface vsi-interface 2

[SwitchA-Vsi-interface2] ip address 20.1.1.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 30所在的VSI实例和接口VSI-interface2关联。

[SwitchA] vsi vpnc

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

[SwitchA-vsi-vpnc] quit

# 配置缺省路由,设置缺省路由的下一跳为Switch B上接口VSI-interface1的IP地址10.1.1.2。

[SwitchA] ip route-static 0.0.0.0 0 10.1.1.2

(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

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

# 配置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 20.1.1.2 255.255.255.0

[SwitchB-Vsi-interface2] quit

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

[SwitchB] vsi vpna

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

[SwitchB-vsi-vpna] quit

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

[SwitchB] vsi vpnc

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

[SwitchB-vsi-vpnb] 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

# 创建VSI实例vpnb和VXLAN 30。

[SwitchC] vsi vpnb

[SwitchC-vsi-vpnb] vxlan 30

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

[SwitchC-vsi-vpnb] 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

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

[SwitchC] vsi vpnb

[SwitchC-vsi-vpnb] vxlan 30

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

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

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

[SwitchC-vsi-vpnb] 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实例vpnb关联。

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

[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

# 开启分布式网关的动态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

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

[SwitchC] interface vsi-interface 2

[SwitchC-Vsi-interface2] ip address 20.1.1.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

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

[SwitchC] vsi vpnb

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

[SwitchC-vsi-vpna] quit

# 配置缺省路由,设置缺省路由的下一跳为Switch B上接口VSI-interface1的IP地址20.1.1.2。

[SwitchA] ip route-static 0.0.0.0 0 20.1.1.2

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: 1444

Internet address: 10.1.1.1/24 (primary)

IP packet frame type: Ethernet II, hardware address: 0001-0001-0001

IPv6 packet frame type: Ethernet II, hardware address: 0001-0001-0001

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

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

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

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

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

[SwitchA] display l2vpn vsi name vpna verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  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

     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

20.1.1.12        0001-0001-0001 1         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: 1444

Internet address: 10.1.1.2/24 (primary)

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

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

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

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

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

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

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

[SwitchB] display l2vpn vsi name vpna verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flood proxy

    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

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 3之间可以互访;VM 1、VM 3可以与Switch E上接口Vlan-interface20的地址25.1.1.5之间互访。

3.9.3  分布式VXLAN IP网关连接IPv6网络配置举例

1. 组网需求

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

具体需求为:

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

·              手工关联VXLAN和VXLAN隧道。

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

2. 组网图

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

3. 配置步骤

(1)      配置设备工作在VXLAN模式。

# 配置Switch A、Switch B和Switch C工作在VXLAN模式,并重启设备。以Switch A为例,其他设备的配置方法与此相同。

<SwitchA> system-view

[SwitchA] switch-mode 1

Reboot device to make the configuration take effect.

[SwitchA] quit

<SwitchA> reboot

Start to check configuration with next startup configuration file, please wait..

.......DONE!

Current configuration may be lost after the reboot, save current configuration?

[Y/N]:y

This command will reboot the device. Continue? [Y/N]:y

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

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

# 配置各接口的地址;在IP核心网络内配置OSPF协议,确保交换机之间路由可达;配置Switch B和Switch E发布1::/64、4::/64和3::/64网段的路由。(具体配置过程略)

(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

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

# 在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

# 在接入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

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

[SwitchA] ipv6 nd distributed-gateway dynamic-entry synchronize

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

[SwitchA] interface vsi-interface 1

[SwitchA-Vsi-interface1] ipv6 address 1::1/64 anycast

[SwitchA-Vsi-interface1] distributed-gateway local

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

[SwitchA-Vsi-interface1] quit

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

[SwitchA] vsi vpna

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

[SwitchA-vsi-vpna] quit

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

[SwitchA] interface vsi-interface 2

[SwitchA-Vsi-interface2] ipv6 address 4::1/64 anycast

[SwitchA-Vsi-interface2] distributed-gateway local

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

[SwitchA-Vsi-interface2] quit

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

[SwitchA] vsi vpnb

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

[SwitchA-vsi-vpnb] quit

# 配置静态路由,指定到达网络3::/64网络的路由下一跳为Switch B的IPv6地址1::2。

[SwitchA] ipv6 route-static 3:: 64 1::2

(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

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

# 配置Tunnel2和Tunnel3与VXLAN20关联。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] vxlan 20

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

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

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

[SwitchB-vsi-vpnb] quit

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

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ipv6 address 1::2/64

[SwitchB-Vsi-interface1] quit

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

[SwitchB] interface vsi-interface 2

[SwitchB-Vsi-interface2] ipv6 address 4::2/64

[SwitchB-Vsi-interface2] 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

(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

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

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

[SwitchC] vsi vpnb

[SwitchC-vsi-vpnb] vxlan 20

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

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

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

[SwitchC-vsi-vpnb] quit

# 在接入VM 2的接口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实例vpnb关联。

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

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

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

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

[SwitchC] ipv6 nd distributed-gateway dynamic-entry synchronize

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

[SwitchC] interface vsi-interface 1

[SwitchC-Vsi-interface1] ipv6 address 1::1/64 anycast

[SwitchC-Vsi-interface1] distributed-gateway local

[SwitchC-Vsi-interface1] local-proxy-nd enable

[SwitchC-Vsi-interface1] quit

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

[SwitchC] vsi vpna

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

[SwitchC-vsi-vpna] quit

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

[SwitchC] interface vsi-interface 2

[SwitchC-Vsi-interface2] ipv6 address 4::1/64 anycast

[SwitchC-Vsi-interface2] distributed-gateway local

[SwitchC-Vsi-interface2] local-proxy-nd enable

[SwitchC-Vsi-interface2] quit

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

[SwitchC] vsi vpnb

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

[SwitchC-vsi-vpnb] quit

# 配置静态路由,指定到达网络3::/64网络的路由下一跳为Switch B的IPv6地址4::2。

[SwitchC] ipv6 route-static 3:: 64 4::2

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: 1444

Internet protocol processing: Disabled

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 A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的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

  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

     XGE1/0/1 srv1000                 0          Up       Manual

 

VSI Name: vpnb

  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 2

  VXLAN ID                : 20

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flood proxy

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  Up     Manual      Disabled

# 查看Switch A上IPv6 neighbors表项信息,可以看到已经建立的邻居信息。

[SwitchA] display ipv6 neighbors all

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

IPv6 address                   Link layer     VID  Interface      State T  Age

1::2                           3c8c-400d-867a 0    Tunnel1        STALE D  7

1::100                         0001-0000-0047 0    0              STALE D  22

4::400                         0002-0000-0047 1    Tunnel2        REACH D  5

FE80::201:FF:FE00:47           0001-0000-0047 0    Tunnel1        REACH D  30

FE80::202:FF:FE00:0            0002-0000-0000 1    Tunnel2        REACH D  27

FE80::202:FF:FE00:47           0002-0000-0047 0    0              DELAY D  5

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

[SwitchA] display ipv6 fib 4::400

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: 4::400                                         Prefix length: 128

Nexthop    : 4::400                                         Flags: UH

Time stamp : 0x2c                                           Label: Null

Interface  : Tunnel2                                        Token: Invalid

[SwitchA] display ipv6 fib 3::300

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: 3::                                            Prefix length: 40

Nexthop    : 1::2                                           Flags: USGR

Time stamp : 0x23                                           Label: Null

Interface  : Tunnel1                                        Token: Invalid

(2)      验证VXLAN IP边界网关设备Switch B

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

[SwitchB] display interface tunnel 2

Tunnel2

Current state: UP

Line protocol state: UP

Description: Tunnel2 Interface

Bandwidth: 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: 1444

Internet protocol processing: Disabled

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

  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

# 查看Switch B上IPv6 neighbors表项信息,可以看到已经建立的邻居信息。

[SwitchB] display ipv6 neighbors all

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

IPv6 address                   Link layer     VID  Interface      State T  Age

3::300                         0003-0000-0047 20   Vlan20         DELAY D  3

FE80::203:FF:FE00:47           0003-0000-0047 20   Vlan20         STALE D  222

1::100                         0001-0000-0047 0    Tunnel2        STALE D  232

4::400                         0002-0000-0047 1    Tunnel3        REACH D  3

FE80::201:FF:FE00:0            0001-0000-0000 0    Tunnel2        STALE D  237

FE80::201:FF:FE00:47           0001-0000-0047 20   Vlan20         STALE D  222

FE80::202:FF:FE00:0            0002-0000-0000 1    Tunnel3        STALE D  345

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

[SwitchB] display ipv6 fib 1::100

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: 1::100                                         Prefix length: 128

Nexthop    : 1::100                                         Flags: UH

Time stamp : 0x21                                           Label: Null

Interface  : Tunnel2                                        Token: Invalid

[SwitchB] display ipv6 fib 4::400

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: 4::                                            Prefix length: 64

Nexthop    : ::                                             Flags: U

Time stamp : 0x19                                           Label: Null

Interface  : Tunnel3                                        Token: Invalid

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

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


4 OVSDB-VTEP

4.1  OVSDB-VTEP简介

OVSDB(Open vSwitch Database,开源虚拟交换机数据库)控制协议用来实现NVC(Network Virtualization Controller,网络虚拟化控制器)对网络中VTEP设备的管理和部署。

4.1.1  工作机制

图4-1所示,VTEP设备上维护OVSDB数据库,VXLAN相关配置以表项的形式保存在该数据库中。控制器与VTEP设备上的OVSDB服务器建立连接,二者采用OVSDB控制协议进行交互并操作OVSDB数据库中的数据。OVSDB VTEP服务从OVSDB服务器获取数据库中的数据,将其转变为VXLAN相关配置(例如创建或删除VXLAN、创建或删除VXLAN隧道)下发到设备上。同时,OVSDB VTEP服务也会通过OVSDB服务器,将本地的用户侧接入端口和VXLAN隧道全局源地址信息添加到数据库中,并上报给控制器。

图4-1 OVSDB-VTEP示意图

 

4.1.2  协议规范

与OVSDB相关的协议规范有:

·              RFC 7047:The Open vSwitch Database Management Protocol

4.2  OVSDB-VTEP配置限制和指导

用户可以同时通过命令行和控制器配置VTEP设备。建议不要在VTEP设备上通过命令行删除控制器下发的配置。

4.3  OVSDB-VTEP配置任务简介

要实现控制器对VTEP设备的部署,需要在VTEP设备上进行如下配置:

(1)      与控制器建立OVSDB连接

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

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

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

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

(2)      开启OVSDB服务器

(3)      开启OVSDB VTEP服务

(4)      配置VXLAN隧道的全局源地址

指定用户侧的接入端口

4.4  OVSDB-VTEP配置准备

在进行OVSDB-VTEP相关配置前,需要首先通过l2vpn enable命令开启L2VPN功能。

如果OVSDB服务器与控制器之间建立SSL连接,则还需要完成SSL相关配置,详细配置方法请参见“安全配置指导”中的“SSL”。

4.5  与控制器建立OVSDB连接

4.5.1  OVSDB连接类型

OVSDB服务器和控制器之间可以建立多种类型的OVSDB连接,设备支持的OVSDB连接类型包括:

·              主动SSL连接:OVSDB服务器主动向控制器发起SSL连接。

·              被动SSL连接:OVSDB服务器监听并接收来自控制器的SSL连接请求。

·              主动TCP连接:OVSDB服务器主动向控制器发起TCP连接。

·              被动TCP连接:OVSDB服务器监听并接收来自控制器的TCP连接请求。

4.5.2  配置限制和指导

配置OVSDB服务器与控制器建立OVSDB连接时,需要注意:

·              OVSDB服务器支持同时与多个控制器建立连接,且支持同时建立多种类型的连接。

·              在开启OVSDB服务器之前,必须先建立OVSDB连接。如果在开启OVSDB服务器之后修改OVSDB连接,那么需要关闭OVSDB服务器后再重新开启,新的连接配置才能生效。

·              所有SSL连接,包括主动SSL连接和被动SSL连接,需要使用相同的PKI域和CA证书文件。

4.5.3  配置准备

OVSDB服务器与控制器主动SSL连接和被动SSL连接前,需要先创建PKI域,具体方法请参见“安全配置指导”中的“PKI”。

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

(1)      进入系统视图。

system-view

(2)      指定与控制器进行SSL通信时使用的PKI域。

ovsdb server pki domain domain-name

缺省情况下,未指定与控制器进行SSL通信时使用的PKI域。

(3)      (可选)设置SSL通信时使用的CA证书文件。

ovsdb server bootstrap ca-certificate ca-filename

缺省情况下,与控制器进行SSL通信时使用PKI域中的CA证书文件。

如果指定的CA证书文件不存在,则使用开启OVSDB服务器时通过SSL连接获取的自签名证书,并通过本命令指定证书文件名。

(4)      与控制器建立主动SSL连接。

ovsdb server ssl ip ip-address port port-number

缺省情况下,不会与控制器建立主动SSL连接。

OVSDB服务器最多可以同时与8个控制器建立主动SSL连接。

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

(1)      进入系统视图。

system-view

(2)      指定与控制器进行SSL通信时使用的PKI域。

ovsdb server pki domain domain-name

缺省情况下,未指定与控制器进行SSL通信时使用的PKI域。

(3)      (可选)设置SSL通信时使用的CA证书文件。

ovsdb server bootstrap ca-certificate ca-filename

缺省情况下,与控制器进行SSL通信时使用PKI域中的CA证书文件。

如果指定的CA证书文件不存在,则使用开启OVSDB服务器时通过SSL连接获取的自签名证书,并通过本命令指定证书文件名。

(4)      与控制器建立被动SSL连接。

ovsdb server pssl [ port  port-number ]

缺省情况下,不会与控制器建立被动SSL连接。

OVSDB服务器只能监听1个端口的SSL连接请求。

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

(1)      进入系统视图。

system-view

(2)      与控制器建立主动TCP连接。

ovsdb server tcp ip ip-address port port-number

缺省情况下,不会与控制器建立主动TCP连接。

OVSDB服务器最多可以同时与8个控制器建立主动TCP连接。

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

(1)      进入系统视图。

system-view

(2)      与控制器建立被动TCP连接。

ovsdb server ptcp [ port port-number ]

缺省情况下,不会与控制器建立被动TCP连接。

OVSDB服务器只能监听1个端口的TCP连接请求。

4.6  开启OVSDB服务器

1. 配置准备

在开启OVSDB服务器之前,必须先建立OVSDB连接。如果在开启OVSDB服务器之后修改OVSDB连接,那么需要关闭OVSDB服务器后再重新开启,新的连接配置才能生效。

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      开启OVSDB服务器。

ovsdb server enable

缺省情况下,OVSDB服务器处于关闭状态。

4.7  开启OVSDB VTEP服务

(1)      进入系统视图。

system-view

(2)      开启OVSDB VTEP服务。

vtep enable

缺省情况下,OVSDB VTEP服务处于关闭状态。

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

1. 功能简介

用户需要在VTEP设备上配置VXLAN隧道的全局源地址,该地址会通过OVSDB协议上报给控制器,用于控制器对VTEP设备进行部署和控制。

2. 配置限制和指导

采用OVSDB对VTEP设备进行部署和控制时,用户不能在VXLAN隧道的Tunnel接口下手工指定源地址,否则会影响控制器对VTEP设备的管理。

3. 配置步骤

(1)      进入系统视图。

system-view

(2)      配置VXLAN隧道的全局源地址。

tunnel global source-address ip-address

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

4.9  指定用户侧的接入端口

1. 功能简介

为了在控制器上显示VTEP上的端口并对其进行控制,必须在VTEP上将该端口配置为用户侧的接入端口。

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      进入接口视图。

interface interface-type interface-number

(3)      指定当前接口为用户侧的接入端口。

vtep access port

缺省情况下,当前接口不是用户侧的接入端口。

4.10  OVSDB-VTEP典型配置举例

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

1. 组网需求

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

具体需求为:

·              通过控制器下发配置,在不同VTEP之间建立VXLAN隧道。

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

2. 组网图

图4-2 OVSDB-VTEP头端复制组网图

 

3. 配置步骤

(1)      配置设备工作在VXLAN模式。

# 配置Switch A、Switch B和Switch C工作在VXLAN模式,并重启设备。以Switch A为例,其他设备的配置方法与此相同。

<SwitchA> system-view

[SwitchA] switch-mode 1

Reboot device to make the configuration take effect.

[SwitchA] quit

<SwitchA> reboot

Start to check configuration with next startup configuration file, please wait..

.......DONE!

Current configuration may be lost after the reboot, save current configuration?

[Y/N]:y

This command will reboot the device. Continue? [Y/N]:y

(2)      配置IP地址、单播路由协议、控制器

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

(3)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchA] ovsdb server tcp ip 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchA] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchA] vtep enable

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

[SwitchA] interface loopback 0

[SwitchA-LoopBack0] ip address 1.1.1.1 255.255.255.255

[SwitchA-LoopBack0] quit

[SwitchA] tunnel global source-address 1.1.1.1

# 指定接入服务器的接口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

(4)      配置Switch B

# 开启L2VPN功能。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchB] ovsdb server tcp 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchB] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchB] vtep enable

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

[SwitchB] interface loopback 0

[SwitchB-LoopBack0] ip address 2.2.2.2 255.255.255.255

[SwitchB-LoopBack0] quit

[SwitchB] tunnel global source-address 2.2.2.2

# 指定接入服务器的接口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

(5)      配置Switch C

# 开启L2VPN功能。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchC] ovsdb server tcp ip 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchC] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchC] vtep enable

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

[SwitchC] interface loopback 0

[SwitchC-LoopBack0] ip address 3.3.3.3 255.255.255.255

[SwitchC-LoopBack0] quit

[SwitchC] tunnel global source-address 3.3.3.3

# 指定接入服务器的接口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

(6)      控制器上进行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: 64 kbps

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

  Statistics              : Disabled

  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

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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们