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

17-NVGRE配置指导

目录

01-NVGRE配置

本章节下载 01-NVGRE配置  (535.10 KB)

docurl=/cn/Service/Document_Software/Document_Center/IP_Security/YYAQWG_V7/H3C_vLB/Configure/Operation_Manual/H3C_vLB_CG(V7)(R1171)/17/202305/1841910_30005_0.htm

01-NVGRE配置


1 NVGRE概述

NVGRE(Network Virtualization using Generic Routing Encapsulation,使用通用路由封装的网络虚拟化)是采用“MAC in GRE”封装形式的二层VPN技术。NVGRE可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。NVGRE主要应用于数据中心网络。

1.1  NVGRE的优点

NVGRE具有如下优点:

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

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

1.2  NVGRE网络模型

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

 

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

·     VM(Virtual Machine,虚拟机):在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的NVGRE网络。属于相同NVGRE网络的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同NVGRE网络的虚拟机之间二层隔离。

·     NVE(Network Virtualization Edge,网络虚拟化边缘设备):NVGRE的边缘设备。NVGRE的相关处理都在NVE上进行,例如识别以太网数据帧所属的NVGRE网络、基于NVGRE对数据帧进行二层转发、封装/解封装报文等。NVE可以是虚拟机所在的服务器,也可以是一台独立的物理设备。

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

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

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

1.3  NVGRE报文封装格式

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

 

图1-2所示,NVGRE报文的封装格式为:在原始二层数据帧外添加8字节GRE头和20字节IP头。其中,GRE头主要包括以下几部分:

·     标记位:4比特。第一位(Checksum Present位)为0,表示GRE头不携带GRE校验和;第二位未定义;第三位(Key Present位)为1,表示GRE头中携带VSID;第四位(Sequence Number Present位)为0,表示GRE头不携带序列号。关于GRE的详细介绍,请参见“三层技术-IP业务配置指导”中的“GRE”。

·     版本:GRE协议版本号。

·     协议类型:GRE头内封装的载荷数据的协议类型,取值为0x6558,表示透明以太网桥接,即GRE头内封装二层以太网数据帧。

·     VSID(Virtual Subnet Identifier,虚拟子网标识符):用来标识一个NVGRE网络,长度为24比特。

1.4  NVGRE运行机制

完成虚拟机的MAC地址学习后,NVE从站点接收到数据帧时,判断该数据帧所属的NVGRE网络,在该NVGRE网络对应的VSI内查找MAC地址表项。如果数据帧需要转发到远端站点,则NVE对其进行封装,并通过NVGRE隧道转发给远端NVE。远端NVE判断接收到的报文所属的NVGRE网络,对报文进行解封装后,在该NVGRE网络对应的VSI内查找MAC地址表项,将报文发送给目的站点。

1.4.1  报文所属NVGRE网络的识别

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

在NVGRE中,与VSI关联的三层接口称为AC(Attachment Circuit,接入电路)。

NVE将连接本地站点的AC与VSI关联。NVE从AC接收到数据帧后,查找与其关联的VSI,VSI内创建的NVGRE网络即为该数据帧所属的NVGRE网络。

 

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

对于从NVGRE隧道上接收到的NVGRE报文,NVE根据报文中携带的VSID判断该报文所属的NVGRE网络。

1.4.2  MAC地址学习

MAC地址学习分为两部分:

·     本地MAC地址学习:是指NVE对本地站点内虚拟机MAC地址的学习。NVE接收到本地虚拟机发送的数据帧后,判断该数据帧所属的VSI,并将数据帧中的源MAC地址(本地虚拟机的MAC地址)添加到该VSI的MAC地址表中,该MAC地址对应的接口为接收到数据帧的接口。NVGRE不支持静态配置本地MAC地址。

·     远端MAC地址学习:是指NVE对远端站点内虚拟机MAC地址的学习。远端MAC地址既可以静态配置,也可以通过报文中的源MAC地址动态学习。动态学习过程为:NVE从NVGRE隧道上接收到远端NVE发送的NVGRE报文后,根据VSID判断报文所属的NVGRE网络,对报文进行解封装,还原二层数据帧,并将数据帧中的源MAC地址(远端虚拟机的MAC地址)添加到所属NVGRE网络对应VSI的MAC地址表中,该MAC地址对应的接口为NVGRE隧道接口。

1.4.3  流量转发

1. 站点内单播流量转发

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

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

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

2. 站点间单播流量转发

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

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

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

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

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

(4)     NVE 2接收到报文后,根据报文中的VSID判断该报文属于NVGRE 5000,并剥离GRE头、IP头,还原出原始的数据帧。

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

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

3. 泛洪流量转发

泛洪流量包括组播、广播和未知单播流量。转发泛洪流量时,NVE负责复制报文,采用单播方式将复制后的报文通过NVGRE隧道发送给NVGRE网络内的所有远端NVE。

图1-5 转发泛洪流量示意图

图1-5所示,泛洪流量的转发过程为:

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

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

1.4.4  接入模式

接入模式分为以下两种:

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

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

1.5  ARP泛洪抑制

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

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

 

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

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

(2)     NVE 1根据接收到的ARP请求,建立VM 1的ARP泛洪抑制表项,并在NVGRE网络内泛洪该ARP请求。

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

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

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

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

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

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

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

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

1.6  NVGRE IP网关

NVGRE可以为分散的物理站点提供二层互联。要想为NVGRE站点内的虚拟机提供三层业务,则需要在网络中部署NVGRE IP网关,以便站点内的虚拟机通过NVGRE IP网关与外界网络进行三层通信。NVGRE IP网关的详细介绍,请参见“3 NVGRE IP网关”。

1.7  协议规范

与NVGRE相关的协议规范有:

·     IETF草案:draft-sridharan-virtualization-nvgre-04

 


2 配置NVGRE

2.1  NVGRE配置任务简介

NVGRE组网中,需要在NVE上进行如下配置:

(1)     开启L2VPN功能

(2)     配置NVGRE隧道

(3)     创建VSI和NVGRE网络

(4)     关联NVGRE网络与NVGRE隧道

(5)     配置AC与VSI关联

(6)     (可选)添加静态远端MAC地址

(7)     (可选)配置VSI泛洪抑制

(8)     (可选)配置ARP泛洪抑制

(9)     (可选)配置NVGRE流量统计

2.2  NVGRE配置准备

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

2.3  开启L2VPN功能

(1)     进入系统视图。

system-view

(2)     开启L2VPN功能。

l2vpn enable

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

2.4  配置NVGRE隧道

1. 功能简介

NVGRE隧道通过手工配置来创建。创建NVGRE隧道时,需要指定隧道的源端地址和目的端地址:

·     源端地址:作为封装后NVGRE报文的源IP地址。既可以直接指定本地NVE的接口地址为源端地址,也可以指定本地NVE上的接口为隧道的源接口,该接口的主IP地址作为源端地址。

·     目的端地址:作为封装后NVGRE报文的目的地址,需要指定为对端NVE设备上的接口IP地址。

2. 配置限制和指导

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

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

3. 配置步骤

(1)     进入系统视图。

system-view

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

interface tunnel tunnel-number mode nvgre

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

(3)     配置隧道的源端地址或源接口。

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

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

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

destination ipv4-address

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

2.5  创建VSI和NVGRE网络

(1)     进入系统视图。

system-view

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

vsi vsi-name

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

description text

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

(4)     开启VSI。

undo shutdown

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

(5)     创建NVGRE网络,并进入NVGRE网络视图。

nvgre nvgre-vsid

在一个VSI下只能创建一个NVGRE网络。

不同VSI下创建的NVGRE网络,其VSID不能相同。

2.6  关联NVGRE网络与NVGRE隧道

1. 功能简介

一个NVGRE网络可以关联多条NVGRE隧道。一条NVGRE隧道可以关联多个NVGRE网络,这些NVGRE网络共用该NVGRE隧道,NVE根据NVGRE报文中的VSID来识别隧道传递的报文所属的NVGRE网络。

NVE接收到某个NVGRE网络的泛洪流量后,NVE将在与该NVGRE网络关联的所有NVGRE隧道上发送该流量,以便将流量转发给所有的远端NVE。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入VSI视图。

vsi vsi-name

(3)     进入NVGRE网络视图。

nvgre nvgre-vsid

(4)     配置NVGRE网络与NVGRE隧道关联。

tunnel tunnel-number

缺省情况下,NVGRE网络未关联NVGRE隧道。

NVE必须与相同NVGRE网络内的其它NVE建立NVGRE隧道,并将该隧道与NVGRE网络关联。

2.7  配置AC与VSI关联

2.7.1  配置三层接口与VSI关联

1. 功能简介

将三层接口与VSI关联后,从该接口接收到的报文,将通过查找关联VSI的MAC地址表进行转发。

2. 配置限制和指导

三层接口关联VSI与以太网链路聚合功能互斥。三层接口加入聚合组后,不能再将该接口与VSI关联;反之亦然。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入三层接口视图。

interface interface-type interface-number

(3)     将三层接口与VSI关联。

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

缺省情况下,三层接口未关联VSI。

关联VSI的AC为三层子接口时,可以指定access-mode参数,接入模式缺省为VLAN;当AC为三层接口时,不可以指定access-mode参数。

2.8  添加静态远端MAC地址

(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对应的NVGRE网络关联,且该NVGRE网络必须已经创建,否则配置将失败。

2.9  配置VSI泛洪抑制

1. 功能简介

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

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入VSI视图。

vsi vsi-name

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

flooding disable

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

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

selective-flooding mac-address mac-address

2.10  配置ARP泛洪抑制

1. 配置限制和指导

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入VSI视图。

vsi vsi-name

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

arp suppression enable

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

2.11  配置NVGRE流量统计

(1)     进入系统视图。

system-view

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

vsi vsi-name

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

statistics enable

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

2.12  NVGRE显示和维护

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

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

表2-1 NVGRE显示和维护

操作

命令

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

(独立运行模式)

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

(IRF模式)

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

显示Tunnel接口信息

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

显示与VSI关联的三层接口的L2VPN信息

display l2vpn interface [ vsi vsi-name | interface-type interface-number ] [ verbose ]

显示VSI的MAC地址表信息

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

显示VSI的信息

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

显示NVGRE网络关联的NVGRE隧道信息

display nvgre tunnel [ vsid vsid ]

清除VSI的ARP泛洪抑制表项

reset arp suppression vsi [ name vsi-name ]

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

reset l2vpn mac-address [ vsi vsi-name ]

清除VSI的报文统计信息

reset l2vpn statistics vsi [ name vsi-name ]

 

说明

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

 

2.13  NVGRE典型配置举例

2.13.1  NVGRE基本配置举例

1. 组网需求

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

2. 组网图

图2-1 静态配置NVGRE组网图

 

3. 配置步骤

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

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

(2)     配置Device A

# 开启L2VPN能力。

<DeviceA> system-view

[DeviceA] l2vpn enable

# 创建VSI实例vpna和NVGRE 5000。

[DeviceA] vsi vpna

[DeviceA-vsi-vpna] nvgre 5000

[DeviceA-vsi-vpna-nvgre-5000] quit

[DeviceA-vsi-vpna] quit

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

[DeviceA] interface loopback 0

[DeviceA-Loopback0] ip address 1.1.1.1 255.255.255.255

[DeviceA-Loopback0] quit

# 在Device A和Device B之间建立NVGRE隧道:

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

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

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

[DeviceA] interface tunnel 1 mode nvgre

[DeviceA-Tunnel1] source 1.1.1.1

[DeviceA-Tunnel1] destination 2.2.2.2

[DeviceA-Tunnel1] quit

# 在Device A和Device C之间建立NVGRE隧道。

[DeviceA] interface tunnel 2 mode nvgre

[DeviceA-Tunnel2] source 1.1.1.1

[DeviceA-Tunnel2] destination 3.3.3.3

[DeviceA-Tunnel2] quit

# 配置Tunnel1和Tunnel2与NVGRE 5000关联。

[DeviceA] vsi vpna

[DeviceA-vsi-vpna] nvgre 5000

[DeviceA-vsi-vpna-nvgre-5000] tunnel 1

[DeviceA-vsi-vpna-nvgre-5000] tunnel 2

[DeviceA-vsi-vpna-nvgre-5000] quit

[DeviceA-vsi-vpna] quit

# 配置接入服务器的接口GigabitEthernet1/0与VSI实例vpna关联。

[DeviceA] interface gigabitethernet 1/0

[DeviceA-GigabitEthernet1/0] xconnect vsi vpna

[DeviceA-GigabitEthernet1/0] quit

(3)     配置Device B

# 开启L2VPN能力。

<DeviceB> system-view

[DeviceB] l2vpn enable

# 创建VSI实例vpna和NVGRE 5000。

[DeviceB] vsi vpna

[DeviceB-vsi-vpna] nvgre 5000

[DeviceB-vsi-vpna-nvgre-5000] quit

[DeviceB-vsi-vpna] quit

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

[DeviceB] interface loopback 0

[DeviceB-Loopback0] ip address 2.2.2.2 255.255.255.255

[DeviceB-Loopback0] quit

# 在Device A和Device B之间建立NVGRE隧道。

[DeviceB] interface Tunnel 2 mode nvgre

[DeviceB-Tunnel2] source 2.2.2.2

[DeviceB-Tunnel2] destination 1.1.1.1

[DeviceB-Tunnel2] quit

# 在Device B和Device C之间建立NVGRE隧道。

[DeviceB] interface Tunnel 3 mode nvgre

[DeviceB-Tunnel3] source 2.2.2.2

[DeviceB-Tunnel3] destination 3.3.3.3

[DeviceB-Tunnel3] quit

# 配置Tunnel2和Tunnel3与NVGRE 5000关联。

[DeviceB] vsi vpna

[DeviceB-vsi-vpna] nvgre 5000

[DeviceB-vsi-vpna-nvgre-5000] tunnel 2

[DeviceB-vsi-vpna-nvgre-5000] tunnel 3

[DeviceB-vsi-vpna-nvgre-5000] quit

[DeviceB-vsi-vpna] quit

# 配置接入服务器的接口GigabitEthernet1/0与VSI实例vpna关联。

[DeviceB] interface gigabitethernet 1/0

[DeviceB-GigabitEthernet1/0] xconnect vsi vpna

[DeviceB-GigabitEthernet1/0] quit

(4)     配置Device C

# 开启L2VPN能力。

<DeviceC> system-view

[DeviceC] l2vpn enable

# 创建VSI实例vpna和NVGRE 5000。

[DeviceC] vsi vpna

[DeviceC-vsi-vpna] nvgre 5000

[DeviceC-vsi-vpna-nvgre-5000] quit

[DeviceC-vsi-vpna] quit

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

[DeviceC] interface loopback 0

[DeviceC-Loopback0] ip address 3.3.3.3 255.255.255.255

[DeviceC-Loopback0] quit

# 在Device A和Device C之间建立NVGRE隧道。

[DeviceC] interface Tunnel 1 mode nvgre

[DeviceC-Tunnel1] source 3.3.3.3

[DeviceC-Tunnel1] destination 1.1.1.1

[DeviceC-Tunnel1] quit

# 在Device B和Device C之间建立NVGRE隧道。

[DeviceC] interface tunnel 3 mode nvgre

[DeviceC-Tunnel3] source 3.3.3.3

[DeviceC-Tunnel3] destination 2.2.2.2

[DeviceC-Tunnel3] quit

# 配置Tunnel1和Tunnel3与NVGRE 5000关联。

[DeviceC] vsi vpna

[DeviceC-vsi-vpna] nvgre 5000

[DeviceC-vsi-vpna-nvgre-5000] tunnel 1

[DeviceC-vsi-vpna-nvgre-5000] tunnel 3

[DeviceC-vsi-vpna-nvgre-5000] quit

[DeviceC-vsi-vpna] quit

# 配置接入服务器的接口GigabitEthernet1/0与VSI实例vpna关联。

[DeviceC] interface gigabitethernet 1/0

[DeviceC-GigabitEthernet1/0] xconnect vsi vpna

[DeviceC-GigabitEthernet1/0] quit

4. 验证配置

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

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

[DeviceA] display interface tunnel 1

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmit unit: 64000

Internet protocol processing: disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

Last clearing of counters: Never

Tunnel source 1.1.1.1, destination 3.3.3.3

Tunnel protocol/transport GRE_NVGRE/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

# 查看Device A上的VSI信息,可以看到VSI内创建的NVGRE网络、与NVGRE网络关联的NVGRE隧道、与VSI关联的三层接口等信息。

[DeviceA] 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

  NVGRE VSID              : 5000

  Tunnels:

    Tunnel Name          Link ID    State  Type

    Tunnel1              0x7000001  UP     Manual

    Tunnel2              0x7000002  UP     Manual

  ACs:

    AC                               Link ID    State

    GE1/0                            0          Up

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

[DeviceA] display l2vpn mac-address

MAC Address      Type       VSI Name                        Link ID   Aging Time

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 NVGRE IP网关

3.1  NVGRE IP网关简介

NVGRE可以为分散的物理站点提供二层互联。要想为NVGRE站点内的虚拟机提供三层业务,则需要在网络中部署NVGRE IP网关,以便站点内的虚拟机通过NVGRE IP网关与外界网络进行三层通信。NVGRE IP网关既可以部署在独立的物理设备上,也可以部署在NVE设备上。

3.1.1  独立的NVGRE IP网关

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

 

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

3.1.2  NVE同时作为NVGRE IP网关

图3-2 NVE同时作为NVGRE IP网关示意图

 

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

图3-3 NVGRE IP网关ARP学习

 

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

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

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

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

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

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

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

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

3.2  NVGRE IP网关配置准备

配置NVGRE IP网关前,需要完成以下配置任务:

·     在NVE上创建VSI和NVGRE网络。

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

3.3  配置NVE同时作为NVGRE IP网关

(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)     开启VSI虚接口。

undo shutdown

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

(5)     退回系统视图。

quit

(6)     进入NVGRE所在VSI视图。

vsi vsi-name

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

gateway vsi-interface vsi-interface-id

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

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

(1)     进入系统视图。

system-view

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

interface vsi-interface vsi-interface-id

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

mac-address mac-address

缺省情况下,VSI虚接口未指定MAC地址。

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

description text

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

(5)     配置接口的MTU。

mtu size

缺省情况下,接口的MTU值为1500。

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

bandwidth bandwidth-value

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

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

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

1. 配置限制和指导

注意

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

 

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

2. 配置步骤

(1)     进入系统视图。

system-view

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

interface vsi-interface vsi-interface-id

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

default

3.6  NVGRE IP网关显示和维护

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

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

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

操作

命令

显示VSI虚接口信息

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

清除接口的统计信息

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

 

3.7  NVGRE IP网关典型配置举例

3.7.1  NVGRE IP网关基本配置举例

1. 组网需求

Device A、Device C为与服务器连接的NVE设备,Device B同时作为NVE设备、与广域网连接的NVGRE IP网关设备,Device E为广域网内的三层交换机。虚拟机VM 1、VM 2同属于NVGRE 5000,通过NVGRE实现不同站点间的二层互联,并通过NVGRE IP网关与广域网三层互联。

具体需求为:

·     不同NVE之间手工建立NVGRE隧道。

·     手工关联NVGRE和NVGRE隧道。

2. 组网图

图3-4 NVGRE IP网关配置组网图

 

3. 配置步骤

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

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

# Device B和Device E上配置OSPF协议,发布10.1.1.0/24和20.1.1.0/24网段的路由,具体配置过程略。

(2)     配置Device A

# 开启L2VPN能力。

<DeviceA> system-view

[DeviceA] l2vpn enable

# 创建VSI实例vpna和NVGRE 5000。

[DeviceA] vsi vpna

[DeviceA-vsi-vpna] nvgre 5000

[DeviceA-vsi-vpna-nvgre-5000] quit

[DeviceA-vsi-vpna] quit

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

[DeviceA] interface loopback 0

[DeviceA-Loopback0] ip address 1.1.1.1 255.255.255.255

[DeviceA-Loopback0] quit

# 在Device A和Device B之间建立NVGRE隧道:

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

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

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

[DeviceA] interface tunnel 1 mode nvgre

[DeviceA-Tunnel1] source 1.1.1.1

[DeviceA-Tunnel1] destination 2.2.2.2

[DeviceA-Tunnel1] quit

# 在Device A和Device C之间建立NVGRE隧道。

[DeviceA] interface tunnel 2 mode nvgre

[DeviceA-Tunnel2] source 1.1.1.1

[DeviceA-Tunnel2] destination 3.3.3.3

[DeviceA-Tunnel2] quit

# 配置Tunnel1和Tunnel2与NVGRE 5000关联。

[DeviceA] vsi vpna

[DeviceA-vsi-vpna] nvgre 5000

[DeviceA-vsi-vpna-nvgre-5000] tunnel 1

[DeviceA-vsi-vpna-nvgre-5000] tunnel 2

[DeviceA-vsi-vpna-nvgre-5000] quit

[DeviceA-vsi-vpna] quit

# 配置接入服务器的接口GigabitEthernet1/0与VSI实例vpna关联。

[DeviceA] interface gigabitethernet 1/0

[DeviceA-GigabitEthernet1/0] xconnect vsi vpna

[DeviceA-GigabitEthernet1/0] quit

(3)     配置Device B

# 开启L2VPN能力。

<DeviceB> system-view

[DeviceB] l2vpn enable

# 创建VSI实例vpna和NVGRE 5000。

[DeviceB] vsi vpna

[DeviceB-vsi-vpna] nvgre 5000

[DeviceB-vsi-vpna-nvgre-5000] quit

[DeviceB-vsi-vpna] quit

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

[DeviceB] interface loopback 0

[DeviceB-Loopback0] ip address 2.2.2.2 255.255.255.255

[DeviceB-Loopback0] quit

# 在Device A和Device B之间建立NVGRE隧道。

[DeviceB] interface tunnel 2 mode nvgre

[DeviceB-Tunnel2] source 2.2.2.2

[DeviceB-Tunnel2] destination 1.1.1.1

[DeviceB-Tunnel2] quit

# 在Device B和Device C之间建立NVGRE隧道。

[DeviceB] interface tunnel 3 mode nvgre

[DeviceB-Tunnel3] source 2.2.2.2

[DeviceB-Tunnel3] destination 3.3.3.3

[DeviceB-Tunnel3] quit

# 配置Tunnel2和Tunnel3与NVGRE5000关联。

[DeviceB] vsi vpna

[DeviceB-vsi-vpna] nvgre 5000

[DeviceB-vsi-vpna-nvgre-5000] tunnel 2

[DeviceB-vsi-vpna-nvgre-5000] tunnel 3

[DeviceB-vsi-vpna-nvgre-5000] quit

[DeviceB-vsi-vpna] quit

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

[DeviceB] interface vsi-interface 1

[DeviceB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[DeviceB-Vsi-interface1] quit

# 配置NVGRE 5000所在的VSI实例和VSI三层虚接口关联。

[DeviceB] vsi vpna

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

[DeviceB-vsi-vpna] quit

(4)     配置Device C

# 开启L2VPN能力。

<DeviceC> system-view

[DeviceC] l2vpn enable

# 创建VSI实例vpna和NVGRE 5000。

[DeviceC] vsi vpna

[DeviceC-vsi-vpna] nvgre 5000

[DeviceC-vsi-vpna-nvgre-5000] quit

[DeviceC-vsi-vpna] quit

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

[DeviceC] interface loopback 0

[DeviceC-Loopback0] ip address 3.3.3.3 255.255.255.255

[DeviceC-Loopback0] quit

# 在Device A和Device C之间建立NVGRE隧道。

[DeviceC] interface tunnel 1 mode nvgre

[DeviceC-Tunnel1] source 3.3.3.3

[DeviceC-Tunnel1] destination 1.1.1.1

[DeviceC-Tunnel1] quit

# 在Device B和Device C之间建立NVGRE隧道。

[DeviceC] interface tunnel 3 mode nvgre

[DeviceC-Tunnel3] source 3.3.3.3

[DeviceC-Tunnel3] destination 2.2.2.2

[DeviceC-Tunnel3] quit

# 配置Tunnel1和Tunnel3与NVGRE 5000关联。

[DeviceC] vsi vpna

[DeviceC-vsi-vpna] nvgre 5000

[DeviceC-vsi-vpna-nvgre-5000] tunnel 1

[DeviceC-vsi-vpna-nvgre-5000] tunnel 3

[DeviceC-vsi-vpna-nvgre-5000] quit

[DeviceC-vsi-vpna] quit

# 配置接入服务器的接口GigabitEthernet1/0与VSI实例vpna关联。

[DeviceC] interface gigabitethernet 1/0

[DeviceC-GigabitEthernet1/0] xconnect vsi vpna

[DeviceC-GigabitEthernet1/0] quit

4. 验证配置

(1)     验证NVGRE IP网关设备Device B

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

[DeviceB] display interface tunnel 2

Tunnel2

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmit unit: 64000

Internet protocol processing: disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

Last clearing of counters: Never

Tunnel source 2.2.2.2, destination 1.1.1.1

Tunnel protocol/transport GRE_NVGRE/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

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

[DeviceB] display interface vsi-interface 1

Vsi-interface1

Current state: UP

Line protocol state: UP

Description: Vsi-interface100 Interface

Bandwidth: 1000000 kbps

Maximum transmit unit: 1500

Internet address: 10.1.1.1/24 (primary)

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

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

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

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

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

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

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

[DeviceB] 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

  Gateway interface       : VSI-interface 1

  NVGRE VSID              : 5000

  Tunnels:

    Tunnel Name          Link ID    State  Type

    Tunnel2              0x7000002  Up     Manual

    Tunnel3              0x7000003  Up     Manual

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

[DeviceB] display arp

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

IP address       MAC address    SVLAN/VSI Interface/Link ID        Aging Type

12.1.1.4         000c-2999-e04f --        GE1/0                    6     D

20.1.1.5         000c-29c1-5e46 --        GE2/0                    19    D

10.1.1.11        0000-1234-0001 --        Vsi1                     20    D

10.1.1.12        0000-1234-0002 --        Vsi1                     19    D

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

[DeviceB] display fib 10.1.1.11

Destination count: 1 FIB entry count: 1

Flag:

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

  R:Relay     F:FRR

Destination/Mask   Nexthop         Flag     OutInterface/Token       Label

10.1.1.11/32       10.1.1.11       UH       Vsi1                     Null

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

虚拟机VM 1、VM 2之间可以互访,VM1、VM2和Device E上的GigabitEthernet1/0接口地址20.1.1.5之间可以互访。

 

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

新华三官网
联系我们