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

17-VXLAN配置指导

目录

01-VXLAN配置

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

01-VXLAN配置

  录

1 VXLAN简介

1.1 VXLAN网络模型

1.2 VXLAN报文封装格式

1.3 VXLAN运行机制

1.3.2 识别报文所属的VXLAN

1.3.3 学习MAC地址

1.3.4 接入模式

1.3.5 转发单播流量

1.3.6 转发泛洪流量

1.4 ARP泛洪抑制

1.5 协议规范

2 配置VXLAN

2.1 VXLAN配置任务简介

2.2 创建VSI和VXLAN

2.3 创建VXLAN隧道

2.4 关联VXLAN与VXLAN隧道

2.5 配置AC与VSI关联

2.6 管理本地和远端MAC地址

2.6.1 配置本端MAC地址添加/删除的日志功能

2.6.2 添加静态远端MAC地址

2.6.3 开启远端MAC地址自动学习功能

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

2.8 配置VSI泛洪抑制

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

2.10 配置VXLAN报文检查功能

2.11 配置ARP泛洪抑制

2.12 配置VTEP保护组的成员地址列表

2.13 配置VXLAN统计功能

2.14 VXLAN显示和维护

2.15 VXLAN典型配置举例

2.15.1 VXLAN头端复制配置举例

2.15.2 VXLAN核心复制配置举例

3 OVSDB-VTEP

3.1 简介

3.2 协议规范

3.3 OVSDB-VTEP配置任务简介

3.4 配置准备

3.5 与控制器建立OVSDB连接

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

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

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

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

3.6 启动OVSDB服务

3.7 开启VTEP功能

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

3.9 指定接入侧端口

3.10 关闭报文入接口与静态MAC地址表项匹配检查功能

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

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

3.13 OVSDB-VTEP典型配置举例

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

3.13.2 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头转发报文,降低了网络部署的难度和费用。

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

1.1  VXLAN网络模型

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

 

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

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

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

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

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

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

1.2  VXLAN报文封装格式

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

 

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

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

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

1.3  VXLAN运行机制

VXLAN运行机制可以概括为:

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

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

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

1.3.2  识别报文所属的VXLAN

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

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

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

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

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

 

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

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

1.3.3  学习MAC地址

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

1. 本地MAC地址学习

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

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

2. 远端MAC地址学习

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

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

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

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

1.3.4  接入模式

接入模式分为以下两种:

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

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

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

1.3.5  转发单播流量

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

1. 站点内流量

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

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

 

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

2. 站点间流量

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

 

图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从接口FortyGigE1/0/1收到该数据帧后,判断该数据帧属于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的出端口为FortyGigE1/0/1,所在VLAN为VLAN 20。

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

1.3.6  转发泛洪流量

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

 

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

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

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

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

说明

目前泛洪代理方式主要用于SDN网络,使用虚拟服务器作为泛洪代理服务器。此时需要在VTEP设备上使用vxlan tunnel mac-learning disable命令关闭远端MAC地址自动学习功能,并配置与VXLAN对应的Openflow实例,采用SDN控制器下发的MAC地址表项进行流量转发。

 

1.4  ARP泛洪抑制

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

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

 

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

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

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

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

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

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

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

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

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

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

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

1.5  协议规范

与VXLAN相关的协议规范有:

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


2 配置VXLAN

2.1  VXLAN配置任务简介

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

表2-1 VXLAN配置任务简介

配置任务

说明

详细配置

创建VSI和VXLAN

必选

2.2 

创建VXLAN隧道

必选

2.3 

关联VXLAN与VXLAN隧道

必选

2.4 

配置AC与VSI关联

必选

2.5 

管理本地和远端MAC地址

可选

2.6 

配置VXLAN组播路由泛洪方式

可选

2.7 

配置VSI泛洪抑制

可选

2.8 

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

可选

2.9 

配置VXLAN报文检查功能

可选

2.10 

配置ARP泛洪抑制

可选

2.11 

配置VTEP保护组的成员地址列表

可选

2.12 

配置VXLAN流量统计

可选

2.13 

 

2.2  创建VSI和VXLAN

表2-2 创建VSI和VXLAN

操作

命令

说明

进入系统视图

system-view

-

使能L2VPN功能

l2vpn enable

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

(可选)配置保留VXLAN

reserved vxlan vxlan-id

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

创建VSI,并进入VSI视图

vsi vsi-name

缺省情况下,设备上不存在任何VSI

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

description text

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

开启当前的VSI

undo shutdown

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

创建VXLAN,并进入VXLAN视图

vxlan vxlan-id

缺省情况下,设备上不存在任何VXLAN

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

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

 

2.3  创建VXLAN隧道

提示

VXLAN隧道两端的VTEP直连时,建议不要使用相同的物理接口连接不同的VTEP。

 

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

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

表2-3 手工创建VXLAN隧道

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN隧道的全局源地址

tunnel global source-address ipv4-address

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

如果VXLAN隧道Tunnel接口下没有指定源端地址或源接口,则使用全局源地址

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

interface tunnel tunnel-number mode vxlan

缺省情况下,设备上不存在任何Tunnel接口

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

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

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

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

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

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

配置隧道的目的端地址

destination ipv4-address

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

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

(可选)开启隧道的BFD检测功能,并设置BFD报文的目的MAC地址

tunnel bfd enable destination-mac mac-address

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

开启隧道的BFD检测功能后,VTEP将自动建立单跳控制报文方式的BFD会话VXLAN隧道的状态进行检测。检测方式为:隧道两端的VTEP设备均周期性地向配置的目的MAC地址发送BFD控制报文,并对报文进行VXLAN隧道封装,如果在5秒内没有接收到对端发送的BFD控制报文,则将隧道状态置为Defect,隧道接口状态仍为Up。当VXLAN隧道恢复正常后,隧道状态可自动恢复Up

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

 

2.4  关联VXLAN与VXLAN隧道

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

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

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

进入VXLAN视图

vxlan vxlan-id

-

配置VXLAN与VXLAN隧道关联

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

缺省情况下,VXLAN没有与任何VXLAN隧道关联

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

配置VXLAN与带flooding-proxy属性的隧道关联后,VXLAN内的广播、组播和未知单播流量将通过该隧道发送到泛洪代理服务器,由代理服务器进行复制并转发到其他远端VTEP

仅R2422及以上版本支持all参数

 

2.5  配置AC与VSI关联

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

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

操作

命令

说明

进入系统视图

system-view

-

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

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

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

service-instance instance-id

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

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

匹配当前端口接收的所有报文

encapsulation default

请用户选择其中一种匹配方式进行配置

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

匹配携带任意VLAN标签或不携带VLAN标签的报文

encapsulation { tagged | untagged }

匹配携带指定外层VLAN标签的报文

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

匹配携带指定外层和内层VLAN标签的报文(仅R2422及以上版本支持)

encapsulation s-vid vlan-id c-vid vlan-id

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

xconnect vsi vsi-name [ access-mode { ethernet | vlan } ]

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

如果通过encapsulation命令配置的匹配规则为defaulttaggeduntagged,则本命令指定的接入模式不会生效,均按照Ethernet接入模式处理报文

 

注意

·     不要在同一接口上同时创建以太网服务实例和使能EVB功能,否则二者均将无法正常工作。有关EVB功能的详细介绍请参见“EVB配置指导”。

·     以太网服务实例所匹配的VLAN,不能是设备上开启EVB功能的接口允许通过的VLAN。

·     不要在同一接口上同时创建用于VXLAN的以太网服务实例和用于MPLS L2VPN、VPLS、SPBM或PBB的以太网服务实例,否则VXLAN将无法正常工作。有关MPLS L2VPN、VPLS功能的详细介绍请参见“MPLS配置指导”;有关SPBM功能的详细介绍请参见“SPB配置指导”;有关PBB功能的详细介绍请参见“二层技术-以太网交换配置指导”。

·     在接口上创建以太网服务实例匹配当前接口接收的部分VLAN的报文后,以太网服务实例未匹配的其它VLAN内的组播流量将无法正常转发,请注意避免在上述情况下使用组播业务。

 

2.6  管理本地和远端MAC地址

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

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

2.6.1  配置本端MAC地址添加/删除的日志功能

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

表2-6 配置本端MAC地址添加/删除的日志功能

操作

命令

说明

进入系统视图

system-view

-

开启VXLAN本地MAC地址添加/删除的日志功能

vxlan local-mac report

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

 

2.6.2  添加静态远端MAC地址

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

操作

命令

说明

进入系统视图

system-view

-

添加静态远端MAC地址表项

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

缺省情况下,设备上不存在任何静态的远端MAC地址表项

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

 

2.6.3  开启远端MAC地址自动学习功能

缺省情况下,设备可以自动学习远端MAC地址。如果网络中存在攻击,为了避免学习到错误的远端MAC地址,也可以手工关闭远端MAC地址自动学习功能。

表2-8 开启远端MAC地址自动学习功能

操作

命令

说明

进入系统视图

system-view

-

开启远端MAC地址自动学习功能

undo vxlan tunnel mac-learning disable

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

 

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

说明

配置VXLAN采用组播路由方式转发泛洪流量后,如果组播路由隧道down掉,即使还存在单播路由隧道,泛洪流量也不会沿单播路由隧道转发。

 

配置VXLAN组播路由泛洪方式时,需要完成以下配置任务:

·     在VTEP和核心设备上启动三层组播路由功能。

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

表2-9 配置VXLAN组播路由泛洪方式

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

进入VXLAN视图

vxlan vxlan-id

-

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

group group-address source source-address

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

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

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

进入组播报文源IP地址所在接口的接口视图

interface interface-type interface-number

组播报文源IP地址是指通过group命令中的source参数指定的地址

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

igmp host enable

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

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

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

 

2.8  配置VSI泛洪抑制

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

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

表2-10 配置VSI泛洪抑制

操作

命令

说明

 

进入系统视图

system-view

-

 

进入VSI视图

vsi vsi-name

-

关闭VSI的泛洪功能

flooding disable

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

 

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

selective-flooding mac-addres mac-address

缺省情况下,设备上不存在任何VSI选择性泛洪MAC地址

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

 

 

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

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

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

操作

命令

说明

进入系统视图

system-view

-

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

vxlan udp-port port-number

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

 

2.10  配置VXLAN报文检查功能

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

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

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

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

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

操作

命令

说明

进入系统视图

system-view

-

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

vxlan invalid-udp-checksum discard

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

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

vxlan invalid-vlan-tag discard

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

 

2.11  配置ARP泛洪抑制

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

注意

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

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

·     当需要和其它厂商的VTEP设备互通时,不能使用ARP泛洪抑制功能。

 

表2-13 配置ARP泛洪抑制

操作

命令

说明

 

进入系统视图

system-view

-

 

进入VSI视图

vsi vsi-name

-

开启ARP泛洪抑制功能

arp suppression enable

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

 

 

2.12  配置VTEP保护组的成员地址列表

VTEP保护组由多台VTEP设备作为成员组成,对外提供保护组组IP地址用于VXLAN数据转发,同时各成员之间使用成员IP地址进行协议通信和表项同步。

使用VTEP保护组做为集中式VXLAN IP网关的组网中,接入层VTEP设备需要指定保护组组IP地址作为网关地址,同时需要指定保护组成员地址列表,配合保护组实现网关备份功能。

本系列设备仅支持用做接入层VTEP设备,不支持用做网关,有关VTEP保护组的详细介绍请参考网关设备配套资料。

表2-14 配置VTEP保护组的成员地址列表

操作

命令

说明

进入系统视图

system-view

-

配置VTEP保护组的成员地址列表

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

缺省情况下,设备上没有配置VTEP保护组的成员地址列表

 

2.13  配置VXLAN统计功能

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

操作

命令

说明

进入系统视图

system-view

-

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

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

进入以太网服务实例视图

service-instance instance-id

-

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

statistics enable

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

有关本命令的详细介绍请参见“MPLS命令参考”中的“VPLS”

返回用户视图

return

-

(可选)清除以太网服务实例的报文统计信息

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

有关本命令的详细介绍请参见“MPLS命令参考”中的“VPLS”

 

2.14  VXLAN显示和维护

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

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

表2-16 VXLAN显示和维护

操作

命令

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

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

显示VSI的MAC地址表信息

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

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

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

显示VSI的信息

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

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

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

显示Tunnel接口信息

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

显示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 ]

清除以太网服务实例的报文统计信息

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

 

说明

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

·     reset l2vpn statistics ac命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。

 

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)     配置IP地址和单播路由协议

请按照图2-1配置各接口的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 loopback0

[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-vxlan10] tunnel 1

[SwitchA-vsi-vpna-vxlan10] tunnel 2

[SwitchA-vsi-vpna-vxlan10] quit

[SwitchA-vsi-vpna] quit

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

[SwitchA] interface fortygige 1/0/1

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

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

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

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

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

[SwitchA-FortyGigE1/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-vxlan10] quit

[SwitchB-vsi-vpna] quit

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

[SwitchB] interface loopback0

[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-vxlan10] tunnel 2

[SwitchB-vsi-vpna-vxlan10] tunnel 3

[SwitchB-vsi-vpna-vxlan10] quit

[SwitchB-vsi-vpna] quit

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

[SwitchB] interface fortygige 1/0/1

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

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

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

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

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

[SwitchB-FortyGigE1/0/1] 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-vxlan10] quit

[SwitchC-vsi-vpna] quit

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

[SwitchC] interface loopback0

[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-vxlan10] tunnel 1

[SwitchC-vsi-vpna-vxlan10] tunnel 3

[SwitchC-vsi-vpna-vxlan10] quit

[SwitchC-vsi-vpna] quit

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

[SwitchC] interface fortygige 1/0/1

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

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

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

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

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

[SwitchC-FortyGigE1/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

# 查看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         : -

  Drop Unknown            : -

  Flooding                : Enabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flooding proxy

    Tunnel1              0x5000001  Up       Manual      Disabled

    Tunnel2              0x5000002  Up       Manual      Disabled

  ACs:

    AC                               Link ID    State

    FGE1/0/1 srv1000                 0          Up

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

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb   Dynamic  vpna                            Tunnel1       Aging

cc3e-5f9c-23dc   Dynamic  vpna                            Tunnel2       Aging

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

(2)     验证主机

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

2.15.2  VXLAN核心复制配置举例

1. 组网需求

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

具体需求为:

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

·     手工关联VXLAN和VXLAN隧道。

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

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

2. 组网图

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

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlan-int11

11.1.1.1/24

Switch C

Vlan-int13

13.1.1.3/24

Switch D

Vlan-int11

11.1.1.4/24

Switch E

Vlan-int13

13.1.1.5/24

 

Vlan-int21

21.1.1.4/24

 

Vlan-int23

23.1.1.5/24

Switch F

Vlan-int21

21.1.1.6/24

Switch G

Vlan-int12

12.1.1.7/24

 

Vlan-int22

22.1.1.6/24

 

Vlan-int22

22.1.1.7/24

 

Vlan-int23

23.1.1.6/24

Switch B

Vlan-int12

12.1.1.2/24

 

Loop0

6.6.6.6/32

 

 

 

 

3. 配置步骤

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

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

(2)     配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 使能IP组播路由。

[SwitchA] multicast routing

[SwitchA-mrib] quit

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan10] 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-vxlan10] tunnel 1

[SwitchA-vsi-vpna-vxlan10] tunnel 2

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

[SwitchA-vsi-vpna-vxlan10] group 225.1.1.1 source 11.1.1.1

[SwitchA-vsi-vpna-vxlan10] quit

[SwitchA-vsi-vpna] quit

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

[SwitchA] interface fortygige 1/0/1

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

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

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

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

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

[SwitchA-FortyGigE1/0/1] quit

(3)     配置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-vxlan10] 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-vxlan10] tunnel 2

[SwitchB-vsi-vpna-vxlan10] tunnel 3

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

[SwitchB-vsi-vpna-vxlan10] group 225.1.1.1 source 12.1.1.2

[SwitchB-vsi-vpna-vxlan10] quit

[SwitchB-vsi-vpna] quit

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

[SwitchB] interface fortygige 1/0/1

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

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

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

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

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

[SwitchB-FortyGigE1/0/1] quit

(4)     配置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-vxlan10] 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-vxlan10] tunnel 1

[SwitchC-vsi-vpna-vxlan10] tunnel 3

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

[SwitchC-vsi-vpna-vxlan10] group 225.1.1.1 source 13.1.1.3

[SwitchC-vsi-vpna-vxlan10] quit

[SwitchC-vsi-vpna] quit

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

[SwitchC] interface fortygige 1/0/1

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

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

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

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

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

[SwitchC-FortyGigE1/0/1] quit

(5)     配置Switch D

# 使能IP组播路由。

<SwitchD> system-view

[SwitchD] multicast routing

[SwitchD-mrib] quit

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

[SwitchD] interface vlan-interface 11

[SwitchD-Vlan-interface11] igmp enable

[SwitchD-Vlan-interface11] quit

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

[SwitchD] interface vlan-interface 21

[SwitchD-Vlan-interface21] pim sm

[SwitchD-Vlan-interface21] quit

# 使能双向PIM。

[SwitchD] pim

[SwitchD-pim] bidir-pim enable

[SwitchD-pim] quit

(6)     配置Switch E

# 使能IP组播路由。

<SwitchE> system-view

[SwitchE] multicast routing

[SwitchE-mrib] quit

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

[SwitchE] interface vlan-interface 13

[SwitchE-Vlan-interface13] igmp enable

[SwitchE-Vlan-interface13] quit

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

[SwitchE] interface vlan-interface 23

[SwitchE-Vlan-interface23] pim sm

[SwitchE-Vlan-interface23] quit

# 使能双向PIM。

[SwitchE] pim

[SwitchE-pim] bidir-pim enable

[SwitchE-pim] quit

(7)     配置Switch F

# 使能IP组播路由。

<SwitchF> system-view

[SwitchF] multicast routing

[SwitchF-mrib] quit

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

[SwitchF] interface vlan-interface 21

[SwitchF-Vlan-interface21] pim sm

[SwitchF-Vlan-interface21] quit

[SwitchF] interface vlan-interface 22

[SwitchF-Vlan-interface22] pim sm

[SwitchF-Vlan-interface22] quit

[SwitchF] interface vlan-interface 23

[SwitchF-Vlan-interface23] pim sm

[SwitchF-Vlan-interface23] quit

# 使能双向PIM。

[SwitchF] pim

[SwitchF-pim] bidir-pim enable

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

[SwitchF-pim] c-bsr 22.1.1.6

[SwitchF-pim] c-rp 6.6.6.6 bidir

[SwitchF-pim] quit

(8)     配置Switch G

# 使能IP组播路由。

<SwitchG> system-view

[SwitchG] multicast routing

[SwitchG-mrib] quit

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

[SwitchG] interface vlan-interface 12

[SwitchG-Vlan-interface12] igmp enable

[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: 64 kbps

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

# 查看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         : -

  Drop Unknown            : -

  Flooding                : Enabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flooding proxy

    Tunnel1              0x5000001  Up       Manual      Disabled

    Tunnel2              0x5000002  Up       Manual      Disabled

    MTunnel0             0x6000000  Up       Auto        Disabled

  ACs:

    AC                               Link ID    State

    FGE1/0/1 srv1000                 0          Up

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

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb   Dynamic  vpna                            Tunnel1       Aging

cc3e-5f9c-23dc   Dynamic  vpna                            Tunnel2       Aging

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

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

<SwitchA> display igmp host group

IGMP host groups in total: 1

 Vlan-interface11(11.1.1.1):

  IGMP host groups in total: 1

   Group address      Member state      Expires

   225.1.1.1          Idle              Off

(2)     验证主机

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

 


3 OVSDB-VTEP

3.1  简介

在数据中心网络,通过NVC(Network Virtualization Controller,网络虚拟化控制器),使用OVSDB控制协议(Open vSwitch Database management protocol)可以方便地对VTEP设备进行部署和变更。

3.2  协议规范

与OVSDB相关的协议规范有:

·     RFC 7047:The Open vSwitch Database Management Protocol

3.3  OVSDB-VTEP配置任务简介

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

表3-1 OVSDB-VTEP配置任务简介

配置任务

说明

详细配置

与控制器建立OVSDB连接

与控制器建立主动SSL连接

必选

设备支持同时与多个控制器建立连接,且支持同时建立多种类型的连接

3.5.1 

与控制器建立被动SSL连接

3.5.2 

与控制器建立主动TCP连接

3.5.3 

与控制器建立被动TCP连接

3.5.4 

启动OVSDB服务

必选

3.6 

开启VTEP功能

必选

3.7 

配置VXLAN隧道的全局源地址

必选

3.8 

指定接入侧端口

必选

3.9 

关闭报文入接口与静态MAC地址表项匹配检查功能

可选

3.10 

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

可选

3.11 

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

可选

3.12 

 

3.4  配置准备

在进行OVSDB-VTEP相关配置前,需要首先使能L2VPN功能,有关l2vpn enable命令的详细介绍请参见“MPLS命令参考”中的“MPLS L2VPN”。

3.5  与控制器建立OVSDB连接

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

·     主动SSL连接:设备主动向控制器发起SSL连接。该连接方式必须指定SSL通信的密钥文件、证书文件和CA证书文件。设备最多可以同时与8个控制器建立主动SSL连接

·     被动SSL连接:设备监听并接收来自控制器的SSL连接请求。该连接方式必须指定SSL通信的密钥文件、证书文件和CA证书文件。设备只能监听1个端口的SSL连接请求。

·     主动TCP连接:设备主动向控制器发起TCP连接。设备最多可以同时与8个控制器建立主动TCP连接。

·     被动TCP连接:设备监听并接收来自控制器的TCP连接请求。设备只能监听1个端口的TCP连接请求。

说明

所有SSL连接,包括主动SSL连接和被动SSL连接,使用相同的密钥文件、证书文件和CA证书文件。

 

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

表3-2 与控制器建立主动SSL连接

操作

命令

说明

进入系统视图

system-view

-

设置SSL通信中的密钥文件

ovsdb server private-key key-filename

缺省情况下,没有设置SSL通信中的密钥文件

设置SSL通信中的证书文件

ovsdb server certificate cert-filename

缺省情况下,没有设置SSL通信中的证书文件

设置SSL通信中的CA证书文件

ovsdb server ca-certificate ca-filename [ bootstrap ]

缺省情况下,没有设置SSL通信中的CA证书文件

与控制器建立主动SSL连接

ovsdb server ssl ipv4-address port port-number

缺省情况下,没有与控制器建立主动SSL连接

 

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

表3-3 与控制器建立被动SSL连接

操作

命令

说明

进入系统视图

system-view

-

设置SSL通信中的密钥文件

ovsdb server private-key key-filename

缺省情况下,没有设置SSL通信中的密钥文件

设置SSL通信中的证书文件

ovsdb server certificate cert-filename

缺省情况下,没有设置SSL通信中的证书文件

设置SSL通信中的CA证书文件

ovsdb server ca-certificate ca-filename [ bootstrap ]

缺省情况下,没有设置SSL通信中的CA证书文件

开启SSL监听服务

ovsdb server pssl port [ port-number ]

缺省情况下,没有开启SSL监听服务

 

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

表3-4 与控制器建立主动TCP连接

操作

命令

说明

进入系统视图

system-view

-

与控制器建立主动TCP连接

ovsdb server tcp ipv4-address port port-number

缺省情况下,没有与控制器建立主动TCP连接

 

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

表3-5 与控制器建立被动TCP连接

操作

命令

说明

进入系统视图

system-view

-

开启TCP监听服务

ovsdb server ptcp port [ port-number ]

缺省情况下,没有开启TCP监听服务

 

3.6  启动OVSDB服务

在启动OVSDB服务之前设备必须首先与至少一个控制器建立OVSDB连接。

表3-6 启动OVSDB服务

操作

命令

说明

进入系统视图

system-view

-

启动OVSDB服务

ovsdb server enable

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

 

3.7  开启VTEP功能

设备只有开启VTEP功能后,才能与控制器交互OVSDB-VTEP相关配置信息。

表3-7 开启VTEP功能

操作

命令

说明

进入系统视图

system-view

-

开启VTEP功能

vtep enable

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

 

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

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

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

表3-8 配置VXLAN隧道的全局源地址

操作

命令

说明

进入系统视图

system-view

-

配置VXLAN隧道的全局源地址

tunnel global source-address ipv4-address

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

 

3.9  指定接入侧端口

只有将接口配置为接入侧端口后,控制器上才能够显示该端口并对其进行控制。

说明

将接口配置为接入侧端口后,建议不要在该接口下进行手工配置,避免影响控制器对接入侧端口的管理。

 

表3-9 指定接入侧端口

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

指定当前接口为接入侧端口

vtep access port

缺省情况下,接口不是接入侧端口

 

3.10  关闭报文入接口与静态MAC地址表项匹配检查功能

缺省情况下,报文入接口与静态MAC地址表项匹配检查功能处于开启状态。此时,设备会将接收到的报文的源MAC地址与静态MAC地址表项进行匹配。如果存在MAC地址与报文的源MAC相同的表项,但表项的出接口不是接收报文的端口,设备会丢弃该报文。

关闭报文入接口与静态MAC地址表项匹配检查功能后,设备不进行上述检查,即使存在上述类型的静态MAC地址表项,也会转发报文。

采用泛洪代理(服务器复制)方式转发站点间的泛洪流量时,必须在网络侧接口上关闭报文入接口与静态MAC地址表项匹配检查功能。

注意

当VTEP设备为IRF设备时,成员设备间互连的IRF端口上也需要关闭报文入接口与静态MAC地址表项匹配检查功能。

 

表3-10 关闭报文入接口与静态MAC地址表项匹配检查功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

进入二层以太网接口视图

interface interface-type interface-number

-

进入二层聚合接口视图

interface bridge-aggregation interface-number

进入三层以太网接口/子接口视图

interface interface-type { interface-number | interface-number.subnumber }

进入三层聚合接口/子接口视图

interface route-aggregation { interface-number | interface-number.subnumber }

关闭报文入接口与静态MAC地址表项匹配检查功能

undo mac-address static source-check enable

缺省情况下,报文入接口与静态MAC地址表项匹配检查功能处于开启状态

有关该命令的详细介绍请参见“二层技术-以太网交换命令参考”中的“MAC地址表”

 

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

采用泛洪代理(服务器复制)方式转发站点间的泛洪流量时,需要在VTEP设备上关闭远端MAC地址自动学习功能,采用控制器下发的MAC地址表项进行流量转发。

表3-11 关闭远端MAC地址自动学习功能

操作

命令

说明

进入系统视图

system-view

-

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

vxlan tunnel mac-learning disable

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

 

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

开启组播隧道泛洪代理功能后,系统会将控制器下发的组播隧道转换为具有flooding-proxy属性的隧道。VXLAN内的广播、组播和未知单播流量将通过具有flooding-proxy属性的隧道发送到泛洪代理服务器,由代理服务器进行复制并转发到其他远端VTEP。

采用泛洪代理(服务器复制)方式转发站点间的泛洪流量时,必须开启该功能。

表3-12 开启组播隧道泛洪代理功能

操作

命令

说明

进入系统视图

system-view

-

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

vxlan tunnel service node

缺省情况下,组播隧道泛洪代理功能处于关闭状态

 

3.13  OVSDB-VTEP典型配置举例

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

1. 组网需求

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

具体需求为:

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

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

2. 组网图

图3-1 OVSDB-VTEP头端复制组网图

 

3. 配置步骤

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

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

(2)     配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 与控制器建立连接并开启OVSDB服务。

[SwitchA] ovsdb server private-key flash:/ovsclient-privkey.pem

[SwitchA] ovsdb server certificate flash:/ovsclient-cert.pem

[SwitchA] ovsdb server ca-certificate flash:/vswitchd.cacert bootstrap

[SwitchA] ovsdb server ssl 10.0.2.15 port 6632

[SwitchA] ovsdb server enable

# 开启VTEP功能。

[SwitchA] vtep enable

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

[SwitchA] interface loopback0

[SwitchA-LoopBack0] ip address 1.1.1.1 255.255.255.255

[SwitchA-LoopBack0] quit

[SwitchA] tunnel global source-address 1.1.1.1

# 在接入服务器的接口FortyGigE1/0/1上指定其为接入侧端口。

[SwitchA] interface fortygige 1/0/1

[SwitchA-FortyGigE1/0/1] vtep access port

[SwitchA-FortyGigE1/0/1] quit

(3)     配置Switch B

# 开启L2VPN功能。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 与控制器建立连接并开启OVSDB服务。

[SwitchB] ovsdb server private-key flash:/ovsclient-privkey.pem

[SwitchB] ovsdb server certificate flash:/ovsclient-cert.pem

[SwitchB] ovsdb server ca-certificate flash:/vswitchd.cacert bootstrap

[SwitchB] ovsdb server ssl 10.0.2.15 port 6632

[SwitchB] ovsdb server enable

# 开启VTEP功能。

[SwitchB] vtep enable

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

[SwitchB] interface loopback0

[SwitchB-LoopBack0] ip address 2.2.2.2 255.255.255.255

[SwitchB-LoopBack0] quit

[SwitchB] tunnel global source-address 2.2.2.2

# 在接入服务器的接口FortyGigE1/0/1上指定其为接入侧端口。

[SwitchB] interface fortygige 1/0/1

[SwitchB-FortyGigE1/0/1] vtep access port

[SwitchB-FortyGigE1/0/1] quit

(4)     配置Switch C

# 开启L2VPN功能。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 与控制器建立连接并开启OVSDB服务。

[SwitchC] ovsdb server private-key flash:/ovsclient-privkey.pem

[SwitchC] ovsdb server certificate flash:/ovsclient-cert.pem

[SwitchC] ovsdb server ca-certificate flash:/vswitchd.cacert bootstrap

[SwitchC] ovsdb server ssl 10.0.2.15 port 6632

[SwitchC] ovsdb server enable

# 开启VTEP功能。

[SwitchC] vtep enable

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

[SwitchC] interface loopback0

[SwitchC-LoopBack0] ip address 3.3.3.3 255.255.255.255

[SwitchC-LoopBack0] quit

[SwitchC] tunnel global source-address 3.3.3.3

# 在接入服务器的接口FortyGigE1/0/1上指定其为接入侧端口。

[SwitchC] interface fortygige 1/0/1

[SwitchC-FortyGigE1/0/1] vtep access port

[SwitchC-FortyGigE1/0/1] quit

(5)     控制器上进行VXLAN配置(略)

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

# 查看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         : -

  Drop Unknown            : -

  Flooding                : Enabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flooding proxy

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  Up     Manual      Disabled

  ACs:

    AC                               Link ID    State

    FGE1/0/1 srv2                    0          Up

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

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb   Dynamic  evpn2014                        Tunnel1       Aging

cc3e-5f9c-23dc   Dynamic  evpn2014                        Tunnel2       Aging

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

(2)     验证主机

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

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

1. 组网需求

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

具体需求为:

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

·     站点之间的泛洪流量采用泛洪代理(服务器复制)的方式转发。

·     VTEP采用控制器下发的MAC地址表项进行流量转发。

2. 组网图

图3-2 OVSDB-VTEP泛洪代理组网图

 

3. 配置步骤

(1)     配置IP地址、单播路由协议、控制器和服务器

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

(2)     配置Switch A

# 开启L2VPN功能。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 与控制器建立连接并开启OVSDB服务。

[SwitchA] ovsdb server private-key flash:/ovsclient-privkey.pem

[SwitchA] ovsdb server certificate flash:/ovsclient-cert.pem

[SwitchA] ovsdb server ca-certificate flash:/vswitchd.cacert bootstrap

[SwitchA] ovsdb server ssl 10.0.2.15 port 6632

[SwitchA] ovsdb server enable

# 开启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

# 在接入服务器的接口FortyGigE1/0/1上指定其为接入侧端口。

[SwitchA] interface fortygige 1/0/1

[SwitchA-FortyGigE1/0/1] vtep access port

[SwitchA-FortyGigE1/0/1] quit

# 在网络侧接口上关闭报文入接口与静态MAC地址表项匹配检查功能。

[SwitchA] interface fortygige 1/0/2

[SwitchA-FortyGigE1/0/2] undo mac-address static source-check enable

[SwitchA-FortyGigE1/0/2] quit

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

[SwitchA] vxlan tunnel mac-learning disable

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

[SwitchA] vxlan tunnel service node

(3)     配置Switch B

# 开启L2VPN功能。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 与控制器建立连接并开启OVSDB服务。

[SwitchB] ovsdb server private-key flash:/ovsclient-privkey.pem

[SwitchB] ovsdb server certificate flash:/ovsclient-cert.pem

[SwitchB] ovsdb server ca-certificate flash:/vswitchd.cacert bootstrap

[SwitchB] ovsdb server ssl 10.0.2.15 port 6632

[SwitchB] ovsdb server enable

# 开启VTEP功能。

[SwitchB] vtep enable

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

[SwitchB] interface loopback0

[SwitchB-LoopBack0] ip address 2.2.2.2 255.255.255.255

[SwitchB-LoopBack0] quit

[SwitchB] tunnel global source-address 2.2.2.2

# 在接入服务器的接口FortyGigE1/0/1上指定其为接入侧端口。

[SwitchB] interface fortygige 1/0/1

[SwitchB-FortyGigE1/0/1] vtep access port

[SwitchB-FortyGigE1/0/1] quit

# 在网络侧接口上关闭报文入接口与静态MAC地址表项匹配检查功能。

[SwitchB] interface fortygige 1/0/2

[SwitchB-FortyGigE1/0/2] undo mac-address static source-check enable

[SwitchB-FortyGigE1/0/2] quit

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

[SwitchB] vxlan tunnel mac-learning disable

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

[SwitchB] vxlan tunnel service node

(4)     配置Switch C

# 开启L2VPN功能。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 与控制器建立连接并开启OVSDB服务。

[SwitchC] ovsdb server private-key flash:/ovsclient-privkey.pem

[SwitchC] ovsdb server certificate flash:/ovsclient-cert.pem

[SwitchC] ovsdb server ca-certificate flash:/vswitchd.cacert bootstrap

[SwitchC] ovsdb server ssl 10.0.2.15 port 6632

[SwitchC] ovsdb server enable

# 开启VTEP功能。

[SwitchC] vtep enable

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

[SwitchC] interface loopback0

[SwitchC-LoopBack0] ip address 3.3.3.3 255.255.255.255

[SwitchC-LoopBack0] quit

[SwitchC] tunnel global source-address 3.3.3.3

# 在接入服务器的接口FortyGigE1/0/1上指定其为接入侧端口。

[SwitchC] interface fortygige 1/0/1

[SwitchC-FortyGigE1/0/1] vtep access port

[SwitchC-FortyGigE1/0/1] quit

# 在网络侧接口上关闭报文入接口与静态MAC地址表项匹配检查功能。

[SwitchC] interface fortygige 1/0/2

[SwitchC-FortyGigE1/0/2] undo mac-address static source-check enable

[SwitchC-FortyGigE1/0/2] quit

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

[SwitchC] vxlan tunnel mac-learning disable

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

[SwitchC] vxlan tunnel service node

(5)     控制器上进行VXLAN配置(略)

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

# 查看Switch A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的以太网服务实例等信息,其中Tunnel1和Tunnel2为去往SwitchB、SwitchC的隧道,Tunnel3为去往代理服务器的隧道。

[SwitchA] display l2vpn vsi verbose

VSI Name: evpn2014

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : Enabled

  MAC Table Limit         : -

  Drop Unknown            : -

  Flooding                : Enabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State  Type        Flooding proxy

    Tunnel1              0x5000001  Up     Manual      Disabled

    Tunnel2              0x5000002  Up     Manual      Disabled

    Tunnel3              0x5000003  Up     Manual      Enabled

  ACs:

    AC                               Link ID    State

    FGE1/0/1 srv2                    0          Up

# 查看Switch A上VSI的MAC地址表项信息,可以看到控制器下发的MAC地址信息。

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb   Static   evpn2014                        Tunnel1       NotAging

cc3e-5f9c-23dc   Static   evpn2014                        Tunnel2       NotAging

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

(2)     验证主机

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

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们