01-VXLAN配置
本章节下载: 01-VXLAN配置 (798.47 KB)
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技术。
VXLAN技术将已有的三层物理网络作为Underlay网络,在其上构建出虚拟的二层网络,即Overlay网络。Overlay网络通过封装技术、利用Underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。对于租户来说,Underlay网络是透明的,同一租户的不同站点就像工作在一个局域网中。
图1-1 VXLAN网络模型示意图
如图1-1所示,VXLAN的典型网络模型中包括如下几部分:
· VM(Virtual Machine,虚拟机):在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VXLAN。属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。VXLAN通过VXLAN ID来标识,VXLAN ID又称VNI(VXLAN Network Identifier,VXLAN网络标识符),其长度为24比特。
· VTEP(VXLAN Tunnel End Point,VXLAN隧道端点):VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器。
· VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装。
· 核心设备:IP核心网络中的设备(如图1-1中的P设备)。核心设备不参与VXLAN处理,仅需要根据封装后报文的目的IP地址对报文进行三层转发。
· VSI(Virtual Switch Instance,虚拟交换实例):VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。VSI可以看做是VTEP上的一台基于VXLAN进行二层转发的虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VSI与VXLAN一一对应。
图1-2 VXLAN报文封装示意图
如图1-2所示,VXLAN报文的封装格式为:在原始二层数据帧外添加8字节VXLAN头、8字节UDP头和20字节IP头。其中,UDP头的目的端口号为VXLAN UDP端口号(缺省为4789)。VXLAN头主要包括两部分:
· 标记位:“I”位为1时,表示VXLAN头中的VXLAN ID有效;为0,表示VXLAN ID无效。其他位保留未用,设置为0。
· VXLAN ID:用来标识一个VXLAN网络,长度为24比特。
VXLAN运行机制可以概括为:
(1) 发现远端VTEP,在VTEP之间建立VXLAN隧道,并将VXLAN隧道与VXLAN关联。
(2) 识别接收到的报文所属的VXLAN,以便将报文的源MAC地址学习到VXLAN对应的VSI,并在该VSI内转发该报文。
(3) 学习虚拟机的MAC地址。
(4) 根据学习到的MAC地址表项转发报文。
为了将VXLAN报文传递到远端VTEP,需要创建VXLAN隧道,并将VXLAN隧道与VXLAN关联。
VXLAN隧道的建立方式为:手工配置Tunnel接口,并指定隧道的源和目的IP地址分别为本端和远端VTEP的IP地址。
VXLAN隧道与VXLAN关联的方式为:手工将VXLAN隧道与VXLAN关联。
VTEP将连接本地站点的三层接口与VSI关联。VTEP从三层接口接收到数据帧后,查找与其关联的VSI,VSI内创建的VXLAN即为该数据帧所属的VXLAN。
在VXLAN中,与VSI关联的三层接口称为AC(Attachment Circuit,接入电路)。
对于从VXLAN隧道上接收到的VXLAN报文,VTEP根据报文中携带的VXLAN ID判断该报文所属的VXLAN。
MAC地址学习分为本地MAC地址学习和远端MAC地址学习两部分。
是指VTEP对本地站点内虚拟机MAC地址的学习。VTEP接收到本地虚拟机发送的数据帧后,判断该数据帧所属的VSI,并将数据帧中的源MAC地址(本地虚拟机的MAC地址)添加到该VSI的MAC地址表中,该MAC地址对应的接口为接收到数据帧的接口。
VXLAN不支持静态配置本地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地址动态学习的表项。
完成本地和远端MAC地址学习后,VTEP在VXLAN内转发单播流量的过程如下所述。
对于站点内流量,VTEP判断出报文所属的VSI后,根据目的MAC地址查找该VSI的MAC地址表,从相应的本地接口转发给目的VM。
如图1-3所示,VM 1(MAC地址为MAC 1)发送以太网帧到VM 4(MAC地址为MAC 4)时,VTEP 1从接口GigabitEthernet2/1/1收到该以太网帧后,判断该数据帧属于VSI A(VXLAN 10),查找VSI A的MAC地址表,得到MAC 4的出接口为GigabitEthernet2/1/2,所在VLAN为VLAN 10,则将以太网帧从接口GigabitEthernet2/1/2的VLAN 10内发送给VM 4。
如图1-4所示,以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从接口GigabitEthernet2/1/1(所在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的出端口为GigabitEthernet2/1/1(所在VLAN为VLAN 20)。
(6) VTEP 2从接口GigabitEthernet2/1/1的VLAN 20内将数据帧发送给VM 7。
泛洪流量包括组播、广播和未知单播流量。流量泛洪方式为单播路由方式(头端复制)。
在单播路由方式下,VTEP负责复制报文,采用单播方式将复制后的报文通过本地接口发送给本地站点,并通过VXLAN隧道发送给VXLAN内的所有远端VTEP。
如图1-5所示,单播路由方式的泛洪流量转发过程为:
(1) VTEP 1接收到本地虚拟机发送的组播、广播和未知单播数据帧后,判断数据帧所属的VXLAN,通过该VXLAN内除接收接口外的所有本地接口和VXLAN隧道转发该数据帧。通过VXLAN隧道转发数据帧时,需要为其封装VXLAN头、UDP头和IP头,将泛洪流量封装在多个单播报文中,发送到VXLAN内的所有远端VTEP。
(2) 远端VTEP(VTEP 2和VTEP 3)接收到VXLAN报文后,解封装报文,将原始的数据帧在本地站点的指定VXLAN内泛洪。为了避免环路,远端VTEP从VXLAN隧道上接收到报文后,不会再将其泛洪到其他的VXLAN隧道。
为了避免广播发送的ARP请求报文占用核心网络带宽,VTEP从本地站点或VXLAN隧道接收到ARP请求和ARP应答报文后,根据该报文在本地建立ARP泛洪抑制表项。后续当VTEP收到本站点内虚拟机请求其它虚拟机MAC地址的ARP请求时,优先根据ARP泛洪抑制表项进行代答。如果没有对应的表项,则将ARP请求泛洪到核心网。ARP泛洪抑制功能可以大大减少ARP泛洪的次数。
图1-6 ARP泛洪抑制示意图
如图1-6所示,ARP泛洪抑制的处理过程如下:
(1) 虚拟机VM 1发送ARP请求,获取VM 7的MAC地址。
(2) VTEP 1根据接收到的ARP请求,建立VM 1的ARP泛洪抑制表项,并在VXLAN内泛洪该ARP请求(图1-6以单播路由泛洪方式为例)。
(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请求进行泛洪。
与VXLAN相关的协议规范有:
· RFC 7348:Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks
FIP-600单板、SAP-4EXP单板的接口不支持VXLAN功能。
在VXLAN组网中,IP核心网络中的设备只需要配置路由协议,确保VTEP之间路由可达。VXLAN相关配置都在VTEP上进行。
表2-1 VXLAN配置任务简介
配置任务 |
说明 |
详细配置 |
创建VSI和VXLAN |
必选 |
|
创建VXLAN隧道 |
必选 |
|
关联VXLAN与VXLAN隧道 |
必选 |
|
配置AC与VSI关联 |
必选 |
|
管理本地和远端MAC地址 |
可选 |
|
配置VSI泛洪抑制 |
可选 |
|
配置VXLAN报文的目的UDP端口号 |
可选 |
|
配置VXLAN报文检查功能 |
可选 |
|
配置ARP泛洪抑制 |
可选 |
|
开启VXLAN软件快速转发功能 |
可选 |
表2-2 创建VSI和VXLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启L2VPN功能 |
l2vpn enable |
缺省情况下,L2VPN功能处于关闭状态 |
创建VSI,并进入VSI视图 |
vsi vsi-name |
缺省情况下,不存在VSI |
(可选)配置VSI的描述信息 |
description text |
缺省情况下,未配置VSI的描述信息 |
开启当前的VSI |
undo shutdown |
缺省情况下,VSI处于开启状态 |
(可选)配置VSI的MTU值 |
mtu mtu |
缺省情况下,VSI的MTU值为1500字节 |
(可选)配置VSI的广播或未知单播抑制带宽 |
restrain { broadcast | unknown-unicast } bandwidth |
缺省情况下,VSI的广播、未知单播抑制带宽均为5120kbps |
(可选)开启VSI的MAC地址学习功能 |
mac-learning enable |
缺省情况下,VSI的MAC地址学习功能处于开启状态 |
(可选)配置允许VSI学习到的最大MAC地址数 |
mac-table limit mac-limit |
缺省情况下,不对VSI学习到的最大MAC地址数进行限制 |
创建VXLAN,并进入VXLAN视图 |
vxlan vxlan-id |
缺省情况下,不存在VXLAN 在一个VSI下只能创建一个VXLAN 不同VSI下创建的VXLAN,其VXLAN ID不能相同 |
手工创建VXLAN隧道时,隧道的源端地址和目的端地址需要分别手工指定为本地和远端VTEP的接口地址。在同一台设备上,VXLAN隧道模式的不同Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。
关于隧道的详细介绍及Tunnel接口下的更多配置命令,请参见“三层技术-IP业务配置指导”中的“隧道”。关于interface tunnel、source和destination命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”。
表2-3 手工创建VXLAN隧道
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置VXLAN隧道的全局源地址 |
tunnel global source-address ip-address |
缺省情况下,未配置VXLAN隧道的全局源地址 如果隧道下未配置源地址或源接口,则隧道会使用全局源地址作为隧道的源地址 |
创建模式为VXLAN隧道的Tunnel接口,并进入Tunnel接口视图 |
interface tunnel tunnel-number mode vxlan |
缺省情况下,不存在Tunnel接口 在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败 |
配置隧道的源端地址或源接口 |
source { ipv4-address | interface-type interface-number } |
缺省情况下,未设置VXLAN隧道的源端地址和源接口 如果设置的是隧道的源端地址,则该地址将作为封装后VXLAN报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后VXLAN报文的源IP地址 |
配置隧道的目的端地址 |
destination ipv4-address |
缺省情况下,未指定隧道的目的端地址 隧道的目的端地址是对端设备上接口的IP地址,该地址将作为封装后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 |
缺省情况下,VXLAN未关联VXLAN隧道 VTEP必须与相同VXLAN内的其它VTEP建立VXLAN隧道,并将该隧道与VXLAN关联 |
将三层接口与VSI关联后,从该接口接收到的报文,将通过查找关联VSI的MAC地址表进行转发。
表2-5 配置三层接口与VSI关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入三层接口视图 |
interface interface-type interface-number |
- |
将三层接口与VSI关联 |
xconnect vsi vsi-name [ track track-entry-number&<1-3> ] |
缺省情况下,三层接口未关联VSI |
本地MAC地址只能动态学习,不能静态配置。在动态添加、删除本地MAC地址时,可以记录日志信息。
远端MAC地址表项可以静态添加,也可以根据接收到的VXLAN报文内封装的源MAC地址自动学习。
开启本地MAC地址的日志记录功能后,VXLAN会立即根据已经学习到的本地MAC地址表项生成日志信息,之后在增加或删除本地MAC地址时也将产生日志信息。生成的日志信息将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。
表2-6 开启本地MAC地址的日志记录功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启本地MAC地址的日志记录功能 |
vxlan local-mac report |
缺省情况下,本地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必须已经创建,否则配置将失败 |
如果网络中存在攻击,为了避免学习到错误的远端MAC地址,可以手工关闭远端MAC地址自动学习功能,手动添加静态的远端MAC地址。
表2-8 关闭远端MAC地址自动学习功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
关闭远端MAC地址自动学习功能 |
vxlan tunnel mac-learning disable |
缺省情况下,远端MAC地址自动学习功能处于开启状态 |
缺省情况下,VTEP从本地站点内接收到目的MAC地址未知的单播数据帧后,会在该VXLAN内除接收接口外的所有本地接口和VXLAN隧道上泛洪该数据帧,将该数据帧发送给VXLAN内的所有站点。如果用户希望把该类数据帧限制在本地站点内,不通过VXLAN隧道将其转发到远端站点,则可以通过本命令手工禁止VXLAN对应VSI的泛洪功能。
禁止泛洪功能后,为了将某些MAC地址的数据帧泛洪到远端站点以保证某些业务的流量在站点间互通,可以配置选择性泛洪的MAC地址,当数据帧的目的MAC地址匹配该MAC地址时,该数据帧可以泛洪到远端站点。
表2-9 配置VSI泛洪抑制
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入VSI视图 |
vsi vsi-name |
- |
|
关闭VSI的泛洪功能 |
flooding disable |
缺省情况下,VSI泛洪功能处于开启状态 |
|
(可选)配置VSI选择性泛洪的MAC地址 |
selective-flooding mac-address mac-address |
缺省情况下,不存在VSI选择性泛洪MAC地址 如果用户只希望某些目的MAC地址的报文可以泛洪到其它站点,可以先通过flooding disable命令关闭泛洪功能,再通过本命令配置选择性泛洪的MAC地址 |
|
属于同一个VXLAN的VTEP设备上需要配置相同的UDP端口号。
表2-10 配置VXLAN报文的目的UDP端口号
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置VXLAN报文的目的UDP端口号 |
vxlan udp-port port-number |
缺省情况下,VXLAN报文的目的UDP端口号为4789 |
通过本配置可以实现对接收到的VXLAN报文的UDP校验和进行检查: VTEP接收到VXLAN报文后,检查该报文的UDP校验和是否为0。若UDP校验和为0,则接收该报文;若UDP校验和不为0,则检查UDP检验和是否正确,正确则接收该报文;否则,丢弃该报文。
表2-11 配置VXLAN报文检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置丢弃UDP校验和检查失败的VXLAN报文 |
vxlan invalid-udp-checksum discard |
缺省情况下,不会检查VXLAN报文的UDP校验和 |
配置ARP泛洪抑制时需要注意:如果同时执行flooding disable命令关闭了VSI的泛洪功能,则建议通过mac-address timer命令配置动态MAC地址的老化时间大于25分钟(ARP泛洪抑制表项的老化时间),以免MAC地址在ARP泛洪抑制表项老化之前老化,产生黑洞MAC地址。
表2-12 配置ARP泛洪抑制
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入VSI视图 |
vsi vsi-name |
- |
|
开启ARP泛洪抑制功能 |
arp suppression enable |
缺省情况下,ARP泛洪抑制功能处于关闭状态 |
|
开启本功能后,数据报文通过VXLAN隧道进行软件转发时,不会进行QoS、安全等业务处理,直接进行转发,以提高处理性能。建议仅在VSI虚接口和VXLAN隧道对应的报文出接口上没有配置QoS、安全等业务,且需要加快VXLAN软件转发速度的场景下,开启本功能。
开启本功能后,如果到达VXLAN隧道目的端地址存在多条等价路由,只会从中选择一条路由转发VXLAN报文,不能在多条路由之间进行负载分担。
表2-13 开启VXLAN软件快速转发功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启VXLAN软件快速转发功能 |
vxlan fast-forwarding enable |
缺省情况下,VXLAN软件快速转发功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后VXLAN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令来清除VXLAN的相关信息。
操作 |
命令 |
显示VSI的ARP泛洪抑制表项信息(独立运行模式) |
display arp suppression vsi [ name vsi-name ] [ slot slot-number ] [ count ] |
显示VSI的ARP泛洪抑制表项信息(IRF模式) |
display arp suppression vsi [ name vsi-name ] [ chassis chassis-number slot slot-number ] [ count ] |
显示与VSI关联的三层接口的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 ] |
显示Tunnel接口信息 |
display interface [ tunnel [ number ] ] [ 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 ] |
display interface tunnel命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”。
Router A、Router B、Router C为与服务器连接的VTEP设备。虚拟机VM 1、VM 2和VM 3同属于VXLAN 10。通过VXLAN实现不同站点间的二层互联,确保虚拟机在站点之间进行迁移时用户的访问流量不会中断。
具体需求为:
· 不同VTEP之间手工建立VXLAN隧道。
· 手工关联VXLAN和VXLAN隧道。
· 通过源MAC地址动态学习远端MAC地址表项。
· 站点之间的泛洪流量采用头端复制的方式转发。
图2-1 VXLAN头端复制组网图
(1) 配置IP地址和单播路由协议
请按照图2-1配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。
(2) 配置Router A
# 开启L2VPN能力。
<RouterA> system-view
[RouterA] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] quit
[RouterA-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterA] interface loopback 0
[RouterA-Loopback0] ip address 1.1.1.1 255.255.255.255
[RouterA-Loopback0] quit
# 在Router A和Router B之间建立VXLAN隧道:
· 创建模式为VXLAN的隧道接口Tunnel1
· 指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1
· 指定隧道的目的端地址为Router B上接口Loopback0的地址2.2.2.2。
[RouterA] interface tunnel 1 mode vxlan
[RouterA-Tunnel1] source 1.1.1.1
[RouterA-Tunnel1] destination 2.2.2.2
[RouterA-Tunnel1] quit
# 在Router A和Router C之间建立VXLAN隧道。
[RouterA] interface tunnel 2 mode vxlan
[RouterA-Tunnel2] source 1.1.1.1
[RouterA-Tunnel2] destination 3.3.3.3
[RouterA-Tunnel2] quit
# 配置Tunnel1和Tunnel2与VXLAN 10关联。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] tunnel 1
[RouterA-vsi-vpna-vxlan-10] tunnel 2
[RouterA-vsi-vpna-vxlan-10] quit
[RouterA-vsi-vpna] quit
# 在接入服务器的接口GigabitEthernet2/1/1上关联VSI实例vpna。
[RouterA] interface gigabitethernet 2/1/1
[RouterA-GigabitEthernet2/1/1] xconnect vsi vpna
[RouterA-GigabitEthernet2/1/1] quit
(3) 配置Router B
# 开启L2VPN能力。
<RouterB> system-view
[RouterB] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] quit
[RouterB-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterB] interface loopback 0
[RouterB-Loopback0] ip address 2.2.2.2 255.255.255.255
[RouterB-Loopback0] quit
# 在Router A和Router B之间建立VXLAN隧道。
[RouterB] interface tunnel 2 mode vxlan
[RouterB-Tunnel2] source 2.2.2.2
[RouterB-Tunnel2] destination 1.1.1.1
[RouterB-Tunnel2] quit
# 在Router B和Router C之间建立VXLAN隧道。
[RouterB] interface tunnel 3 mode vxlan
[RouterB-Tunnel3] source 2.2.2.2
[RouterB-Tunnel3] destination 3.3.3.3
[RouterB-Tunnel3] quit
# 配置Tunnel2和Tunnel3与VXLAN10关联。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] tunnel 2
[RouterB-vsi-vpna-vxlan-10] tunnel 3
[RouterB-vsi-vpna-vxlan-10] quit
[RouterB-vsi-vpna] quit
# 在接入服务器的接口GigabitEthernet2/1/1上关联VSI实例vpna。
[RouterB] interface gigabitethernet 2/1/1
[RouterB-GigabitEthernet2/1/1] xconnect vsi vpna
[RouterB-GigabitEthernet2/1/1] quit
(4) 配置Router C
# 开启L2VPN能力。
<RouterC> system-view
[RouterC] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] quit
[RouterC-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterC] interface loopback 0
[RouterC-Loopback0] ip address 3.3.3.3 255.255.255.255
[RouterC-Loopback0] quit
# 在Router A和Router C之间建立VXLAN隧道。
[RouterC] interface tunnel 1 mode vxlan
[RouterC-Tunnel1] source 3.3.3.3
[RouterC-Tunnel1] destination 1.1.1.1
[RouterC-Tunnel1] quit
# 在Router B和Router C之间建立VXLAN隧道。
[RouterC] interface tunnel 3 mode vxlan
[RouterC-Tunnel3] source 3.3.3.3
[RouterC-Tunnel3] destination 2.2.2.2
[RouterC-Tunnel3] quit
# 配置Tunnel1和Tunnel3与VXLAN 10关联。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] tunnel 1
[RouterC-vsi-vpna-vxlan-10] tunnel 3
[RouterC-vsi-vpna-vxlan-10] quit
[RouterC-vsi-vpna] quit
# 在接入服务器的接口GigabitEthernet2/1/1上关联VSI实例vpna。
[RouterC] interface gigabitethernet 2/1/1
[RouterC-GigabitEthernet2/1/1] xconnect vsi vpna
[RouterC-GigabitEthernet2/1/1] quit
(1) 验证VTEP设备(下文以Router A为例,其它设备验证方法与此类似)
# 查看Router A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。
[RouterA] display interface tunnel 1
Tunnel1
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64kbps
Maximum transmission 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 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
# 查看Router A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的三层接口等信息。
[RouterA] display l2vpn vsi verbose
VSI Name: vpna
VSI Index : 0
VSI State : Up
MTU : 1500
Bandwidth : -
Broadcast Restrain : 5120 kbps
Multicast Restrain : -
Unknown Unicast Restrain: 5120 kbps
MAC Learning : Enabled
MAC Table Limit : Unlimited
MAC Learning rate : -
Drop Unknown : -
Flooding : Enabled
VXLAN ID : 10
Tunnels:
Tunnel Name Link ID State Type Flood proxy
Tunnel1 0x5000001 Up Manual Disabled
Tunnel2 0x5000002 Up Manual Disabled
ACs:
AC Link ID State
GE2/1/1 0 Up
# 查看Router A上VSI的MAC地址表项信息,可以看到已学习到的MAC地址信息。
<RouterA> 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之间可以互访。
VXLAN可以为分散的物理站点提供二层互联。如果要为VXLAN站点内的虚拟机提供三层业务,则需要在网络中部署VXLAN IP网关,以便站点内的虚拟机通过VXLAN IP网关与外界网络或其他VXLAN网络内的虚拟机进行三层通信。VXLAN IP网关既可以部署在独立的物理设备上,也可以部署在VTEP设备上。VXLAN IP网关部署在VTEP设备上时,又分为集中式VXLAN IP网关和分布式VXLAN IP网关两种方式。
图3-1 独立的VXLAN IP网关示意图
如图3-1所示,VXLAN IP网关部署在独立的物理设备上时,VXLAN IP网关作为物理站点接入VTEP,VXLAN业务对于网关设备透明。虚拟机通过VXLAN IP网关与三层网络中的节点通信时,虚拟机将三层报文封装成二层数据帧发送给VXLAN IP网关。VTEP对该数据帧进行VXLAN封装,并在IP核心网络上将其转发给远端VTEP(连接VXLAN IP网关的VTEP)。远端VTEP对VXLAN报文进行解封装,并将原始的二层数据帧转发给VXLAN IP网关。VXLAN IP网关去掉链路层封装后,对报文进行三层转发。
图3-2 集中式VXLAN IP网关示意图
如图3-2所示,集中式VXLAN IP网关进行二层VXLAN业务终结的同时,还对内层封装的IP报文进行三层转发处理。与独立的VXLAN IP网关相比,该方式除了能够节省设备资源外,VXLAN IP网关功能由VXLAN对应的三层虚接口(VSI虚接口)承担,三层业务的部署和控制也更加灵活和方便。
图3-3 集中式VXLAN IP网关的三层通信过程
如图3-3所示,以地址为10.1.1.11的虚拟机为例,虚拟机与外界网络进行三层通信的过程为:
(1) 虚拟机(10.1.1.11)跨网段进行三层通信时,先广播发送ARP请求消息,解析VXLAN IP网关(10.1.1.1)的MAC地址。
(2) VTEP 1收到ARP请求消息后,添加VXLAN封装并发送给所有的远端VTEP。
(3) VTEP 3解封装VXLAN报文后,发现ARP请求的目的IP为VXLAN对应的本地网关IP地址,即与VXLAN关联的VSI虚接口的IP地址,则学习10.1.1.11的ARP信息,并向虚拟机回应ARP应答消息。
(4) VTEP 1收到ARP应答消息后,将该消息转发给虚拟机。
(5) 虚拟机获取到网关的MAC地址后,为三层报文添加网关的MAC地址,通过VXLAN网络将二层数据帧发送给VTEP 3。
(6) VTEP 3解封装VXLAN报文,并去掉链路层头后,对内层封装的IP报文进行三层转发,将其发送给最终的目的节点。
(7) 目的节点回复的报文到达网关后,网关根据已经学习到的ARP表项,为报文封装链路层头,并通过VXLAN网络将其发送给虚拟机。
属于不同VXLAN网络的虚拟机之间的通信过程与上述过程类似,不同之处在于一个VXLAN网络的集中式网关需要将报文转发给另一个VXLAN网络的集中式网关,再由该集中式网关将报文转发给本VXLAN内对应的虚拟机。
由单台设备承担站点内大量虚拟机的集中式VXLAN IP网关功能,对设备的处理资源占用较高,并且对于网关的单点故障没有保护措施。通过集中式VXLAN IP网关保护组,可以实现多台设备同时承担网关功能,在提供单点故障保护机制的同时,还可以实现上下行流量的负载分担。
图3-4 集中式VXLAN IP网关保护组示意图
如图3-4所示,两台集中式VXLAN IP网关形成保护组,两台设备上存在相同的VTEP IP,称为保护组的VTEP IP。接入层VTEP与保护组的VTEP IP建立VXLAN隧道,将虚拟机发送至其它网络的报文转发至保护组,保护组中的两台网关设备均可以接收并处理虚拟机发往其它网络的流量。
保护组中的成员VTEP之间、每个成员VTEP与接入层VTEP之间还会采用成员自身的IP地址建立VXLAN隧道,以便进行协议通信和表项同步。
图3-5 分布式VXLAN IP网关示意图
采用集中式VXLAN IP网关方案时,不同VXLAN之间的流量以及VXLAN访问外界网络的流量全部由集中式VXLAN IP网关处理,网关压力较大,并加剧了网络带宽资源的消耗。如图3-5所示,在分布式VXLAN IP网关方案中,每台VTEP设备都可以作为VXLAN IP网关,对本地站点的流量进行三层转发,很好地缓解了网关的压力。
图3-6 分布式VXLAN IP网关部署示意图
如图3-6所示,在分布式VXLAN IP网关组网中,所有的分布式VXLAN IP网关(GW)上都需要创建VSI虚接口,并在虚接口上配置相同的IP地址,作为VXLAN内虚拟机的网关地址。在分布式VXLAN IP网关上还需要使能本地代理ARP功能。边界网关(Border)上也需要创建VSI虚接口,并配置IP地址。
采用分布式VXLAN IP网关组网方案时,流量都通过查找ARP表项进行三层转发。
如图3-6所示,以VM 1访问VM 4为例,相同VXLAN内不同站点的虚拟机的通信过程为:
(1) VM 1广播发送ARP请求消息,获取VM 4的MAC地址。
(2) GW 1收到ARP请求消息后,学习VM 1的ARP信息,并代理应答该ARP请求,即:向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。
(3) VM 1学习到VM 4的MAC地址为GW 1上VSI虚接口10的MAC地址。
(4) GW 1将接收到的ARP请求消息中的源MAC地址修改为VSI虚接口10的MAC地址,对该消息进行VXLAN封装后,将其发送给VXLAN内的所有远端VTEP。
(5) GW 2对VXLAN报文进行解封装后,学习VM 1的ARP信息(IP为10.1.1.11、MAC为GW 1上VSI虚接口10的MAC、出接口为接收该VXLAN报文的Tunnel接口),并将ARP请求消息中的源MAC修改为本地VSI虚接口10的MAC地址,在VXLAN 10的本地站点内进行广播。
(6) VM 4收到ARP请求后,学习VM 1的ARP信息(IP为10.1.1.11、MAC为GW 2上VSI虚接口10的MAC),并发送ARP应答消息给本地网关GW 2。
(7) GW 2从VM 4收到ARP应答消息后,学习VM 4的ARP信息,将ARP应答消息中的源MAC修改为本地VSI虚接口10的MAC地址,并根据已经学习到的ARP表项,为ARP应答消息添加VXLAN封装后发送给GW 1。
(8) GW 1对VXLAN报文进行解封装后,根据收到的ARP应答消息学习VM 4的ARP信息(IP为10.1.1.12、MAC为GW 2上VSI虚接口10的MAC、出接口为接收该VXLAN报文的Tunnel接口)。
(9) 通过上述步骤完成ARP信息的学习后,VM 1发送给VM 4的报文,根据已经学习到的ARP信息进行转发:首先发送给GW 1;GW 1对其进行VXLAN封装后,将其发送给GW 2;GW 2解封装后,将其发送给VM 4。
如图3-6所示,以VM 1访问VM 5为例,不同VXLAN的虚拟机的通信过程为:
(1) VM 1广播发送ARP请求消息,获取网关10.1.1.1的MAC地址。
(2) GW 1收到ARP请求消息后,学习VM 1的ARP信息,并向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。
(3) VM 1将访问VM 5的报文发送给GW 1。
(4) GW 1在所有VXLAN内向本地站点和远端站点广播发送ARP请求,获取VM 5的MAC地址。ARP请求消息中的源IP地址为20.1.1.1、源MAC地址为本地VSI虚接口20的MAC地址。
(5) GW 2从VXLAN隧道上接收到VXLAN报文,对其进行解封装后,学习GW 1的ARP信息(IP为20.1.1.1、MAC为GW 1上VSI虚接口20的MAC、出接口为接收该VXLAN报文的Tunnel接口),并将ARP请求消息中的源MAC修改为本地VSI虚接口20的MAC地址,在VXLAN 20的本地站点内广播该ARP请求消息。
(6) VM 5收到ARP请求后,学习GW 2的ARP信息(IP为20.1.1.1、MAC为GW 2上VSI虚接口20的MAC),并发送ARP应答消息给本地网关GW 2。
(7) GW 2从VM 5收到ARP应答消息后,学习VM 5的ARP信息,将ARP应答消息中的源MAC修改为本地VSI虚接口20的MAC地址,并根据已经学习到的ARP表项,为ARP应答消息添加VXLAN封装后发送给GW 1。
(8) GW 1对VXLAN报文进行解封装后,根据收到的ARP应答消息学习VM 5的ARP信息(IP为20.1.1.12、MAC为GW 2上VSI虚接口20的MAC、出接口为接收该VXLAN报文的Tunnel接口)。
(9) 通过上述步骤完成ARP信息的学习后,VM 1发送给VM 5的报文,根据已经学习到的ARP信息进行转发:首先发送给GW 1;GW 1对其进行VXLAN封装后,将其发送给GW 2;GW 2解封装后,将其发送给VM 5。
虚拟机要想与外部网络进行三层通信,需要在接入虚拟机的本地分布式VXLAN IP网关上指定流量的下一跳为Border,可以通过如下方式来实现:
· 在本地分布式VXLAN IP网关上配置静态路由,指定路由下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。
· 在本地分布式VXLAN IP网关上配置策略路由,通过apply default-next-hop命令设置报文的缺省下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。
如图3-6所示,以VM 1访问外部网络内的主机50.1.1.1为例,虚拟机访问外部网络的三层通信过程为:
(1) VM 1广播发送ARP请求消息,获取网关10.1.1.1的MAC地址。
(2) GW 1收到ARP请求消息后,学习VM 1的ARP信息,并向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。
(3) VM 1将访问外部网络的报文发送给GW 1。
(4) GW 1接收到报文后,根据策略路由判断报文的下一跳地址为10.1.1.2。GW 1在VXLAN 10内向本地站点和远端站点广播发送ARP请求消息,获取10.1.1.2对应的MAC地址。
(5) Border对VXLAN报文进行解封装,学习GW 1的ARP信息,并通过VXLAN隧道回复ARP应答消息。
(6) GW 1对VXLAN报文进行解封装,并获取到10.1.1.2的ARP信息。
(7) GW 1根据获取到的信息为VM 1发送的报文封装链路层地址(10.1.1.2对应的MAC地址),并通过VXLAN隧道将报文发送给Border。
(8) Border对接收到的报文进行解封装后,对报文进行三层转发。
建议不要在同一台设备上同时配置集中式VXLAN IP网关和集中式VXLAN IP网关保护组功能。
配置集中式VXLAN IP网关和分布式VXLAN IP网关时,需要完成以下配置任务:
· 创建VSI和VXLAN。
· 配置VXLAN隧道,并将VXLAN与VXLAN隧道关联。
表3-1 配置集中式VXLAN IP网关
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VSI虚接口,并进入VSI虚接口视图 |
interface vsi-interface vsi-interface-id |
缺省情况下,不存在VSI虚接口 如果VSI虚接口已经存在,则直接进入该VSI虚接口视图 |
配置VSI虚接口的IP地址 |
ip address ip-address { mask | mask-length } |
缺省情况下,未配置VSI虚接口的IP地址 |
退回系统视图 |
quit |
- |
进入VXLAN所在VSI视图 |
vsi vsi-name |
- |
为VSI指定网关接口 |
gateway vsi-interface vsi-interface-id |
缺省情况下,未指定VSI的网关接口 |
保护组中所有网关上的VXLAN配置需要保证完全一致。
表3-2 配置集中式VXLAN IP网关
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VSI虚接口,并进入VSI虚接口视图 |
interface vsi-interface vsi-interface-id |
缺省情况下,不存在VSI虚接口 如果VSI虚接口已经存在,则直接进入该VSI虚接口视图 请在保护组中的每台网关上创建相同的VSI虚接口 |
配置VSI虚接口的IP地址 |
ip address ip-address { mask | mask-length } |
缺省情况下,未配置VSI虚接口的IP地址 请在保护组中的每台网关上配置相同的VSI虚接口IP地址 |
配置VSI虚接口的MAC地址 |
mac-address mac-address |
缺省情况下,VSI虚接口的MAC地址与以太网聚合接口相同 保护组中所有网关上配置的MAC地址必须相同 |
退回系统视图 |
quit |
- |
进入VXLAN所在VSI视图 |
vsi vsi-name |
- |
为VSI指定网关接口 |
gateway vsi-interface vsi-interface-id |
缺省情况下,未指定VSI的网关接口 |
退回系统视图 |
quit |
- |
将本设备加入VXLAN IP网关保护组,并配置本设备的成员地址 |
vtep group group-ip member local member-ip |
缺省情况下,设备未加入VXLAN IP网关保护组 保护组中的每台VXLAN IP网关上都要执行此配置。member-ip为本设备的成员地址,该地址必须是设备上已经存在的IP地址,并且需要通过路由协议发布到IP网络 同一个保护组中不同成员VTEP的地址不能相同 |
配置VXLAN IP网关保护组的成员地址列表 |
vtep group group-ip member remote member-ip&<1-8> |
缺省情况下,未配置VXLAN IP网关保护组的成员地址列表 在保护组中每台VXLAN IP网关中执行此配置,必须输入保护组中所有其它成员的成员地址 |
执行本配置时,需要完成以下配置任务:
· 创建VSI和VXLAN。
· 配置VXLAN隧道,并将VXLAN与VXLAN隧道关联。
表3-3 配置接入层VTEP识别VXLAN IP网关保护组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置VXLAN IP网关保护组的成员地址列表 |
vtep group group-ip member remote member-ip&<1-8> |
缺省情况下,未配置VXLAN IP网关保护组的成员地址列表 必须输入保护组中所有成员的成员地址 |
如果虚拟机要想与外部网络进行三层通信,那么需要在接入虚拟机的本地分布式VXLAN IP网关上配置静态路由或策略路由:
· 配置静态路由:指定路由的下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。
· 配置策略路由:通过apply default-next-hop命令设置报文的缺省下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。策略路由的配置方法,请参见“三层技术-IP路由配置指导”中的“策略路由”。
表3-4 配置分布式VXLAN IP网关
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VSI虚接口,并进入VSI虚接口视图 |
interface vsi-interface vsi-interface-id |
缺省情况下,不存在VSI虚接口 如果VSI虚接口已经存在,则直接进入该VSI虚接口视图 |
配置VSI虚接口的IP地址 |
ip address ip-address { mask | mask-length } [ sub ] |
缺省情况下,未配置VSI虚接口的IP地址 |
配置VSI虚接口为分布式网关接口 |
distributed-gateway local |
缺省情况下,VSI虚接口不是分布式本地网关接口 |
使能本地代理ARP功能 |
local-proxy-arp enable [ ip-range startIP to endIP ] |
缺省情况下,本地代理ARP功能处于关闭状态 本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“代理ARP” |
退回系统视图 |
quit |
- |
进入VXLAN所在VSI视图 |
vsi vsi-name |
- |
为VSI指定网关接口 |
gateway vsi-interface vsi-interface-id |
缺省情况下,未指定VSI的网关接口 |
配置当前VSI所属的子网网段 |
gateway subnet ipv4-address wildcard-mask |
缺省情况下,未指定VSI所属的子网网段 为了节省分布式VXLAN IP网关设备上的三层接口资源,在网关设备上多个VXLAN可以共用一个VSI虚接口,为VSI虚接口配置一个主IPv4地址和多个从IPv4地址,分别作为不同VXLAN内虚拟机的网关地址 多个VXLAN共用一个VSI虚接口时,网关设备无法判断从VSI虚接口接收到的报文属于哪个VXLAN。为了解决该问题,需要在VSI视图下通过本命令指定VSI所属的子网网段,通过子网网段判断报文所属的VSI,并在该VSI内转发报文,从而限制广播报文范围,有效地节省带宽资源 |
通过本配置,可以根据需要调整VSI虚接口的参数及状态。
表3-5 配置VSI虚接口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI虚接口视图 |
interface vsi-interface vsi-interface-id |
- |
配置VSI虚接口的MAC地址 |
mac-address mac-address |
缺省情况下,VSI虚接口的MAC地址与以太网聚合接口相同 |
(可选)配置接口的描述信息 |
description text |
缺省情况下,接口的描述信息为“接口名 Interface”,例如:Vsi-interface100 Interface |
(可选)配置接口的MTU |
mtu mtu-value |
缺省情况下,接口的MTU值为1500字节 |
(可选)配置接口的期望带宽 |
bandwidth bandwidth-value |
缺省情况下,接口的期望带宽=接口的波特率÷1000(kbps) |
恢复当前接口的缺省配置 |
default |
- |
开启当前接口 |
undo shutdown |
缺省情况下,接口处于开启状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后VXLAN IP网关的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令来清除VSI虚接口的统计信息。
表3-6 VXLAN IP网关显示和维护
操作 |
命令 |
显示VSI虚接口信息 |
display interface [ vsi-interface [ vsi-interface-id ] ] [ brief [ description | down ] ] |
清除VSI虚接口的统计信息 |
reset counters interface [ vsi-interface [ vsi-interface-id ] ] |
Router A、Router C为与服务器连接的VTEP设备,Router B为与广域网连接的集中式VXLAN IP网关设备,Router E为广域网内的三层设备。虚拟机VM 1、VM 2同属于VXLAN 10,通过VXLAN实现不同站点间的二层互联,并通过VXLAN IP网关与广域网三层互联。
具体需求为:
· 不同VTEP之间手工建立VXLAN隧道。
· 手工关联VXLAN和VXLAN隧道。
· 通过源MAC地址动态学习远端MAC地址表项。
· 站点之间的泛洪流量采用头端复制的方式转发。
图3-7 集中式VXLAN IP网关配置组网图
(1) 配置IP地址和单播路由协议
# 在VM 1和VM 2上指定网关地址为10.1.1.1,具体配置过程略。
# 请按照图3-7配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。
# Router B和Router E上配置OSPF协议,发布10.1.1.0/24和20.1.1.0/24网段的路由,具体配置过程略。
(2) 配置Router A
# 开启L2VPN能力。
<RouterA> system-view
[RouterA] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] quit
[RouterA-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterA] interface loopback 0
[RouterA-Loopback0] ip address 1.1.1.1 255.255.255.255
[RouterA-Loopback0] quit
# 在Router A和Router B之间建立VXLAN隧道:
· 创建模式为VXLAN的隧道接口Tunnel1。
· 指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1。
· 指定隧道的目的端地址为Router B上接口Loopback0的地址2.2.2.2。
[RouterA] interface tunnel 1 mode vxlan
[RouterA-Tunnel1] source 1.1.1.1
[RouterA-Tunnel1] destination 2.2.2.2
[RouterA-Tunnel1] quit
# 在Router A和Router C之间建立VXLAN隧道。
[RouterA] interface tunnel 2 mode vxlan
[RouterA-Tunnel2] source 1.1.1.1
[RouterA-Tunnel2] destination 3.3.3.3
[RouterA-Tunnel2] quit
# 配置Tunnel1和Tunnel2与VXLAN 10关联。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] tunnel 1
[RouterA-vsi-vpna-vxlan-10] tunnel 2
[RouterA-vsi-vpna-vxlan-10] quit
[RouterA-vsi-vpna] quit
# 配置接入服务器的接口GigabitEthernet2/1/1与VSI实例vpna关联。
[RouterA] interface gigabitethernet 2/1/1
[RouterA-GigabitEthernet2/1/1] xconnect vsi vpna
[RouterA-GigabitEthernet2/1/1] quit
(3) 配置Router B
# 开启L2VPN能力。
<RouterB> system-view
[RouterB] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] quit
[RouterB-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterB] interface loopback 0
[RouterB-Loopback0] ip address 2.2.2.2 255.255.255.255
[RouterB-Loopback0] quit
# 在Router A和Router B之间建立VXLAN隧道。
[RouterB] interface tunnel 2 mode vxlan
[RouterB-Tunnel2] source 2.2.2.2
[RouterB-Tunnel2] destination 1.1.1.1
[RouterB-Tunnel2] quit
# 在Router B和Router C之间建立VXLAN隧道。
[RouterB] interface tunnel 3 mode vxlan
[RouterB-Tunnel3] source 2.2.2.2
[RouterB-Tunnel3] destination 3.3.3.3
[RouterB-Tunnel3] quit
# 配置Tunnel2和Tunnel3与VXLAN10关联。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] tunnel 2
[RouterB-vsi-vpna-vxlan-10] tunnel 3
[RouterB-vsi-vpna-vxlan-10] quit
[RouterB-vsi-vpna] quit
# 创建VSI虚接口VSI-interface1,并为其配置IP地址,该IP地址作为VXLAN 10内虚拟机的网关地址。
[RouterB] interface vsi-interface 1
[RouterB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0
[RouterB-Vsi-interface1] quit
# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。
[RouterB] vsi vpna
[RouterB-vsi-vpna] gateway vsi-interface 1
[RouterB-vsi-vpna] quit
(4) 配置Router C
# 开启L2VPN能力。
<RouterC> system-view
[RouterC] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] quit
[RouterC-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterC] interface loopback 0
[RouterC-Loopback0] ip address 3.3.3.3 255.255.255.255
[RouterC-Loopback0] quit
# 在Router A和Router C之间建立VXLAN隧道。
[RouterC] interface tunnel 1 mode vxlan
[RouterC-Tunnel1] source 3.3.3.3
[RouterC-Tunnel1] destination 1.1.1.1
[RouterC-Tunnel1] quit
# 在Router B和Router C之间建立VXLAN隧道。
[RouterC] interface tunnel 3 mode vxlan
[RouterC-Tunnel3] source 3.3.3.3
[RouterC-Tunnel3] destination 2.2.2.2
[RouterC-Tunnel3] quit
# 配置Tunnel1和Tunnel3与VXLAN 10关联。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] tunnel 1
[RouterC-vsi-vpna-vxlan-10] tunnel 3
[RouterC-vsi-vpna-vxlan-10] quit
[RouterC-vsi-vpna] quit
# 配置接入服务器的接口GigabitEthernet2/1/1与VSI实例vpna关联。
[RouterC] interface gigabitethernet 2/1/1
[RouterC-GigabitEthernet2/1/1] xconnect vsi vpna
[RouterC-GigabitEthernet2/1/1] quit
(1) 验证VXLAN IP网关设备Router B
# 查看Router B上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。
[RouterB] display interface tunnel 2
Tunnel2
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64kbps
Maximum transmission 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 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
# 查看Router B上的VSI虚接口信息,可以看到VSI虚接口处于up状态。
[RouterB] display interface Vsi-interface 1
Vsi-interface1
Current state: UP
Line protocol state: UP
Description: Vsi-interface100 Interface
Bandwidth: 1000000kbps
Maximum transmission unit: 1500
Internet address: 10.1.1.1/24 (primary)
IP packet frame type: Ethernet II, hardware address: 0011-2200-0102
IPv6 packet frame type: Ethernet II, hardware address: 0011-2200-0102
Physical: Unknown, baudrate: 1000000 kbps
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 查看Router B上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的VSI虚接口等信息。
[RouterB] display l2vpn vsi verbose
VSI Name: vpna
VSI Index : 0
VSI State : Up
MTU : 1500
Bandwidth : -
Broadcast Restrain : 5120 kbps
Multicast Restrain : -
Unknown Unicast Restrain: 5120 kbps
MAC Learning : Enabled
MAC Table Limit : Unlimited
MAC Learning rate : -
Drop Unknown : -
Flooding : Enabled
Gateway interface : VSI-interface 1
VXLAN ID : 10
Tunnels:
Tunnel Name Link ID State Type Flood proxy
Tunnel2 0x5000002 Up Manual Disabled
Tunnel3 0x5000003 Up Manual Disabled
# 查看Router B上VSI的ARP表项信息,可以看到已学习到了虚拟机的ARP信息。
[RouterB] display arp
Type: S-Static D-Dynamic O-Openflow M-Multiport I-Invalid
IP address MAC address SVID Interface Aging Type
20.1.1.5 000c-29c1-5e46 -- GE2/1/1 19 D
10.1.1.11 0000-1234-0001 -- Vsi10 20 D
10.1.1.12 0000-1234-0002 -- Vsi10 19 D
# 查看Router B上FIB表项信息,可以看到已学习到了虚拟机的转发表项信息。
[RouterB] display fib 10.1.1.11
Destination count: 1 FIB entry count: 1
Flag:
U:Usable G:Gateway H:Host B:Blackhole D:Dynamic S:Static
R:Relay F:FRR
Destination/Mask Nexthop Flag OutInterface/Token Label
10.1.1.11/32 10.1.1.11 UH Vsi100 Null
(2) 验证主机和广域网互访
虚拟机VM 1、VM 2之间可以互访,VM 1、VM 2和Router E上接口GigabitEthernet2/1/1的地址20.1.1.5之间可以互访。
Router A、Router C为分布式VXLAN IP网关设备,Router B为与广域网连接的边界网关设备,Router E为广域网内的三层设备。虚拟机VM 1属于VXLAN 10,VM 2属于VXLAN 20,VM 3属于VXLAN 30。通过分布式VXLAN IP网关实现不同VXLAN网络的三层互联,并通过边界网关实现与广域网的三层互联。
具体需求为:
· 站点网络为IPv4网络。
· 不同VTEP之间手工建立VXLAN隧道。
· 手工关联VXLAN和VXLAN隧道。
· 站点之间的泛洪流量采用头端复制的方式转发。
· VM 1、VM 2、VM 3之间可以互访,且VM 1、VM 2和VM 3都可以访问外部网络。
图3-8 分布式VXLAN IP网关连接IPv4网络配置组网图
(1) 配置IP地址和单播路由协议
# 在VM 1、VM 2和VM 3上分别指定网关地址为10.1.1.1、10.1.2.1、20.1.1.1,具体配置过程略。
# 请按照图3-8配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。
# Router B和Router E上配置OSPF协议,发布10.1.1.0/24、10.1.2.0/24、20.1.1.0/24和25.1.1.0/24网段的路由,具体配置过程略。
(2) 配置Router A
# 开启L2VPN能力。
<RouterA> system-view
[RouterA] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] quit
[RouterA-vsi-vpna] quit
# 创建VSI实例vpnb和VXLAN 20。
[RouterA] vsi vpnb
[RouterA-vsi-vpnb] vxlan 20
[RouterA-vsi-vpnb-vxlan-20] quit
[RouterA-vsi-vpnb] quit
# 创建VSI实例vpnc和VXLAN 30。
[RouterA] vsi vpnc
[RouterA-vsi-vpnc] vxlan 30
[RouterA-vsi-vpnc-vxlan-30] quit
[RouterA-vsi-vpnc] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterA] interface loopback 0
[RouterA-Loopback0] ip address 1.1.1.1 255.255.255.255
[RouterA-Loopback0] quit
# 在Router A和Router B之间建立VXLAN隧道:
· 创建模式为VXLAN的隧道接口Tunnel1。
· 指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1。
· 指定隧道的目的端地址为Router B上接口Loopback0的地址2.2.2.2。
[RouterA] interface tunnel 1 mode vxlan
[RouterA-Tunnel1] source 1.1.1.1
[RouterA-Tunnel1] destination 2.2.2.2
[RouterA-Tunnel1] quit
# 在Router A和Router C之间建立VXLAN隧道。
[RouterA] interface tunnel 2 mode vxlan
[RouterA-Tunnel2] source 1.1.1.1
[RouterA-Tunnel2] destination 3.3.3.3
[RouterA-Tunnel2] quit
# 配置Tunnel1和Tunnel2与VXLAN 10关联。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] tunnel 1
[RouterA-vsi-vpna-vxlan-10] tunnel 2
[RouterA-vsi-vpna-vxlan-10] quit
[RouterA-vsi-vpna] quit
# 配置Tunnel1和Tunnel2与VXLAN 20关联。
[RouterA] vsi vpnb
[RouterA-vsi-vpnb] vxlan 20
[RouterA-vsi-vpnb-vxlan-20] tunnel 1
[RouterA-vsi-vpnb-vxlan-20] tunnel 2
[RouterA-vsi-vpnb-vxlan-20] quit
[RouterA-vsi-vpnb] quit
# 配置Tunnel2与VXLAN 30关联。
[RouterA] vsi vpnc
[RouterA-vsi-vpnc] vxlan 30
[RouterA-vsi-vpnc-vxlan-30] tunnel 2
[RouterA-vsi-vpnc-vxlan-30] quit
[RouterA-vsi-vpnc] quit
# 配置接入VM 1的接口GigabitEthernet2/1/1关联VSI实例vpna。
[RouterA] interface gigabitethernet 2/1/1
[RouterA-GigabitEthernet2/1/1] xconnect vsi vpna
[RouterA-GigabitEthernet2/1/1] quit
# 配置接入VM 2的接口GigabitEthernet2/1/3关联VSI实例vpnb。
[RouterA] interface gigabitethernet 2/1/3
[RouterA-GigabitEthernet2/1/3] xconnect vsi vpnb
[RouterA-GigabitEthernet2/1/3] quit
# 创建VSI虚接口VSI-interface1,并为其配置IP地址和MAC地址,该IP地址作为VXLAN 10内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并使能本地代理ARP功能。
[RouterA] interface vsi-interface 1
[RouterA-Vsi-interface1] ip address 10.1.1.1 255.255.255.0
[RouterA-Vsi-interface1] mac-address 1-1-1
[RouterA-Vsi-interface1] distributed-gateway local
[RouterA-Vsi-interface1] local-proxy-arp enable
[RouterA-Vsi-interface1] quit
# 创建VSI虚接口VSI-interface2,并为其配置IP地址和MAC地址,该IP地址作为VXLAN 20内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并使能本地代理ARP功能。
[RouterA] interface vsi-interface 2
[RouterA-Vsi-interface2] ip address 10.1.2.1 255.255.255.0
[RouterA-Vsi-interface2] mac-address 2-2-2
[RouterA-Vsi-interface2] distributed-gateway local
[RouterA-Vsi-interface2] local-proxy-arp enable
[RouterA-Vsi-interface2] quit
# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联,并配置该VSI实例的子网网段为10.1.1.0/24。
[RouterA] vsi vpna
[RouterA-vsi-vpna] gateway vsi-interface 1
[RouterA-vsi-vpna] gateway subnet 10.1.1.0 0.0.0.255
[RouterA-vsi-vpna] quit
# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。
[RouterA] vsi vpnb
[RouterA-vsi-vpnb] gateway vsi-interface 2
[RouterA-vsi-vpnb] quit
# 为VSI虚接口VSI-interface1配置从IP地址,该从IP地址作为VXLAN 30内虚拟机的网关地址。
[RouterA] interface vsi-interface 1
[RouterA-Vsi-interface1] ip address 20.1.1.1 255.255.255.0 sub
[RouterA-Vsi-interface1] quit
# 配置VXLAN 30所在的VSI实例和接口VSI-interface1关联,并配置该VSI实例的子网网段为20.1.1.0/24。
[RouterA] vsi vpnc
[RouterA-vsi-vpnc] gateway vsi-interface 1
[RouterA-vsi-vpnc] gateway subnet 20.1.1.0 0.0.0.255
[RouterA-vsi-vpnc] quit
# 配置策略路由,指定IPv4报文如果未找到匹配的路由表项,则设置报文的下一跳为Router B上接口VSI-interface1的IP地址10.1.1.2。
[RouterA] acl advanced 3000
[RouterA-acl-ipv4-adv-3000] rule 0 permit ip
[RouterA-acl-ipv4-adv-3000] quit
[RouterA] policy-based-route vxlan10 permit node 5
[RouterA-pbr-vxlan10-5] if-match acl 3000
[RouterA-pbr-vxlan10-5] apply default-next-hop 10.1.1.2
[RouterA-pbr-vxlan10-5] quit
# 配置策略路由,指定IPv4报文如果未找到匹配的路由表项,则设置报文的下一跳为Router B上接口VSI-interface2的IP地址10.1.2.2。
[RouterA] policy-based-route vxlan20 permit node 5
[RouterA-pbr-vxlan20-5] if-match acl 3000
[RouterA-pbr-vxlan20-5] apply default-next-hop 10.1.2.2
[RouterA-pbr-vxlan20-5] quit
# 在VSI虚接口VSI-interface1和VSI-interface2上应用策略路由。
[RouterA] interface vsi-interface 1
[RouterA-Vsi-interface1] ip policy-based-route vxlan10
[RouterA-Vsi-interface1] quit
[RouterA] interface vsi-interface 2
[RouterA-Vsi-interface2] ip policy-based-route vxlan20
[RouterA-Vsi-interface2] quit
(3) 配置Router B
# 开启L2VPN能力。
<RouterB> system-view
[RouterB] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] quit
[RouterB-vsi-vpna] quit
# 创建VSI实例vpnb和VXLAN 20。
[RouterB] vsi vpnb
[RouterB-vsi-vpnb] vxlan 20
[RouterB-vsi-vpnb-vxlan-20] quit
[RouterB-vsi-vpnb] quit
# 创建VSI实例vpnc和VXLAN 30。
[RouterB] vsi vpnc
[RouterB-vsi-vpnc] vxlan 30
[RouterB-vsi-vpnc-vxlan-30] quit
[RouterB-vsi-vpnc] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterB] interface loopback 0
[RouterB-Loopback0] ip address 2.2.2.2 255.255.255.255
[RouterB-Loopback0] quit
# 在Router A和Router B之间建立VXLAN隧道。
[RouterB] interface tunnel 2 mode vxlan
[RouterB-Tunnel2] source 2.2.2.2
[RouterB-Tunnel2] destination 1.1.1.1
[RouterB-Tunnel2] quit
# 在Router B和Router C之间建立VXLAN隧道。
[RouterB] interface tunnel 3 mode vxlan
[RouterB-Tunnel3] source 2.2.2.2
[RouterB-Tunnel3] destination 3.3.3.3
[RouterB-Tunnel3] quit
# 配置Tunnel2与VXLAN 10关联。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] tunnel 2
[RouterB-vsi-vpna-vxlan-10] quit
[RouterB-vsi-vpna] quit
# 配置Tunnel2与VXLAN 20关联。
[RouterB] vsi vpnb
[RouterB-vsi-vpnb] vxlan 20
[RouterB-vsi-vpnb-vxlan-20] tunnel 2
[RouterB-vsi-vpnb-vxlan-20] quit
[RouterB-vsi-vpnb] quit
# 配置Tunnel3与VXLAN 30关联。
[RouterB] vsi vpnc
[RouterB-vsi-vpnc] vxlan 30
[RouterB-vsi-vpnc-vxlan-30] tunnel 3
[RouterB-vsi-vpnc-vxlan-30] quit
[RouterB-vsi-vpnc] quit
# 创建VSI虚接口VSI-interface1,并为其配置IP地址。
[RouterB] interface vsi-interface 1
[RouterB-Vsi-interface1] ip address 10.1.1.2 255.255.255.0
[RouterB-Vsi-interface1] quit
# 创建VSI虚接口VSI-interface2,并为其配置IP地址。
[RouterB] interface vsi-interface 2
[RouterB-Vsi-interface2] ip address 10.1.2.2 255.255.255.0
[RouterB-Vsi-interface2] quit
# 创建VSI虚接口VSI-interface3,并为其配置IP地址。
[RouterB] interface vsi-interface 3
[RouterB-Vsi-interface3] ip address 20.1.1.2 255.255.255.0
[RouterB-Vsi-interface3] quit
# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。
[RouterB] vsi vpna
[RouterB-vsi-vpna] gateway vsi-interface 1
[RouterB-vsi-vpna] quit
# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。
[RouterB] vsi vpnb
[RouterB-vsi-vpnb] gateway vsi-interface 2
[RouterB-vsi-vpnb] quit
# 配置VXLAN 30所在的VSI实例和接口VSI-interface3关联。
[RouterB] vsi vpnc
[RouterB-vsi-vpnc] gateway vsi-interface 3
[RouterB-vsi-vpnc] quit
(4) 配置Router C
# 开启L2VPN能力。
<RouterC> system-view
[RouterC] l2vpn enable
# 创建VSI实例vpna和VXLAN 10。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] quit
[RouterC-vsi-vpna] quit
# 创建VSI实例vpnb和VXLAN 20。
[RouterC] vsi vpnb
[RouterC-vsi-vpnb] vxlan 20
[RouterC-vsi-vpnb-vxlan-20] quit
[RouterC-vsi-vpnb] quit
# 创建VSI实例vpnc和VXLAN 30。
[RouterC] vsi vpnc
[RouterC-vsi-vpnc] vxlan 30
[RouterC-vsi-vpnc-vxlan-30] quit
[RouterC-vsi-vpnc] quit
# 配置接口Loopback0的IP地址,作为隧道的源端地址。
[RouterC] interface loopback 0
[RouterC-Loopback0] ip address 3.3.3.3 255.255.255.255
[RouterC-Loopback0] quit
# 在Router A和Router C之间建立VXLAN隧道。
[RouterC] interface tunnel 1 mode vxlan
[RouterC-Tunnel1] source 3.3.3.3
[RouterC-Tunnel1] destination 1.1.1.1
[RouterC-Tunnel1] quit
# 在Router B和Router C之间建立VXLAN隧道。
[RouterC] interface tunnel 3 mode vxlan
[RouterC-Tunnel3] source 3.3.3.3
[RouterC-Tunnel3] destination 2.2.2.2
[RouterC-Tunnel3] quit
# 配置Tunnel1与VXLAN 10关联。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] tunnel 1
[RouterC-vsi-vpna-vxlan-10] quit
[RouterC-vsi-vpna] quit
# 配置Tunnel1与VXLAN 20关联。
[RouterC] vsi vpnb
[RouterC-vsi-vpnb] vxlan 20
[RouterC-vsi-vpnb-vxlan-20] tunnel 1
[RouterC-vsi-vpnb-vxlan-20] quit
[RouterC-vsi-vpnb] quit
# 配置Tunnel1和Tunnel3与VXLAN 30关联。
[RouterC] vsi vpnc
[RouterC-vsi-vpnc] vxlan 30
[RouterC-vsi-vpnc-vxlan-30] tunnel 1
[RouterC-vsi-vpnc-vxlan-30] tunnel 3
[RouterC-vsi-vpnc-vxlan-30] quit
[RouterC-vsi-vpnc] quit
# 在接入VM 3的接口GigabitEthernet2/1/1关联VSI实例vpnc。
[RouterC] interface gigabitethernet 2/1/1
[RouterC-GigabitEthernet2/1/1] xconnect vsi vpnc
[RouterC-GigabitEthernet2/1/1] quit
# 创建VSI虚接口VSI-interface1,并为其配置IP地址和MAC地址,该IP地址作为VXLAN 10内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并使能本地代理ARP功能。
[RouterC] interface vsi-interface 1
[RouterC-Vsi-interface1] ip address 10.1.1.1 255.255.255.0
[RouterC-Vsi-interface1] mac-address 1-1-1
[RouterC-Vsi-interface1] distributed-gateway local
[RouterC-Vsi-interface1] local-proxy-arp enable
[RouterC-Vsi-interface1] quit
# 创建VSI虚接口VSI-interface2,并为其配置IP地址和MAC地址,该IP地址作为VXLAN 20内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。
[RouterC] interface vsi-interface 2
[RouterC-Vsi-interface2] ip address 10.1.2.1 255.255.255.0
[RouterC-Vsi-interface2] mac-address 2-2-2
[RouterC-Vsi-interface2] distributed-gateway local
[RouterC-Vsi-interface2] local-proxy-arp enable
[RouterC-Vsi-interface2] quit
# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联,并配置该VSI实例的子网网段为10.1.1.0/24。
[RouterC] vsi vpna
[RouterC-vsi-vpna] gateway vsi-interface 1
[RouterC-vsi-vpna] gateway subnet 10.1.1.0 0.0.0.255
[RouterC-vsi-vpna] quit
# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。
[RouterC] vsi vpnb
[RouterC-vsi-vpnb] gateway vsi-interface 2
[RouterC-vsi-vpnb] quit
# 为VSI虚接口VSI-interface1配置从IP地址,该从IP地址作为VXLAN 30内虚拟机的网关地址。
[RouterC] interface vsi-interface 1
[RouterC-Vsi-interface1] ip address 20.1.1.1 255.255.255.0 sub
[RouterC-Vsi-interface1] quit
# 配置VXLAN 20所在的VSI实例和接口VSI-interface1关联,并配置该VSI实例的子网网段为20.1.1.0/24。
[RouterC] vsi vpnc
[RouterC-vsi-vpnc] gateway vsi-interface 1
[RouterC-vsi-vpnc] gateway subnet 20.1.1.0 0.0.0.255
[RouterC-vsi-vpnc] quit
# 配置策略路由,指定IPv4报文如果未找到匹配的路由表项,则设置报文的下一跳为Router B上接口VSI-interface1的IP地址20.1.1.2。
[RouterC] acl advanced 3000
[RouterC-acl-ipv4-adv-3000] rule 0 permit ip
[RouterC-acl-ipv4-adv-3000] quit
[RouterC] policy-based-route vxlan permit node 5
[RouterC-pbr-vxlan-5] if-match acl 3000
[RouterC-pbr-vxlan-5] apply default-next-hop 20.1.1.2
[RouterC-pbr-vxlan-5] quit
# 在VSI虚接口VSI-interface1上应用策略路由。
[RouterC] interface Vsi-interface1
[RouterC-Vsi-interface1] ip policy-based-route vxlan
[RouterC-Vsi-interface1] quit
(1) 验证分布式VXLAN IP网关设备Router A
# 查看Router A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。
[RouterA] display interface tunnel 2
Tunnel2
Current state: UP
Line protocol state: UP
Description: Tunnel2 Interface
Bandwidth: 64kbps
Maximum transmission 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 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
# 查看Router A上的VSI虚接口信息,可以看到VSI虚接口处于up状态。
[RouterA] display interface vsi-interface 1
Vsi-interface1
Current state: UP
Line protocol state: UP
Description: Vsi-interface1 Interface
Bandwidth: 1000000kbps
Maximum transmission unit: 1500
Internet address: 10.1.1.1/24 (primary)
IP packet frame type: Ethernet II, hardware address: 0011-2200-0102
IPv6 packet frame type: Ethernet II, hardware address: 0011-2200-0102
Physical: Unknown, baudrate: 1000000 kbps
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 查看Router A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的VSI虚接口等信息。
[RouterA] display l2vpn vsi name vpna verbose
VSI Name: vpna
VSI Index : 0
VSI State : Up
MTU : 1500
Bandwidth : -
Broadcast Restrain : 5120 kbps
Multicast Restrain : -
Unknown Unicast Restrain: 5120 kbps
MAC Learning : Enabled
MAC Table Limit : Unlimited
MAC Learning rate : -
Drop Unknown : -
Flooding : Enabled
Gateway interface : VSI-interface 1
VXLAN ID : 10
Tunnels:
Tunnel Name Link ID State Type
Tunnel1 0x5000001 Up Manual
Tunnel2 0x5000002 Up Manual
ACs:
AC Link ID State
GE2/1/1 0 Up
# 查看Router A上VSI的ARP表项信息,可以看到已学习到了虚拟机的ARP信息。
[RouterA] display arp
Type: S-Static D-Dynamic O-Openflow M-Multiport I-Invalid
IP address MAC address SVID Interface Aging Type
11.1.1.4 000c-29c1-5e46 -- GE2/1/2 19 D
10.1.1.2 0003-0000-0000 -- Vsi1 20 D
10.1.1.11 0cda-41b5-cf09 -- Vsi1 20 D
10.1.2.2 0004-0000-0000 -- Vsi2 20 D
10.1.2.11 0cda-41b5-cf89 -- Vsi2 20 D
20.1.1.12 0000-fc00-0b01 -- Vsi1 19 D
(2) 验证边界网关设备Router B
# 查看Router B上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。
[RouterB] display interface tunnel 2
Tunnel2
Current state: UP
Line protocol state: UP
Description: Tunnel2 Interface
Bandwidth: 64kbps
Maximum transmission 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 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
# 查看Router B上的VSI虚接口信息,可以看到VSI虚接口处于up状态。
[RouterB] display interface vsi-interface 1
Vsi-interface1
Current state: UP
Line protocol state: UP
Description: Vsi-interface11 Interface
Bandwidth: 1000000kbps
Maximum transmission unit: 1500
Internet address: 10.1.1.2/24 (primary)
IP packet frame type: Ethernet II, hardware address: 0011-2200-0102
IPv6 packet frame type: Ethernet II, hardware address: 0011-2200-0102
Physical: Unknown, baudrate: 1000000 kbps
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 查看Router B上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的VSI虚接口等信息。
[RouterB] display l2vpn vsi name vpna verbose
VSI Name: vpna
VSI Index : 0
VSI State : Up
MTU : 1500
Bandwidth : -
Broadcast Restrain : 5120 kbps
Multicast Restrain : -
Unknown Unicast Restrain: 5120 kbps
MAC Learning : Enabled
MAC Table Limit : Unlimited
MAC Learning rate : -
Drop Unknown : -
Flooding : Enabled
Gateway interface : VSI-interface 1
VXLAN ID : 10
Tunnels:
Tunnel Name Link ID State Type
Tunnel1 0x5000001 Up Manual
Tunnel2 0x5000002 Up Manual
# 查看Router B上VSI的ARP表项信息,可以看到已学习到了虚拟机的ARP信息。
[RouterB] display arp
Type: S-Static D-Dynamic O-Openflow M-Multiport I-Invalid
IP address MAC address SVID Interface Aging Type
12.1.1.4 0000-fc00-00ab -- GE2/1/2 14 D
25.1.1.5 4431-9234-24bb -- GE2/1/1 17 D
10.1.1.1 0000-fc00-00ab -- Vsi1 17 D
10.1.1.11 0000-fc00-00ab -- Vsi1 20 D
10.1.2.1 0000-fc00-00bc -- Vsi2 17 D
10.1.1.11 0000-fc00-00bc -- Vsi2 20 D
20.1.1.1 0000-fc00-00aa -- Vsi3 17 D
20.1.1.12 0000-fc00-00aa -- Vsi3 20 D
# 查看Router B上FIB表项信息,可以看到已学习到了虚拟机的转发表项信息。
[RouterB] 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
[RouterB] 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 Vsi1 Null
(3) 验证主机和广域网互访
虚拟机VM 1、VM 2、VM 3之间可以互访;VM 1、VM 2和VM 3可以与Router E上接口GigabitEthernet2/1/1的地址25.1.1.5之间互访。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!