1 VXLAN简介 ········································································································································ 1-1
1.1 VXLAN网络模型 ································································································································ 1-1 1.2 VXLAN报文封装格式························································································································· 1-2 1.3 VXLAN运行机制 ································································································································ 1-2
1.3.1 建立VXLAN隧道并将其与VXLAN关联···················································································· 1-3 1.3.2 识别报文所属的VXLAN ·········································································································· 1-3 1.3.3 学习MAC地址 ························································································································· 1-3 1.3.4 转发单播流量 ·························································································································· 1-4 1.3.5 转发泛洪流量 ·························································································································· 1-5 1.4 ARP泛洪抑制 ···································································································································· 1-7 1.5 协议规范 ············································································································································ 1-9
2 配置VXLAN ········································································································································ 2-1
2.1 VXLAN配置任务简介························································································································· 2-1 2.2 创建VSI和VXLAN ······························································································································ 2-1 2.3 配置VXLAN隧道 ································································································································ 2-2 2.4 关联VXLAN与VXLAN隧道 ················································································································ 2-3 2.5 配置AC与VSI关联以及与Track项联动 ······························································································· 2-3 2.6 管理本地和远端MAC地址·················································································································· 2-3
2.6.1 开启增删本地MAC地址时记录日志的功能·············································································· 2-4 2.6.2 添加静态远端MAC地址··········································································································· 2-4 2.6.3 开启远端MAC地址自动学习功能 ···························································································· 2-4 2.7 配置VXLAN组播路由泛洪方式 ·········································································································· 2-4 2.8 配置VSI泛洪抑制······························································································································· 2-5 2.9 配置VXLAN报文的目的UDP端口号 ··································································································· 2-6 2.10 配置VXLAN报文检查功能 ··············································································································· 2-6 2.11 配置ARP泛洪抑制 ··························································································································· 2-6 2.12 配置VXLAN流量统计······················································································································· 2-7 2.13 VXLAN显示和维护 ·························································································································· 2-7 2.14 VXLAN典型配置举例······················································································································· 2-8
3 ENDP ················································································································································· 3-1
3.1 ENDP简介 ········································································································································· 3-1
3.1.1 ENDP基本运行机制 ················································································································ 3-1
i
3.1.2 ENDP定时探测和老化 ············································································································ 3-1 3.1.3 ENDP认证功能 ······················································································································· 3-1 3.2 配置ENDP ········································································································································· 3-2 3.3 ENDP显示和维护 ······························································································································ 3-3 3.4 ENDP典型配置举例··························································································································· 3-3
4 VXLAN IS-IS协议······························································································································· 4-1
4.1 VXLAN IS-IS协议配置任务简介 ········································································································ 4-1 4.2 为VXLAN IS-IS指定预留VXLAN ······································································································· 4-1 4.3 自动关联VXLAN与VXLAN隧道 ········································································································· 4-1 4.4 配置通过VXLAN IS-IS同步MAC地址 ································································································ 4-2 4.5 调整和优化VXLAN IS-IS ··················································································································· 4-2
4.5.1 配置VXLAN IS-IS Hello报文的发送 ························································································ 4-2 4.5.2 配置DED的优先级和CSNP报文发送时间间隔········································································ 4-3 4.5.3 配置LSP相关参数 ··················································································································· 4-3 4.5.4 配置邻接状态变化的输出开关 ································································································· 4-4 4.5.5 配置VXLAN IS-IS GR ············································································································· 4-4 4.5.6 配置VXLAN IS-IS虚拟系统 ····································································································· 4-5 4.6 VXLAN IS-IS显示和维护 ··················································································································· 4-6 4.7 VXLAN IS-IS典型配置举例················································································································ 4-6
5 VXLAN IP网关 ··································································································································· 5-1
5.1 VXLAN IP网关简介···························································································································· 5-1
5.1.1 独立的VXLAN IP网关 ············································································································· 5-1 5.1.2 VTEP同时作为VXLAN IP网关 ································································································ 5-2 5.2 配置VTEP同时作为VXLAN IP网关 ···································································································· 5-3 5.3 VXLAN IP网关显示和维护················································································································· 5-4 5.4 VXLAN IP网关典型配置举例 ············································································································· 5-5
ii
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的虚拟机处于同一个逻辑二层网络,彼此之间二层互
1-1
通;属于不同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报文封装示意图
外层IP头外层UDP头VXLAN头原始二层数据帧标记位RRRRIRRRVXLAN ID保留未用保留未用
如图1-2所示,VXLAN报文的封装格式为:在原始二层数据帧外添加8字节VXLAN头、8字节UDP头和20字节IP头。其中,UDP头的目的端口号为VXLAN UDP端口号(缺省为4789)。VXLAN头主要包括两部分: • •
标记位:“I”位为1时,表示VXLAN头中的VXLAN ID有效;为0,表示VXLAN ID无效。其他位保留未用,设置为0。
VXLAN ID:用来标识一个VXLAN网络,长度为24比特。
1.3 VXLAN运行机制
VXLAN运行机制可以概括为:
(1) 发现远端VTEP,在VTEP之间建立VXLAN隧道,并将VXLAN隧道与VXLAN关联。 (2) 识别接收到的报文所属的VXLAN,以便将报文的源MAC地址学习到VXLAN对应的VSI,并
在该VSI内转发该报文。 (3) 学习虚拟机的MAC地址。
(4) 根据学习到的MAC地址表项转发报文。
1-2
1.3.1 建立VXLAN隧道并将其与VXLAN关联
为了将VXLAN报文传递到远端VTEP,需要创建VXLAN隧道,并将VXLAN隧道与VXLAN关联。 1. 创建VXLAN隧道
VXLAN隧道的建立方式有如下两种: • •
手工方式:手工配置Tunnel接口,并指定隧道的源和目的IP地址分别为本端和远端VTEP的IP地址。
自动方式:通过ENDP(Enhanced Neighbor Discovery Protocol,增强的邻居发现协议)发现远端VTEP后,自动在本端和远端VTEP之间建立VXLAN隧道。ENDP协议的详细介绍,请。 参见“3 ENDP”
2. 关联VXLAN隧道与VXLAN
VXLAN隧道与VXLAN关联的方式有如下两种: • •
手工方式:手工将VXLAN隧道与VXLAN关联。
自动方式:VXLAN扩展了IS-IS协议来发布VXLAN ID信息。VTEP在所有VXLAN隧道上通过VXLAN IS-IS将本地存在的VXLAN的ID通告给远端VTEP。远端VTEP将其与本地的VXLAN进行比较,如果存在相同的VXLAN,则将该VXLAN与接收该信息的VXLAN隧道关联。
1.3.2 识别报文所属的VXLAN
1. 本地站点内接收到数据帧的识别
VTEP将连接本地站点的三层接口与VSI关联。VTEP从三层接口收到数据帧后,查找与其关联的VSI,VSI内创建的VXLAN即为该数据帧所属的VXLAN。
在VXLAN中,与VSI关联的三层接口统称为AC(Attachment Circuit,接入电路)。 2. VXLAN隧道上接收报文的识别
VTEP根据报文中携带的VXLAN ID判断该报文所属对于从VXLAN隧道上接收到的VXLAN报文,的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隧道接口。
1-3
• 通过报文中的源MAC地址动态学习:VTEP从VXLAN隧道上接收到远端VTEP发送的VXLAN报文后,根据VXLAN ID判断报文所属的VXLAN,对报文进行解封装,还原二层数据帧,并将数据帧中的源MAC地址(远端虚拟机的MAC地址)添加到所属VXLAN对应VSI的MAC地址表中,该MAC地址对应的接口为VXLAN隧道接口。
• 通过IS-IS协议学习:VXLAN扩展了IS-IS协议来发布远端MAC地址信息。在VTEP上运行VXLAN IS-IS协议,通过VXLAN隧道将本地MAC地址及其所属的VXLAN信息通告给远端VTEP。远端VTEP接收到该信息后,将其添加到所属VXLAN对应VSI的MAC地址表中,该MAC地址对应的接口为接收该信息的VXLAN隧道接口。
静态配置的远端MAC地址表项优先级高于源MAC地址动态学习和通过IS-IS协议学习的表项。源MAC地址动态学习和通过IS-IS协议学习的表项优先级相同,后生成的表项可以覆盖已经存在的表项。
1.3.4 转发单播流量
完成本地和远端MAC地址学习后,VTEP在VXLAN内转发单播流量的过程如下所述。 1. 站点内流量
对于站点内流量,VTEP判断出报文所属的VSI后,根据目的MAC地址查找该VSI的MAC地址表,从相应的本地接口转发给目的VM。 图1-3 站点内单播流量转发
如图1-3所示,VM 1(MAC地址为MAC 1)发送以太网帧到VM 4(MAC地址为MAC 4)时,VTEP 1从接口GigabitEthernet1/0/1收到该以太网帧后,判断该数据帧属于VSI A(VXLAN 10),查找VSI A的MAC地址表,得到MAC 4的出接口为GigabitEthernet1/0/2,所在VLAN为VLAN 10,则将以太网帧从接口GigabitEthernet1/0/2的VLAN 10内发送给VM 4。
1-4
2. 站点间流量
图1-4 站点间单播流量转发
VM 1VM 2VM 3MAC Table on VTEP 1VXLAN/VSIVXLAN 10/VSI AVXLAN 10/VSI AMACMAC 1MAC 7InterfaceGE1/0/1, VLAN 2Tunnel 1VM 7GE1/0/1GE1/0/2Server 1VXLAN tunnel 1GE1/0/1VM 8VM 4VM 5VM 6VTEP 1PIP核心网络VTEP 2VM 9Server 3MAC Table on VTEP 2VXLAN/VSIVXLAN 10/VSI AVXLAN 10/VSI AMACMAC 1MAC 7InterfaceTunnel 1GE1/0/1, VLAN 20Server 2
如图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从接口GigabitEthernet1/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的出端口为
GigabitEthernet1/0/1,所在VLAN为VLAN 20。
(6) VTEP 2从接口GigabitEthernet1/0/1的VLAN 20内将数据帧发送给VM 7。
1.3.5 转发泛洪流量
泛洪流量包括组播、广播和未知单播流量。根据复制方式的不同,流量泛洪方式分为单播路由方式(头端复制)和组播路由方式(核心复制)两种。 1. 单播路由方式(头端复制)
在单播路由方式下,VTEP负责复制报文,采用单播方式将复制后的报文通过本地接口发送给本地站点,并通过VXLAN隧道发送给VXLAN内的所有远端VTEP。
1-5
图1-5 单播路由方式转发示意图
如图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隧道。 2. 组播路由方式(核心复制)
采用组播路由方式可以节省泛洪数据中心网络中需要通过IP核心网络进行二层互联的站点较多时,流量对核心网络带宽资源的占用。
在组播路由方式下,同一个VXLAN内的所有VTEP都加入同一个组播组,利用组播路由协议(如PIM)在IP核心网上为该组播组建立组播转发表项。VTEP接收到泛洪流量后,不仅在本地站点内泛洪,还会为其封装组播目的IP地址,封装后的报文根据已建立的组播转发表项转发到远端VTEP。
1-6
图1-6 组播路由方式转发示意图
如图1-6所示,组播路由方式的泛洪流量转发过程为:
(1) VTEP 1接收到本地虚拟机发送的组播、广播和未知单播数据帧后,判断数据帧所属的VXLAN,
不仅通过该VXLAN内除接收接口外的所有本地接口将数据帧转发到本地站点,还会为其封装VXLAN头、UDP头和IP头(目的IP地址为组播地址)通过组播转发表项将其发送到远端VTEP。
(2) 在IP核心网内,P设备根据已经建立的组播转发表项复制并转发该组播报文。
(3) 远端VTEP(VTEP 2和VTEP 3)接收到VXLAN报文后,解封装报文,将原始的数据帧在本
地站点的指定VXLAN内泛洪。为了避免环路,远端VTEP从VXLAN隧道上接收到报文后,不会再将其泛洪到其他的VXLAN隧道。
1.4 ARP泛洪抑制
为了避免广播发送的ARP请求报文占用核心网络带宽,VTEP从本地站点、VXLAN隧道接收到ARP请求和ARP应答报文后,根据该报文在本地建立ARP泛洪抑制表项。后续当VTEP收到本站点内虚拟机请求其它虚拟机MAC地址的ARP请求时,优先根据ARP泛洪抑制表项进行代答。如果没有对应的表项,则将ARP请求泛洪到核心网。ARP泛洪抑制功能可以大大减少ARP泛洪的次数。
1-7
图1-7 ARP泛洪抑制示意图
如图1-7所示,ARP泛洪抑制的处理过程如下:
(1) 虚拟机VM 1发送ARP请求,获取VM 7的MAC地址。
(2) VTEP 1根据接收到的ARP请求,建立VM 1的ARP泛洪抑制表项,并在VXLAN内泛洪该ARP
请求(图1-7以单播路由泛洪方式为例)。
(3) 远端VTEP(VTEP 2和VTEP 3)解封装VXLAN报文,获取原始的ARP请求报文后,建立
VM 1的ARP泛洪抑制表项,并在本地站点的指定VXLAN内泛洪该ARP请求。 (4) VM 7接收到ARP请求后,回复ARP应答报文。
(5) VTEP 2接收到ARP应答后,建立VM 7的ARP泛洪抑制表项,并通过VXLAN隧道将ARP
应答发送给VTEP 1。
(6) VTEP 1解封装VXLAN报文,获取原始的ARP应答,并根据该应答建立VM 7的ARP泛洪
抑制表项,之后将ARP应答报文发送给VM 1。
(7) 在VTEP 1上建立ARP泛洪抑制表项后,虚拟机VM 4发送ARP请求,获取VM 1或VM 7
的MAC地址。
(8) VTEP 1接收到ARP请求后,建立VM 4的ARP泛洪抑制表项,并查找本地ARP泛洪抑制
表项,根据已有的表项回复ARP应答报文,不会对ARP请求进行泛洪。
(9) 在VTEP 3上建立ARP泛洪抑制表项后,虚拟机VM 10发送ARP请求,获取VM 1的MAC
地址。
(10) VTEP 3接收到ARP请求后,建立VM 10的ARP泛洪抑制表项,并查找本地ARP泛洪抑制
表项,根据已有的表项回复ARP应答报文,不会对ARP请求进行泛洪。
1-8
1.5 协议规范
与VXLAN相关的协议规范有: •
IETF草案:draft-mahalingam-dutt-dcops-vxlan-04
1-9
2 配置VXLAN
2.1 VXLAN配置任务简介
在VXLAN组网中,IP核心网络中的设备只需要配置路由协议,确保VTEP之间路由可达。VXLAN相关配置都在VTEP上进行。 表2-1 VXLAN配置任务简介
配置任务
创建VSI和VXLAN 配置VXLAN隧道
关联VXLAN与VXLAN隧道
配置AC与VSI关联以及与Track项联动 管理本地和远端MAC地址 配置VXLAN组播路由泛洪方式 配置VSI泛洪抑制
配置VXLAN报文的目的UDP端口号 配置VXLAN报文检查功能 配置ARP泛洪抑制
必选 必选 必选 必选 可选 可选 可选 可选 可选 可选
说明
详细配置2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11
2.2 创建VSI和VXLAN
表2-2 创建VSI和VXLAN
操作
进入系统视图 使能L2VPN功能
创建VSI,并进入VSI视图 (可选)设置VSI的描述信息 开启当前的VSI
(可选)配置VSI的MTU值 (可选)配置VSI的最大带宽 (可选)配置VSI的广播、组播或未知单播抑制百分比
命令
system-view l2vpn enable vsi vsi-name description text undo shutdown mtu mtu
bandwidth bandwidth restrain { broadcast | multicast |
unknown-unicast } ratio
-
缺省情况下,L2VPN功能处于关闭状态 缺省情况下,设备上不存在任何VSI 缺省情况下,未配置VSI的描述信息 缺省情况下,VSI处于开启状态 缺省情况下,VSI的MTU值为1500字节 缺省情况下,VSI的最大带宽值为102400kbps
缺省情况下,VSI的广播抑制百分比为5%,组播抑制百分比为100%,未知单播抑制百分比为100%
说明
2-1
操作
(可选)开启VSI的MAC地址学习功能
命令
mac-learning enable
说明
缺省情况下,VSI的MAC地址学习功能处于开启状态
缺省情况下,设备上不存在任何VXLAN
创建VXLAN,并进入VXLAN视图
vxlan vxlan-id
在一个VSI下只能创建一个VXLAN 不同VSI下创建的VXLAN,其VXLAN ID不能相同
2.3 配置VXLAN隧道
用户可以手工创建VXLAN隧道,也可以通过ENDP发现远端VTEP后自动创建VXLAN隧道。ENDP。 的详细介绍和配置方法,请参见“3 ENDP”
手工创建VXLAN隧道时,隧道的源端地址和目的端地址需要分别手工指定为本地和远端VTEP的接口地址。在同一台设备上,VXLAN隧道模式的不同Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。
关于隧道的详细介绍及Tunnel接口下的更多配置命令,请参见“三层技术-IP业务配置指导”中的“隧道”。关于interface tunnel、source和destination命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”。 表2-3 手工创建VXLAN隧道
操作
进入系统视图
创建模式为VXLAN隧道的
Tunnel接口,并进入Tunnel接口视图
命令
system-view
interface tunnel
tunnel-number mode vxlan
-
缺省情况下,设备上不存在任何Tunnel接口 在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败
缺省情况下,没有设置VXLAN隧道的源端地址和源接口
source { ipv4-address | interface-type
interface-number }
如果设置的是隧道的源端地址,则该地址将作为封装后VXLAN报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后VXLAN报文的源IP地址
采用VXLAN组播路由泛洪方式时,VXLAN隧道的源接口不能是Loopback接口、源端地址不能是Loopback接口的地址
缺省情况下,未指定隧道的目的端地址
配置隧道的目的端地址
destination ipv4-address
隧道的目的端地址是对端设备上接口的IP地址,该地址将作为封装后VXLAN报文的目的地址 缺省情况下,隧道的BFD检测功能处于关闭状态
说明
配置隧道的源端地址或源
接口
(可选)开启隧道的BFD检测功能
tunnel bfd enable
2-2
2.4 关联VXLAN与VXLAN隧道
一个VXLAN可以关联多条VXLAN隧道。一条VXLAN隧道可以关联多个VXLAN,这些VXLAN共用该VXLAN隧道,VTEP根据VXLAN报文中的VXLAN ID来识别隧道传递的报文所属的VXLAN。VTEP接收到某个VXLAN的泛洪流量后,如果采用单播路由泛洪方式,则VTEP将在与该VXLAN关联的所有VXLAN隧道上发送该流量,以便将流量转发给所有的远端VTEP。
用户可以手工关联VXLAN与VXLAN隧道,也可以通过VXLAN IS-IS自动关联VXLAN与VXLAN隧道。。 VXLAN IS-IS的详细介绍和配置方法,请参见“4 VXLAN IS-IS协议”表2-4 手工关联VXLAN与VXLAN隧道
操作 进入系统视图 进入VSI视图 进入VXLAN视图 配置VXLAN与VXLAN隧道关联
命令
system-view
-
说明
vsi vsi-name - vxlan vxlan-id -
缺省情况下,VXLAN没有与任何VXLAN隧道关联
tunnel tunnel-number
VTEP必须与相同VXLAN内的其它VTEP建立VXLAN隧道,并将该隧道与VXLAN关联
2.5 配置AC与VSI关联以及与Track项联动
将三层接口与VSI关联后,从该接口接收到的报文,将通过查找关联VSI的MAC地址表进行转发。 配置接口与Track项联动后,仅当关联的Track项中至少有一个状态为positive时,AC的状态才会up;否则,AC的状态为down。
表2-5 配置三层接口与VSI关联以及与Track项联动
操作
进入系统视图 进入三层接口视图 将三层接口与VSI关联以及与Track项联动
system-view
命令
-
说明
interface interface-type interface-number - xconnect vsi vsi-name [ track track-entry-number&<1-3> ]
缺省情况下,三层接口没有与VSI关联,也没有与Track项联动
2.6 管理本地和远端MAC地址
本地MAC地址只能动态学习,不能静态配置。在动态添加、删除本地MAC地址时,可以记录日志信息。
远端MAC地址表项可以静态添加,也可以根据接收到的VXLAN报文内封装的源MAC地址自动学习,或通过VXLAN IS-IS协议学习。通过VXLAN IS-IS协议学习的配置方法,请参见“4 VXLAN IS-IS协议”。
2-3
2.6.1 开启增删本地MAC地址时记录日志的功能
执行本配置后,VXLAN增加或删除本地MAC地址时,均将产生日志信息。生成的日志信息将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。
表2-6 开启增删本地MAC地址时记录日志的功能
操作
进入系统视图
开启VXLAN增删本地MAC地址时记录日志的功能
system-view
vxlan local-mac report
命令
-
缺省情况下,VXLAN增删本地MAC地址时不会记录日志
说明
2.6.2 添加静态远端MAC地址
表2-7 添加静态远端MAC地址
操作
进入系统视图
system-view
命令
-
缺省情况下,设备上不存在任何静态的远端MAC地址表项
添加静态远端MAC地址表项
mac-address static mac-address interface tunnel tunnel-number vsi vsi-name
interface tunnel interface-number参数指定的隧道接口必须与vsi vsi-name参数指定的VSI对应的VXLAN关联,且该VXLAN必须已经创建,否则配置将失败
说明
2.6.3 开启远端MAC地址自动学习功能
缺省情况下,设备可以自动学习远端MAC地址。如果网络中存在攻击,为了避免学习到错误的远端MAC地址,也可以手工关闭远端MAC地址自动学习功能。 表2-8 开启远端MAC地址自动学习功能
操作
进入系统视图
开启远端MAC地址自动学习功能
system-view
undo vxlan tunnel mac-learning disable
命令
-
缺省情况下,远端MAC地址自动学习功能处于开启状态
说明
2.7 配置VXLAN组播路由泛洪方式
配置VXLAN组播路由泛洪方式时,需要完成以下配置任务: •
在VTEP和核心设备上使能IP组播路由功能。
2-4
• 在核心设备上配置IGMP和组播路由协议。由于VTEP同时作为组播源和组播接收者,因此推荐使用双向PIM作为组播路由协议。
表2-9 配置VXLAN组播路由泛洪方式
操作
进入系统视图 进入VSI视图 进入VXLAN视图 进入组播报文源IP地址所在接口的接口视图
system-view
命令
-
说明
vsi vsi-name - vxlan vxlan-id - interface interface-type interface-number
-
缺省情况下,接口上IGMP协议的主机功能处于关闭状态
在接口上使能IGMP协议的主机功能
igmp host enable
执行本命令后,当前接口将作为IGMP主机,即从该接口收到IGMP查询报文后,通过该接口发送组播组的报告报文,以便接收该组播组的报文
只有通过multicast routing命令使能IP组播路由后,本命令才会生效
2.8 配置VSI泛洪抑制
缺省情况下,VTEP从本地站点内接收到目的MAC地址未知的单播数据帧后,会在该VXLAN内除接收接口外的所有本地接口和VXLAN隧道上泛洪该数据帧,将该数据帧发送给VXLAN内的所有站点。如果用户希望把该类数据帧限制在本地站点内,不通过VXLAN隧道将其转发到远端站点,则可以通过本命令手工禁止VXLAN对应VSI的泛洪功能。
禁止泛洪功能后,为了将某些MAC地址的数据帧泛洪到远端站点以保证某些业务的流量在站点间互通,可以配置选择性泛洪的MAC地址,当数据帧的目的MAC地址匹配该MAC地址时,该数据帧可以泛洪到远端站点。 表2-10 配置VSI泛洪抑制
操作
进入系统视图 进入VSI视图 关闭VSI的泛洪功能
命令
system-view
-
说明
vsi vsi-name - flooding disable selective-flooding mac-addres mac-address
缺省情况下,VSI泛洪功能处于开启状态
缺省情况下,设备上不存在任何VSI选择性泛洪MAC地址
(可选)配置VSI选择性泛洪的MAC地址
如果用户只希望某些目的MAC地址的报文可以泛洪到其它站点,可以先通过flooding disable命令关闭泛洪功能,再通过本命令配置选择性泛洪的MAC地址
2-5
2.9 配置VXLAN报文的目的UDP端口号
属于同一个VXLAN的VTEP设备上需要配置相同的UDP端口号。 表2-11 配置VXLAN报文的目的UDP端口号
操作
进入系统视图
配置VXLAN报文的目的UDP端口号
system-view
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报文。
表2-12 配置VXLAN报文检查功能
操作
进入系统视图
配置丢弃UDP校验和检查失败的VXLAN报文
配置丢弃内层数据帧含有VLAN tag的VXLAN报文
system-view
vxlan invalid-udp-checksum discard
命令
-
缺省情况下,不会检查VXLAN报文的UDP校验和
缺省情况下,不会检查VXLAN报文内层封装的以太网数据帧是否携带VLAN tag
说明
vxlan invalid-vlan-tag discard
2.11 配置ARP泛洪抑制
配置ARP泛洪抑制时需要注意:如果同时执行flooding disable命令关闭了VSI的泛洪功能,则建议通过mac-address timer命令配置动态MAC地址的老化时间大于25分钟(ARP泛洪抑制表项的老化时间),以免MAC地址在ARP泛洪抑制表项老化之前老化,产生黑洞MAC地址。 表2-13 配置ARP泛洪抑制
操作
进入系统视图
(可选)配置动态MAC地址表项的老化时间
system-view
mac-address timer { aging seconds | no-aging }
命令
-
缺省情况下,动态MAC地址表项的老化时间为300秒
说明
2-6
操作
进入VSI视图
开启ARP泛洪抑制功能 (可选)显示MAC地址表动态表项的老化时间
命令
说明
vsi vsi-name - arp suppression enable
缺省情况下,ARP泛洪抑制功能处于关闭状态
display命令可以在任意视图执行
display mac-address aging-time
2.12 配置VXLAN流量统计
表2-14 配置VXLAN流量统计
操作
进入系统视图
进入VXLAN所在VSI视图 开启VSI的报文统计功能 退回用户视图
(可选)清除VSI的报文统计信息
system-view
命令
-
说明
vsi vsi-name - statistics enable return
reset l2vpn statistics vsi [ name vsi-name ]
缺省情况下,VSI的报文统计功能处于关闭状态 - -
2.13 VXLAN显示和维护
在完成上述配置后,在任意视图下执行display命令可以显示配置后VXLAN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令来清除VXLAN的相关信息。 表2-15 VXLAN显示和维护
操作
显示VSI的ARP泛洪抑制表项信息(独立运行模式)
显示VSI的ARP泛洪抑制表项信息(IRF模式)
显示VSI的MAC地址表信息 显示VSI的信息
显示IGMP执行主机行为的所有组播组信息
显示Tunnel接口信息
显示VXLAN关联的VXLAN隧道信息
命令
display arp suppression vsi [ name vsi-name [ cpu cpu-number ] ] [ count ]
display arp suppression vsi [ name vsi-name ] [ slot slot-number [ cpu cpu-number ] ] [ count ]
display l2vpn mac-address [ vsi vsi-name ] [ dynamic ] [ count ]display l2vpn vsi [ name vsi-name ] [ verbose ] display igmp host group [ group-address | interface interface-type interface-number ] [ verbose ]
display interface [ tunnel [ number ] ] [ brief [ description | down ] ]
display vxlan tunnel [ vxlan-id vxlan-id ]
2-7
操作
清除VSI的ARP泛洪抑制表项 清除VSI动态学习的MAC地址表项 清除VSI的报文统计信息
命令
reset arp suppression vsi [ name vsi-name ] reset l2vpn mac-address [ vsi vsi-name ] reset l2vpn statistics vsi [ name vsi-name ]
display interface tunnel命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”。
2.14 VXLAN典型配置举例
1. 组网需求
Router A、Router B、Router 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-8
请按照图2-1配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。
(2) 配置Router A # 开启L2VPN能力。
# 创建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 # 在接入服务器的接口GigabitEthernet1/0/1上关联VSI实例vpna。 [RouterA] interface gigabitethernet 1/0/1 [RouterA-GigabitEthernet1/0/1] xconnect vsi vpna [RouterA-GigabitEthernet1/0/1] quit (3) 配置Router B # 开启L2VPN能力。 # 创建VSI实例vpna和VXLAN 10。 [RouterB] vsi vpna 2-9 [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 # 在接入服务器的接口GigabitEthernet1/0/1上关联VSI实例vpna。 [RouterB] interface gigabitethernet 1/0/1 [RouterB-GigabitEthernet1/0/1] xconnect vsi vpna [RouterB-GigabitEthernet1/0/1] quit (4) 配置Router C # 开启L2VPN能力。 # 创建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隧道。 2-10 [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 # 在接入服务器的接口GigabitEthernet1/0/1上关联VSI实例vpna。 [RouterC] interface gigabitethernet 1/0/1 [RouterC-GigabitEthernet1/0/1] xconnect vsi vpna [RouterC-GigabitEthernet1/0/1] quit 4. 验证配置 (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 Transmit Unit: 64000 Internet protocol processing: disabled Last clearing of counters: Never Tunnel source 1.1.1.1, destination 2.2.2.2 Tunnel protocol/transport UDP_VXLAN/IP Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Input: 0 packets, 0 bytes, 0 drops Output: 0 packets, 0 bytes, 0 drops # 查看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 : 102400 kbps Broadcast Restrain : 5% Multicast Restrain : 100% Unknown Unicast Restrain: 100% MAC Learning : Enabled MAC Table Limit : - Drop Unknown : Disabled 2-11 Flooding : Enabled VXLAN ID : 10 Tunnels: Tunnel Name Link ID State Type Tunnel1 0x5000001 Up Manual Tunnel2 0x5000002 Up Manual ACs: AC Link ID State GE1/0/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之间可以互访。 2-12 3 ENDP 3.1 ENDP简介 在VXLAN网络中,ENDP(Enhanced Neighbor Discovery Protocol,增强的邻居发现协议)用来自动发现VXLAN网络中的VTEP,并在各VTEP之间自动创建VXLAN隧道。 3.1.1 ENDP基本运行机制 ENDP可以划分为多个实例,ENDP实例通过Network ID来标识。只有属于同一个ENDP实例的VTEP之间可以互相发现。 ENDP协议定义了如下两个角色: • • ENDS(Enhanced Neighbor Discovery Server,增强的邻居发现服务器):用来维护同一个ENDP实例中的所有邻居信息(IP地址等)。 ENDC(Enhanced Neighbor Discovery Client,增强的邻居发现客户端):通过ENDS完成邻居的学习,并与邻居建立VXLAN隧道。 ENDP协议的基本工作原理为:ENDS通过接收ENDC的注册请求报文来学习ENDC的信息,同时通过注册应答报文向ENDC发布同一个ENDP实例中所有ENDC的信息。ENDC收到应答报文后,与同一个ENDP实例中的其他ENDC建立VXLAN隧道。 ENDS同时也会作为一个ENDC,与其他ENDC建立VXLAN隧道。 3.1.2 ENDP定时探测和老化 ENDP协议中用到了3个定时器:探测定时器、注册定时器、老化定时器。 • 探测定时器 ENDC请求加入VXLAN网络时会启用探测定时器,该定时器以5秒的时间间隔定时向ENDS发送注册报文,收到ENDS应答报文后会停止探测定时器。 • 注册定时器 ENDC加入VXLAN网络后,为了通告自己工作正常,会定时向ENDS发送注册报文,该定时器的默认时间间隔为15秒,用户可以根据实际需要来调整该时间间隔。 如果ENDC连续发送5个注册报文,都未能收到ENDS的应答报文,则认为网络故障,此时需要清除之前学到的邻居信息,同时重新启用探测定时器。 • 老化定时器 ENDC向ENDS发送的注册报文中携带注册时间间隔,ENDS会记录该时间间隔。ENDC加入VXLAN网络后,如果ENDS在5倍的注册时间内未收到ENDC的注册报文,则认为ENDC出现故障,把ENDC对应的VTEP从VXLAN网络中删除。 3.1.3 ENDP认证功能 为了提高安全性,可以配置ENDP认证功能来防止恶意的节点注册到VXLAN网络。 3-1 使能ENDP认证功能后,发送ENDP报文的设备会使用配置的密码和MD5算法对报文进行摘要运算,然后把运算结果放到报文的认证字段。对端设备收到ENDP报文后,如果该设备未配置认证功能,则认为报文合法;如果设备配置了认证功能,则利用本端配置的密码和MD5算法对报文进行摘要运算,然后比较运算结果与报文认证字段携带的信息是否一致,如果一致则认为报文合法,如果不一致则认为报文非法。 3.2 配置ENDP 配置ENDP时,需要在ENDS和ENDC上创建NVE模式的Tunnel接口,指定隧道的源端地址为本端VTEP的接口地址,并在该接口上使能ENDS或ENDC功能,以便在该接口上运行ENDP协议。 关于隧道的详细介绍及Tunnel接口下的更多配置命令,请参见“三层技术-IP业务配置指导”中的“隧道”。关于interface tunnel、source命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”。 1. 配置ENDS 表3-1 配置ENDS 操作 进入系统视图 创建模式为NVE隧道的Tunnel接口,并进入Tunnel接口视图 配置隧道的Network ID system-view interface tunnel tunnel-number mode nve network-id network-id 命令 - 缺省情况下,设备上不存在任何Tunnel接口 缺省情况下,没有配置隧道的Network ID缺省情况下,没有设置VXLAN隧道的源端地址和源接口 配置隧道的源端地址或源接口 source { ipv4-address | interface-type interface-number } NVE隧道的源端地址作为本地ENDC的地址注册到ENDS 如果设置的是隧道的源接口,则隧道的源端地址为该接口的主IP地址 缺省情况下,ENDS功能处于关闭状态 开启接口的ENDS功能 vxlan neighbor-discovery server enable 开启接口的ENDS功能时,会同时开启该接口的ENDC功能(该ENDC对应的ENDS地址为该接口的源地址) 缺省情况下,ENDP认证功能处于关闭状态 说明 (可选)开启ENDP认证功能 vxlan neighbor-discovery authentication { cipher | simple } password 2. 配置ENDC 表3-2 配置ENDC 操作 进入系统视图 创建模式为NVE隧道的Tunnel接口,并进入Tunnel接口视图 system-view interface tunnel tunnel-number mode nve 3-2 命令 - 缺省情况下,设备上不存在任何Tunnel接口 说明 操作 配置隧道的Network ID 命令 network-id network-id 说明 缺省情况下,没有配置隧道的Network ID缺省情况下,没有设置VXLAN隧道的源端地址和源接口 配置隧道的源端地址或源接口 source { ipv4-address | interface-type interface-number } NVE隧道的源端地址作为本地ENDC的地址注册到ENDS 如果设置的是隧道的源接口,则隧道的源端地址为该接口的主IP地址 开启接口的ENDC功能,并指定ENDS的地址 (可选)开启ENDP认证功能 vxlan neighbor-discovery client enable server-ip vxlan neighbor-discovery authentication { cipher | simple } password vxlan neighbor-discovery client register-interval time-value 缺省情况下,ENDC功能处于关闭状态 缺省情况下,ENDP认证功能处于关闭状态 缺省情况下,ENDC向ENDS注册的时间间隔为15秒 配置ENDC向ENDS注册的时间间隔 3.3 ENDP显示和维护 在完成上述配置后,在任意视图下执行display命令可以显示配置后ENDP的运行情况,通过查看显示信息验证配置的效果。 表3-3 ENDP显示和维护 操作 在ENDC上显示ENDC学到的邻居信息 命令 display vxlan neighbor-discovery client member [ interface tunnel interface-number | local local-ip | remote client-ip | server server-ip ] display vxlan neighbor-discovery client statistics interface tunnel interface-number display vxlan neighbor-discovery client summary display vxlan neighbor-discovery server member [ interface tunnel interface-number | local local-ip | remote client-ip ] display vxlan neighbor-discovery server statistics interface tunnel interface-number display vxlan neighbor-discovery server summary 在ENDC上显示ENDC的统计信息 在ENDC上显示ENDC的运行信息 在ENDS上显示ENDS学到的成员信息 在ENDS上显示ENDS的统计信息 在ENDS上显示ENDS的运行信息 3.4 ENDP典型配置举例 1. 组网需求 Router A、Router B、Router C为与服务器连接的VTEP设备。VM 1和VM 5属于VXLAN 10000、VLAN 2;VM 2和VM 6属于VXLAN 10001、VLAN 3;VM 3和VM 7属于VXLAN 10002、VLAN 3-3 4;VM 4和VM 8属于VXLAN 10003、VLAN 5。通过VXLAN实现不同站点间的二层互联,确保虚拟机在站点之间进行迁移时用户的访问流量不会中断。 具体需求为: • • • • • 不同VTEP之间自动建立VXLAN隧道。 通过VXLAN IS-IS发布VXLAN ID,以自动关联VXLAN和VXLAN隧道。 通过VXLAN IS-IS发布本地MAC地址信息。 发送和接收VXLAN IS-IS报文的VXLAN(预留VXLAN)为11111。 站点之间的泛洪流量采用头端复制的方式转发。 2. 组网图 图3-1 VXLAN邻居自动发现组网图 3. 配置步骤 (1) 配置IP地址和单播路由协议 请按照图3-1配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。 (2) 配置Router A # 开启L2VPN能力。 # 配置预留VXLAN为VXLAN 11111。 [RouterA] reserved vxlan 11111 # 创建VSI实例vpna和VXLAN 10000。 [RouterA] vsi vpna [RouterA-vsi-vpna] vxlan 10000 [RouterA-vsi-vpna-vxlan-10000] quit [RouterA-vsi-vpna] quit 3-4 # 创建VSI实例vpnb和VXLAN 10001。 [RouterA] vsi vpnb [RouterA-vsi-vpnb] vxlan 10001 [RouterA-vsi-vpnb-vxlan-10001] quit [RouterA-vsi-vpnb] quit # 创建VSI实例vpnc和VXLAN 10002。 [RouterA] vsi vpnc [RouterA-vsi-vpnc] vxlan 10002 [RouterA-vsi-vpnc-vxlan-10002] quit [RouterA-vsi-vpnc] quit # 创建VSI实例vpnd和VXLAN 10003。 [RouterA] vsi vpnd [RouterA-vsi-vpnd] vxlan 10003 [RouterA-vsi-vpnd-vxlan-10003] quit [RouterA-vsi-vpnd] quit # 配置接口Loopback0的IP地址,作为隧道的源端地址。 [RouterA] interface loopback 0 [RouterA-Loopback0] ip address 1.1.1.1 255.255.255.255 [RouterA-Loopback0] quit # 创建模式为NVE的隧道接口Tunnel0,指定源端地址为1.1.1.1,Network ID为1,并开启ENDS功能。 [RouterA] interface tunnel 0 mode nve [RouterA-Tunnel0] source 1.1.1.1 [RouterA-Tunnel0] network-id 1 [RouterA-Tunnel0] vxlan neighbor-discovery server enable [RouterA-Tunnel0] quit # 在接入服务器的接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.1,该子接口用来处理VLAN 2的数据帧,并将其与VSI实例vpna关联。 [RouterA] interface gigabitethernet 1/0/1.1 [RouterA-GigabitEthernet1/0/1.1] vlan-type dot1q vid 2 [RouterA-GigabitEthernet1/0/1.1] xconnect vsi vpna [RouterA-GigabitEthernet1/0/1.1] quit # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.2,该子接口用来处理VLAN 3的数据帧,并将其与VSI实例vpnb关联。 [RouterA] interface gigabitethernet 1/0/1.2 [RouterA-GigabitEthernet1/0/1.2] vlan-type dot1q vid 3 [RouterA-GigabitEthernet1/0/1.2] xconnect vsi vpnb [RouterA-GigabitEthernet1/0/1.2] quit # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.3,该子接口用来处理VLAN 4的数据帧,并将其与VSI实例vpnc关联。 [RouterA] interface gigabitethernet 1/0/1.3 [RouterA-GigabitEthernet1/0/1.3] vlan-type dot1q vid 4 [RouterA-GigabitEthernet1/0/1.3] xconnect vsi vpnc [RouterA-GigabitEthernet1/0/1.3] quit 3-5 # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.4,该子接口用来处理VLAN 5的数据帧,并将其与VSI实例vpnd关联。 [RouterA] interface gigabitethernet 1/0/1.4 [RouterA-GigabitEthernet1/0/1.4] vlan-type dot1q vid 5 [RouterA-GigabitEthernet1/0/1.4] xconnect vsi vpnd [RouterA-GigabitEthernet1/0/1.4] quit # 启动VXLAN IS-IS进程,开启VXLAN IS-IS的VXLAN隧道自动协商和MAC地址同步功能。 [RouterA] vxlan-isis [RouterA-vxlan-isis] negotiate-vni enable [RouterA-vxlan-isis] mac-synchronization enable [RouterA-vxlan-isis] quit (3) 配置Router B # 开启L2VPN能力。 # 配置预留VXLAN为VXLAN 11111。 [RouterB] reserved vxlan 11111 # 创建VSI实例vpna和VXLAN 10000。 [RouterB] vsi vpna [RouterB-vsi-vpna] vxlan 10000 [RouterB-vsi-vpna-vxlan-10000] quit [RouterB-vsi-vpna] quit # 创建VSI实例vpnb和VXLAN 10001。 [RouterB] vsi vpnb [RouterB-vsi-vpnb] vxlan 10001 [RouterB-vsi-vpnb-vxlan-10001] 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 # 创建模式为NVE的隧道接口Tunnel0,指定源端地址为2.2.2.2,Network ID为1,并开启ENDC功能,指定ENDS为1.1.1.1。 [RouterB] interface tunnel 0 mode nve [RouterB-Tunnel0] source 2.2.2.2 [RouterB-Tunnel0] network-id 1 [RouterB-Tunnel0] vxlan neighbor-discovery client enable 1.1.1.1 [RouterB-Tunnel0] quit # 在接入服务器的接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.1,该子接口用来处理VLAN 2的数据帧,并将其与VSI实例vpna关联。 [RouterB] interface gigabitethernet 1/0/1.1 [RouterB-GigabitEthernet1/0/1.1] vlan-type dot1q vid 2 [RouterB-GigabitEthernet1/0/1.1] xconnect vsi vpna [RouterB-GigabitEthernet1/0/1.1] quit 3-6 # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.2,该子接口用来处理VLAN 3的数据帧,并将其与VSI实例vpnb关联。 [RouterB] interface gigabitethernet 1/0/1.2 [RouterB-GigabitEthernet1/0/1.2] vlan-type dot1q vid 3 [RouterB-GigabitEthernet1/0/1.2] xconnect vsi vpnb [RouterB-GigabitEthernet1/0/1.2] quit # 启动VXLAN IS-IS进程,开启VXLAN IS-IS的VXLAN隧道自动协商和MAC地址同步功能。 [RouterB] vxlan-isis [RouterB-vxlan-isis] negotiate-vni enable [RouterB-vxlan-isis] mac-synchronization enable [RouterB-vxlan-isis] quit (4) 配置Router C # 开启L2VPN能力。 # 配置预留VXLAN为VXLAN 11111。 [RouterC] reserved vxlan 11111 # 创建VSI实例vpna和VXLAN 10002。 [RouterC] vsi vpna [RouterC-vsi-vpna] vxlan 10002 [RouterC-vsi-vpna-vxlan-10002] quit [RouterC-vsi-vpna] quit # 创建VSI实例vpnb和VXLAN 10003。 [RouterC] vsi vpnb [RouterC-vsi-vpnb] vxlan 10003 [RouterC-vsi-vpnb-vxlan-10003] quit [RouterC-vsi-vpnb] quit # 配置接口Loopback0的IP地址,作为隧道的源端地址。 [RouterC] interface loopback 0 [RouterC-Loopback0] ip address 3.3.3.3 255.255.255.255 [RouterC-Loopback0] quit # 创建模式为NVE的隧道接口Tunnel0,指定源端地址为3.3.3.3,Network ID为1,并开启ENDC功能,指定ENDS为1.1.1.1。 [RouterC] interface tunnel 0 mode nve [RouterC-Tunnel0] source 3.3.3.3 [RouterC-Tunnel0] network-id 1 [RouterC-Tunnel0] vxlan neighbor-discovery client enable 1.1.1.1 [RouterC-Tunnel0] quit # 在接入服务器的接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.1,该子接口用来处理VLAN 4的数据帧,并将其与VSI实例vpna关联。 [RouterC] interface gigabitethernet 1/0/1.1 [RouterC-GigabitEthernet1/0/1.1] vlan-type dot1q vid 4 [RouterC-GigabitEthernet1/0/1.1] xconnect vsi vpna [RouterC-GigabitEthernet1/0/1.1] quit 3-7 # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.2,该子接口用来处理VLAN 5的数据帧,并将其与VSI实例vpnb关联。 [RouterC] interface gigabitethernet 1/0/1.2 [RouterC-GigabitEthernet1/0/1.2] vlan-type dot1q vid 5 [RouterC-GigabitEthernet1/0/1.2] xconnect vsi vpnb [RouterC-GigabitEthernet1/0/1.2] quit # 启动VXLAN IS-IS进程,开启VXLAN IS-IS的VXLAN隧道自动协商和MAC地址同步功能。 [RouterC] vxlan-isis [RouterC-vxlan-isis] negotiate-vni enable [RouterC-vxlan-isis] mac-synchronization enable [RouterC-vxlan-isis] quit 4. 验证配置 (1) 验证VTEP设备(下文以Router A为例,其它设备验证方法与此类似) # 查看Router A上的ENDS信息,可以看到邻居个数和详细信息。 [RouterA] display vxlan neighbor-discovery server summary Interface Local Address Network ID Auth Members Tunnel0 1.1.1.1 1 disabled 3 [RouterA] display vxlan neighbor-discovery server member Interface: Tunnel0 Network ID: 1 IP Address: 1.1.1.1 Client Address System ID Expire Created Time 1.1.1.1 0001-0000-0000 72 2014/08/01 03:34:22 2.2.2.2 0002-0000-0000 66 2014/08/01 03:39:24 3.3.3.3 0003-0000-0000 72 2014/08/01 03:42:34 # 查看Router A上的ENDC信息,可以看到邻居状态为Up。 [RouterA] display vxlan neighbor-discovery client member Interface: Tunnel0 Network ID: 1 Local Address: 1.1.1.1 Server Address: 1.1.1.1 Neighbor System ID Created Time Expire Status 2.2.2.2 0002-0000-0000 2014/08/01 03:39:38 71 Up 3.3.3.3 0003-0000-0000 2014/08/01 03:42:38 71 Up # 查看Router A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。 [RouterA] display interface tunnel Tunnel 1 Current state: UP Line protocol state: UP Description: Tunnel1 Interface Bandwidth: 64kbps Maximum Transmit Unit: 64000 Internet protocol processing: disabled Last clearing of counters: Never Tunnel source 1.1.1.1 , destination 2.2.2.2 Tunnel protocol/transport UDP_VXLAN/IP Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec 3-8 Input: 0 packets, 0 bytes, 0 drops Output: 0 packets, 0 bytes, 0 drops Tunnel 2 Current state: UP Line protocol state: UP Description: Tunnel2 Interface Bandwidth: 64kbps Maximum Transmit Unit: 64000 Internet protocol processing: disabled Last clearing of counters: Never Tunnel source 1.1.1.1, destination 3.3.3.3 Tunnel protocol/transport UDP_VXLAN/IP Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Input: 0 packets, 0 bytes, 0 drops Output: 0 packets, 0 bytes, 0 drops # 查看Router A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道等信息。 [RouterA] 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 : - MAC Flood : Enabled Arp Restrain : Disabled VXLAN ID : 10000 Tunnels: Tunnel Name Link ID State Type Tunnel1 0x5000001 UP Auto ACs: AC Link ID State GE1/0/1.1 0 Up VSI Name: vpnb VSI Index : 1 VSI State : Up MTU : 1500 Bandwidth : - Broadcast Restrain : - Multicast Restrain : - Unknown Unicast Restrain: - 3-9 MAC Learning : Enabled MAC Table Limit : - Drop Unknown : - MAC Flood : Enabled Arp Restrain : Disabled VXLAN ID : 10001 Tunnels: Tunnel Name Link ID State Type Tunnel1 0x5000001 UP Auto ACs: AC Link ID State GigabitEthernet1/0/1.2 0 Up VSI Name: vpnc VSI Index : 2 VSI State : Up MTU : 1500 Bandwidth : - Broadcast Restrain : - Multicast Restrain : - Unknown Unicast Restrain: - MAC Learning : Enabled MAC Table Limit : - Drop Unknown : - MAC Flood : Enabled Arp Restrain : Disabled VXLAN ID : 10002 Tunnels: Tunnel Name Link ID State Type Tunnel2 0x5000002 UP Auto ACs: AC Link ID State GigabitEthernet1/0/1.3 0 Up VSI Name: vpnd VSI Index : 3 VSI State : Up MTU : 1500 Bandwidth : - Broadcast Restrain : - Multicast Restrain : - Unknown Unicast Restrain: - MAC Learning : Enabled MAC Table Limit : - Drop Unknown : - MAC Flood : Enabled Arp Restrain : Disabled VXLAN ID : 10003 Tunnels: Tunnel Name Link ID State Type 3-10 Tunnel2 0x5000002 UP Auto ACs: AC Link ID State GigabitEthernet1/0/1.4 0 Up # 查看Router A上VSI的MAC地址表项信息,可以看到已学习到的MAC地址信息。 [RouterA] display l2vpn mac-address MAC Address State VSI Name Link ID/Name Aging 0001-0000-001c Dynamic vpna 0 Aging 0002-0000-0009 Static vpna Tunnel1 NotAging 0001-0000-001c Dynamic vpnb 0 Aging 0002-0000-0009 Static vpnb Tunnel1 NotAging 0001-0000-001c Dynamic vpnc 0 Aging 0003-0000-0009 Dynamic vpnc Tunnel2 Aging --- 6 mac address(es) found --- # 查看Router A上邻居状态信息,可以看到已经和Router B、Router C建立邻居。 [RouterA] display vxlan isis peer System ID: 0002.0000.0000 Link interface: Tunnel1 Circuit ID: 0002.0000.0000.0001 State: Up Hold time: 8s Neighbour DED priority: 64 Uptime: 03:17:51 System ID: 0003.0000.0000 Link interface: Tunnel2 Circuit ID: 0003.0000.0000.0001 State: Up Hold time: 6s Neighbour DED priority: 64 Uptime: 03:13:25 # 查看Router A上链路状态信息,可以看到链路状态正常。 [RouterA] display vxlan isis lsdb Link state database information for VXLAN ISIS (Tunnel 1) LSP ID Seq num Checksum Holdtime Length Overload ----------------------------------------------------------------------------- 0001.0000.0000.0000-00* 0x00000003 0xba21 1043 67 0 0002.0000.0000.0000-00 0x00000004 0x1441 1122 59 0 0002.0000.0000.0001-00 0x00000001 0x1670 874 57 0 Link state database information for VXLAN ISIS (Tunnel 2) LSP ID Seq num Checksum Holdtime Length Overload ----------------------------------------------------------------------------- 0001.0000.0000.0000-00* 0x00000003 0xc614 1043 67 0 0003.0000.0000.0000-00 0x00000002 0x770b 1010 89 0 0003.0000.0000.0001-00 0x00000001 0x1d67 1010 57 0 Flags: *-Self LSP, +-Self LSP(Extended) 3-11 # 查看Router A上VXLAN IS-IS的MAC地址表项信息,可以看到已学习到的MAC地址信息。 [RouterA] display vxlan isis remote-mac MAC Flags: A-MAC has been received by an active tunnel interface C-MAC conflict with local dynamic MAC F-MAC has been flushed to the remote MAC address table VXLAN ID: 10002 MAC address: 0003-0000-0009 Interface: Tunnel2 Flags: AF VXLAN ID: 10003 MAC address: 0003-0000-0009 Interface: Tunnel2 Flags: AF # 查看Router A上VXLAN IS-IS的远端VXLAN信息,可以看到已学习到的VXLAN信息。 [RouterA] display vxlan isis remote-vxlan VXLAN Flags: S-VXLAN supported at the local end F-Association between VXLAN and Tunnels has been flushed to L2VPN VXLAN ID: 10000 Flags: FS Tunnel: 1 VXLAN ID: 10001 Flags: FS Tunnel: 1 VXLAN ID: 10002 Flags: FS Tunnel: 2 VXLAN ID: 10003 Flags: FS Tunnel: 2 (2) 验证主机 VM 1和VM 5、VM 2和VM 6、VM 3和VM 7、VM 4和VM 8可以互访,其他VM之间不能互访。 3-12 4 VXLAN IS-IS协议 VXLAN IS-IS协议主要有自动关联VXLAN隧道和VXLAN、VXLAN MAC地址同步两个功能。VXLAN IS-IS可以用来简化配置,并能更好地控制VXLAN数据业务的转发。 4.1 VXLAN IS-IS协议配置任务简介 表4-1 VXLAN IS-IS配置任务简介 配置任务 为VXLAN IS-IS指定预留VXLAN 自动关联VXLAN与VXLAN隧道 配置通过VXLAN IS-IS同步MAC地址 调整和优化VXLAN IS-IS 必选 必选 必选 可选 说明 详细配置4.2 4.3 4.4 4.5 4.2 为VXLAN IS-IS指定预留VXLAN 表4-2 为VXLAN IS-IS指定预留VXLAN 操作 进入系统视图 配置IS-IS协议使用的保留VXLAN 命令 system-view reserved vxlan vxlan-id - 缺省情况下,没有指定IS-IS协议使用的保留VXLAN 说明 4.3 自动关联VXLAN与VXLAN隧道 执行本配置后,VTEP将在所有VXLAN隧道上通过VXLAN IS-IS发布VXLAN ID信息,以便将VXLAN与VXLAN隧道关联。 表4-3 自动关联VXLAN与VXLAN隧道 操作 进入系统视图 创建VXLAN IS-IS进程,并进入VXLAN IS-IS视图 开启VXLAN IS-IS的VXLAN自动协商功能 system-view vxlan-isis negotiate-vni enable 命令 - 缺省情况下,未创建VXLAN IS-IS进程 缺省情况下,VXLAN IS-IS不会在VTEP之间交互VXLAN ID 说明 4-1 4.4 配置通过VXLAN IS-IS同步MAC地址 执行本配置后,VTEP可以通过VXLAN IS-IS协议发布本地的MAC地址信息,并能够接收其他VTEP发布的远端MAC地址信息。 表4-4 配置通过VXLAN IS-IS同步MAC地址 操作 进入系统视图 创建VXLAN IS-IS进程,并进入VXLAN IS-IS视图 开启VXLAN IS-IS的MAC地址同步功能 system-view vxlan-isis mac-synchronization enable 命令 - 缺省情况下,未创建VXLAN IS-IS进程缺省情况下,VXLAN IS-IS不会在VTEP之间同步MAC地址信息 说明 4.5 调整和优化VXLAN IS-IS VXLAN模式和NVE模式的Tunnel接口下均可以配置VXLAN IS-IS参数。 • • 在VXLAN模式Tunnel接口下配置VXLAN IS-IS参数后,该VXLAN隧道将根据配置的参数发送VXLAN IS-IS报文。 通过NVE模式Tunnel接口自动发现远端VTEP并建立VXLAN隧道后,自动建立的VXLAN隧道将采用NVE模式Tunnel接口下配置的VXLAN IS-IS参数。 4.5.1 配置VXLAN IS-IS Hello报文的发送 当前VTEP可以将邻接关系保持时间(即VXLAN IS-IS Hello报文失效数目与VXLAN IS-IS Hello报文发送时间间隔的乘积)通过VXLAN IS-IS Hello报文通知远端VTEP。如果远端VTEP在邻接关系保持时间内没有收到来自当前VTEP的VXLAN IS-IS Hello报文,将宣告邻接关系失效。通过设置VXLAN IS-IS Hello报文失效数目和VXLAN IS-IS Hello报文的发送时间间隔,可以调整邻接关系保持时间。 需要注意的是: • • 邻接关系保持时间最大不能超过65535秒,超过65535秒时,算作65535秒。 DED发送VXLAN IS-IS Hello报文的时间间隔是overlay isis timer hello命令设置的时间间隔的1/3。 表4-5 配置VXLAN IS-IS Hello报文的发送 操作 进入系统视图 进入模式为NVE或VXLAN隧道的Tunnel接口视图 配置VXLAN IS-IS Hello报文的发送时间间隔 system-view interface tunnel tunnel-number [ mode { nve | vxlan } ] overlay isis timer hello seconds 命令 - - 缺省情况下,VXLAN IS-IS Hello报文的发送时间间隔为10秒 说明 4-2 操作 配置VXLAN IS-IS Hello报文失效数目 命令 overlay isis timer holding-multiplier value 说明 缺省情况下,VXLAN IS-IS Hello报文失效数目为3 4.5.2 配置DED的优先级和CSNP报文发送时间间隔 每个VXLAN隧道两端的VTEP设备通过交互VXLAN IS-IS Hello报文选举出一个DED(Designated Edge Device,指定边缘设备)。选举出的DED周期性发布CSNP报文来进行LSDB同步。 DED优先级数值高的设备被选为DED;如果两台设备的DED优先级相同,则MAC地址较大的设备会被选中。 表4-6 配置DED的优先级和CSNP报文发送时间间隔 表4-7 操作 进入系统视图 进入模式为NVE或VXLAN隧道的Tunnel接口视图 配置Tunnel接口的DED优先级 system-view interface tunnel tunnel-number [ mode { nve | vxlan } ] overlay isis ded-priority value 命令 - - 缺省情况下,Tunnel接口的DED优先级为64 缺省情况下,DED发送CSNP报文的时间间隔为10秒 只有在被选举为DED的设备上进行本配置才有效 说明 配置DED发送CSNP报文的时间间隔 overlay isis timer csnp seconds 4.5.3 配置LSP相关参数 1. 配置LSP发送时间间隔 当LSDB的内容发生变化时,VXLAN IS-IS将把发生变化的LSP扩散出去。用户可以对LSP的最小发送时间间隔以及一次可以最多发送的LSP的数目进行调节。 表4-8 配置LSP发送时间间隔 操作 进入系统视图 进入模式为NVE或VXLAN隧道的Tunnel接口视图 配置接口发送LSP的最小时间间隔以及一次最多可以发送的LSP数目 命令 system-view interface tunnel tunnel-number [ mode { nve | vxlan } ] overlay isis timer lsp time [ count count ] - - 缺省情况下,发送LSP的最小时间间隔为100毫秒,一次最多可以发送的LSP数目为5 说明 4-3 2. 配置LSP最大生存时间 每个LSP都有一个最大生存时间,随着时间的推移LSP的生存时间将逐渐减小,当LSP的生存时间为0时,VXLAN IS-IS将清除该LSP。用户可根据网络的实际情况调整LSP的最大生存时间。 表4-9 配置LSP最大生存时间 操作 进入系统视图 进入VXLAN IS-IS视图 配置当前VTEP生成的LSP在LSDB里的最大生存时间 system-view vxlan-isis timer lsp-max-age seconds 命令 - - 缺省情况下,当前VTEP生成的LSP在LSDB里的最大生存时间为1200秒 说明 3. 配置LSP刷新周期 LSP刷新周期必须小于LSP最大生存时间,以保证在LSP失效前进行刷新。 表4-10 配置LSP刷新周期 操作 进入系统视图 进入VXLAN IS-IS视图 配置LSP刷新周期 system-view vxlan-isis timer lsp-refresh seconds 命令 - - 缺省情况下,LSP刷新周期为900秒 说明 4.5.4 配置邻接状态变化的输出开关 打开邻接状态变化的输出开关后,VXLAN IS-IS邻接状态变化时会生成日志信息发送到设备的信息中心,通过设置信息中心的参数,最终决定日志信息的输出规则(即是否允许输出以及输出方向)。有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。 表4-11 配置邻接状态变化的输出开关 操作 进入系统视图 进入VXLAN IS-IS视图 打开邻接状态变化的输出开关 system-view vxlan-isis log-peer-change enable 命令 - - 缺省情况下,邻接状态变化的输出开关 处于打开状态 说明 4.5.5 配置VXLAN IS-IS GR GR(Graceful Restart,平滑重启)是一种在协议重启或主备倒换时保证转发业务不中断的机制。需要协议重启或主备倒换的设备将重启状态通知给邻居,允许邻居重新建立邻接关系而不终止连接。 GR有两个角色: • GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。 4-4 • GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。 对于VXLAN IS-IS的GR,需要在VTEP间交互GR相关的VXLAN IS-IS报文:带有Restart TLV的Hello报文、CSNP报文和LSP报文。 使能VXLAN IS-IS的GR能力后,邻居间的邻接关系保持时间将取以下二者间的较大值:VXLAN IS-IS Hello报文失效数目与VXLAN IS-IS Hello报文发送时间间隔的乘积(如果是DED,该乘积还要除以3)、GR重启间隔时间。 分别在作为GR Restarter和GR Helper的设备上进行以下配置。 表4-12 配置VXLAN IS-IS GR 操作 进入系统视图 进入VXLAN IS-IS视图 使能VXLAN IS-IS的GR能力 配置VXLAN IS-IS协议的GR重启间隔时间 命令 system-view vxlan-isis graceful-restart graceful-restart interval interval-value - - 缺省情况下,VXLAN IS-IS的GR能力处于关闭状态 缺省情况下,VXLAN IS-IS协议的GR重启间隔时间为300秒 说明 4.5.6 配置VXLAN IS-IS虚拟系统 通过VXLAN IS-IS发布本地MAC地址信息时,一个LSP报文中携带了本地所有的MAC地址信息。如果LSP报文的长度超过1400字节,LSP报文需要分片后发送。这些LSP分片构成一个LSP分片集,每个LSP分片集最多有256个LSP分片,所能携带的最大MAC地址数为55×210。当本地MAC地址数超过55×210时,可以创建VXLAN IS-IS虚拟系统来扩展LSP的分片数量,以增加系统所能发布的MAC地址数量。 系统(包括原始系统和虚拟系统)通过系统ID来标识。原始系统的系统ID采用设备的桥MAC地址。每个系统所能发布的最大MAC地址数量均为55×210。如果创建了N个虚拟系统,则能发布的最大MAC地址数量为(N+1)×55×210。用户可以根据本地MAC地址表的规模,来决定创建的虚拟系统的个数。 创建虚拟系统时,用户需要保证所配置的虚拟系统的系统ID在网络中是唯一的。 表4-13 配置VXLAN IS-IS虚拟系统 操作 进入系统视图 进入VXLAN IS-IS视图 创建一个VXLAN IS-IS虚拟系统 命令 system-view vxlan-isis virtual-system system-id - - 缺省情况下,不存在任何VXLAN IS-IS虚 拟系统 说明 4-5 4.6 VXLAN IS-IS显示和维护 在完成上述配置后,在任意视图下执行display命令可以显示配置后VXLAN IS-IS的运行情况,通过查看显示信息验证配置的效果。 在用户视图下,用户可以执行reset命令来清除VXLAN IS-IS的相关信息。 表4-14 VXLAN IS-IS显示和维护 操作 显示VXLAN IS-IS进程的摘要信息 显示VXLAN IS-IS协议的GR状态 显示VXLAN IS-IS的本地MAC地址信息 显示VXLAN IS-IS的链路状态数据库 显示VXLAN IS-IS的邻居信息 显示通过VXLAN IS-IS学习到的远端MAC地址信息 显示通过VXLAN IS-IS学习到的远端VXLAN信息 显示Tunnel接口的VXLAN IS-IS信息 清除VXLAN IS-IS进程下所有的动态数据 display vxlan isis brief display vxlan isis graceful-restart status display vxlan isis local-mac dynamic [ [ vxlan vxlan-id ] [ count ] ]display vxlan isis lsdb [ local | lsp-id lsp-id | verbose ] * [ tunnel tunnel-number ] display vxlan isis peer display vxlan isis remote-mac [ [ vxlan vxlan-id ] [ count ] ] display vxlan isis remote-vxlan [ vxlan-id | count ] display vxlan isis tunnel [ tunnel-number ] reset vxlan isis 命令 4.7 VXLAN IS-IS典型配置举例 1. 组网需求 Router A、Router B、Router C为与服务器连接的VTEP设备。VM 1和VM 5属于VXLAN 10000、VLAN 2;VM 2和VM 6属于VXLAN 10001、VLAN 3;VM 3和VM 7属于VXLAN 10002、VLAN 4;VM 4和VM 8属于VXLAN 10003、VLAN 5。通过VXLAN实现不同站点间的二层互联,确保虚拟机在站点之间进行迁移时用户的访问流量不会中断。 具体需求为: • • • • • 不同VTEP之间手工建立VXLAN隧道。 通过VXLAN IS-IS发布VXLAN ID,以自动关联VXLAN和VXLAN隧道。 通过VXLAN IS-IS发布本地MAC地址信息。 发送和接收VXLAN IS-IS报文的VXLAN(预留VXLAN)为11111。 站点之间的泛洪流量采用头端复制的方式转发。 4-6 2. 组网图 图4-1 VXLAN动态协商、头端复制组网图 3. 配置步骤 (1) 配置IP地址和单播路由协议 请按照图4-1配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。 (2) 配置Router A # 开启L2VPN能力。 # 配置预留VXLAN为VXLAN 11111。 [RouterA] reserved vxlan 11111 # 创建VSI实例vpna和VXLAN 10000。 [RouterA] vsi vpna [RouterA-vsi-vpna] vxlan 10000 [RouterA-vsi-vpna-vxlan-10000] quit [RouterA-vsi-vpna] quit # 创建VSI实例vpnb和VXLAN 10001。 [RouterA] vsi vpnb [RouterA-vsi-vpnb] vxlan 10001 [RouterA-vsi-vpnb-vxlan-10001] quit [RouterA-vsi-vpnb] quit # 创建VSI实例vpnc和VXLAN 10002。 [RouterA] vsi vpnc [RouterA-vsi-vpnc] vxlan 10002 [RouterA-vsi-vpnc-vxlan-10002] quit 4-7 [RouterA-vsi-vpnc] quit # 创建VSI实例vpnd和VXLAN 10003。 [RouterA] vsi vpnd [RouterA-vsi-vpnd] vxlan 10003 [RouterA-vsi-vpnd-vxlan-10003] quit [RouterA-vsi-vpnd] 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 # 在Switch A和Switch 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 # 在接入服务器的接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.1,该子接口用来处理VLAN 2的数据帧,并将其与VSI实例vpna关联。 [RouterA] interface gigabitethernet 1/0/1.1 [RouterA-GigabitEthernet1/0/1.1] vlan-type dot1q vid 2 [RouterA-GigabitEthernet1/0/1.1] xconnect vsi vpna [RouterA-GigabitEthernet1/0/1.1] quit # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.2,该子接口用来处理VLAN 3的数据帧,并将其与VSI实例vpnb关联。 [RouterA] interface gigabitethernet 1/0/1.2 [RouterA-GigabitEthernet1/0/1.2] vlan-type dot1q vid 3 [RouterA-GigabitEthernet1/0/1.2] xconnect vsi vpnb [RouterA-GigabitEthernet1/0/1.2] quit # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.3,该子接口用来处理VLAN 4的数据帧,并将其与VSI实例vpnc关联。 [RouterA] interface gigabitethernet 1/0/1.3 [RouterA-GigabitEthernet1/0/1.3] vlan-type dot1q vid 4 [RouterA-GigabitEthernet1/0/1.3] xconnect vsi vpnc [RouterA-GigabitEthernet1/0/1.3] quit # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.4,该子接口用来处理VLAN 5的数据帧,并将其与VSI实例vpnd关联。 [RouterA] interface gigabitethernet 1/0/1.4 [RouterA-GigabitEthernet1/0/1.4] vlan-type dot1q vid 5 4-8 [RouterA-GigabitEthernet1/0/1.4] xconnect vsi vpnd [RouterA-GigabitEthernet1/0/1.4] quit # 启动VXLAN IS-IS进程,开启VXLAN IS-IS的VXLAN隧道自动协商和MAC地址同步功能。 [RouterA] vxlan-isis [RouterA-vxlan-isis] negotiate-vni enable [RouterA-vxlan-isis] mac-synchronization enable [RouterA-vxlan-isis] quit (3) 配置Router B # 开启L2VPN能力。 # 配置预留VXLAN为VXLAN 11111。 [RouterB] reserved vxlan 11111 # 创建VSI实例vpna和VXLAN 10000。 [RouterB] vsi vpna [RouterB-vsi-vpna] vxlan 10000 [RouterB-vsi-vpna-vxlan-10000] quit [RouterB-vsi-vpna] quit # 创建VSI实例vpnb和VXLAN 10001。 [RouterB] vsi vpnb [RouterB-vsi-vpnb] vxlan 10001 [RouterB-vsi-vpnb-vxlan-10001] 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 # 在Switch A和Switch B之间建立VXLAN隧道。 [RouterB] interface tunnel 1 mode vxlan [RouterB-Tunnel1] source 2.2.2.2 [RouterB-Tunnel1] destination 1.1.1.1 [RouterB-Tunnel1] 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 # 在接入服务器的接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.1,该子接口用来处理VLAN 2的数据帧,并将其与VSI实例vpna关联。 [RouterB] interface gigabitethernet 1/0/1.1 [RouterB-GigabitEthernet1/0/1.1] vlan-type dot1q vid 2 [RouterB-GigabitEthernet1/0/1.1] xconnect vsi vpna [RouterB-GigabitEthernet1/0/1.1] quit # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.2,该子接口用来处理VLAN 3的数据帧,并将其与VSI实例vpnb关联。 4-9 [RouterB] interface gigabitethernet 1/0/1.2 [RouterB-GigabitEthernet1/0/1.2] vlan-type dot1q vid 3 [RouterB-GigabitEthernet1/0/1.2] xconnect vsi vpnb [RouterB-GigabitEthernet1/0/1.2] quit # 启动VXLAN IS-IS进程,开启VXLAN IS-IS的VXLAN隧道自动协商和MAC地址同步功能。 [RouterB] vxlan-isis [RouterB-vxlan-isis] negotiate-vni enable [RouterB-vxlan-isis] mac-synchronization enable [RouterB-vxlan-isis] quit (4) 配置Router C # 开启L2VPN能力。 # 配置预留VXLAN为VXLAN 11111。 [RouterC] reserved vxlan 11111 # 创建VSI实例vpna和VXLAN 10002。 [RouterC] vsi vpna [RouterC-vsi-vpna] vxlan 10002 [RouterC-vsi-vpna-vxlan-10002] quit [RouterC-vsi-vpna] quit # 创建VSI实例vpnb和VXLAN 10003。 [RouterC] vsi vpnb [RouterC-vsi-vpnb] vxlan 10003 [RouterC-vsi-vpnb-vxlan-10003] quit [RouterC-vsi-vpnb] quit # 配置接口Loopback0的IP地址,作为隧道的源端地址。 [RouterC] interface loopback 0 [RouterC-Loopback0] ip address 3.3.3.3 255.255.255.255 [RouterC-Loopback0] quit # 在Switch A和Switch C之间建立VXLAN隧道。 [RouterC] interface tunnel 2 mode vxlan [RouterC-Tunnel1] source 3.3.3.3 [RouterC-Tunnel1] destination 1.1.1.1 [RouterC-Tunnel1] quit # 在Switch B和Switch C之间建立VXLAN隧道。 [RouterC] interface tunnel 3 mode vxlan [RouterC-Tunnel1] source 3.3.3.3 [RouterC-Tunnel1] destination 2.2.2.2 [RouterC-Tunnel1] quit # 在接入服务器的接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.1,该子接口用来处理VLAN 4的数据帧,并将其与VSI实例vpna关联。 [RouterC] interface gigabitethernet 1/0/1.1 [RouterC-GigabitEthernet1/0/1.1] vlan-type dot1q vid 4 [RouterC-GigabitEthernet1/0/1.1] xconnect vsi vpna [RouterC-GigabitEthernet1/0/1.1] quit 4-10 # 在接口GigabitEthernet1/0/1上创建子接口GigabitEthernet1/0/1.2,该子接口用来处理VLAN 5的数据帧,并将其与VSI实例vpnb关联。 [RouterC] interface gigabitethernet 1/0/1.2 [RouterC-GigabitEthernet1/0/1.2] vlan-type dot1q vid 5 [RouterC-GigabitEthernet1/0/1.2] xconnect vsi vpnb [RouterC-GigabitEthernet1/0/1.2] quit # 启动VXLAN IS-IS进程,开启VXLAN IS-IS的VXLAN隧道自动协商和MAC地址同步功能。 [RouterC] vxlan-isis [RouterC-vxlan-isis] negotiate-vni enable [RouterC-vxlan-isis] mac-synchronization enable [RouterC-vxlan-isis] quit 4. 验证配置 (1) 验证VTEP设备(下文以Router A为例,其它设备验证方法与此类似) # 查看Router A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。 [RouterA] display interface tunnel Tunnel1 Current state: UP Line protocol state: UP Description: Tunnel1 Interface Bandwidth: 64kbps Maximum Transmit Unit: 64000 Internet protocol processing: disabled Last clearing of counters: Never Tunnel source 1.1.1.1, destination 2.2.2.2 Tunnel protocol/transport UDP_VXLAN/IP Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Input: 0 packets, 0 bytes, 0 drops Output: 0 packets, 0 bytes, 0 drops Tunnel2 Current state: UP Line protocol state: UP Description: Tunnel2 Interface Bandwidth: 64kbps Maximum Transmit Unit: 64000 Internet protocol processing: disabled Last clearing of counters: Never Tunnel source 1.1.1.1, destination 3.3.3.3 Tunnel protocol/transport UDP_VXLAN/IP Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Input: 0 packets, 0 bytes, 0 drops Output: 0 packets, 0 bytes, 0 drops # 查看Router A上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道等信息。 4-11 [RouterA] 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 : - MAC Flood : Enabled Arp Restrain : Disabled VXLAN ID : 10000 Tunnels: Tunnel Name Link ID State Type Tunnel1 0x5000001 UP Auto ACs: AC Link ID State GE1/0/1.1 0 Up VSI Name: vpnb VSI Index : 1 VSI State : Up MTU : 1500 Bandwidth : - Broadcast Restrain : - Multicast Restrain : - Unknown Unicast Restrain: - MAC Learning : Enabled MAC Table Limit : - Drop Unknown : - MAC Flood : Enabled Arp Restrain : Disabled VXLAN ID : 10001 Tunnels: Tunnel Name Link ID State Type Tunnel1 0x5000001 UP Auto ACs: AC Link ID State GE1/0/1.2 0 Up VSI Name: vpnc VSI Index : 2 VSI State : Up MTU : 1500 Bandwidth : - Broadcast Restrain : - Multicast Restrain : - 4-12 Unknown Unicast Restrain: - MAC Learning : Enabled MAC Table Limit : - Drop Unknown : - MAC Flood : Enabled Arp Restrain : Disabled VXLAN ID : 10002 Tunnels: Tunnel Name Link ID State Type Tunnel2 0x5000002 UP Auto ACs: AC Link ID State GE1/0/1.3 0 Up VSI Name: vpnd VSI Index : 3 VSI State : Up MTU : 1500 Bandwidth : - Broadcast Restrain : - Multicast Restrain : - Unknown Unicast Restrain: - MAC Learning : Enabled MAC Table Limit : - Drop Unknown : - MAC Flood : Enabled Arp Restrain : Disabled VXLAN ID : 10003 Tunnels: Tunnel Name Link ID State Type Tunnel2 0x5000002 UP Auto ACs: AC Link ID State GE1/0/1.4 0 Up # 查看Router A上VSI的MAC地址表项信息,可以看到已学习到的MAC地址信息。 [RouterA] display l2vpn mac-address MAC Address State VSI Name Link ID/Name Aging 0001-0000-001c Dynamic vpna 0 Aging 0002-0000-0009 Static vpna Tunnel1 NotAging 0001-0000-001c Dynamic vpnb 0 Aging 0002-0000-0009 Static vpnb Tunnel1 NotAging 0001-0000-001c Dynamic vpnc 0 Aging 0003-0000-0009 Static vpnc Tunnel2 NotAging 0001-0000-001c Dynamic vpnd 0 Aging 0003-0000-0009 Static vpnd Tunnel2 NotAging --- 8 mac address(es) found --- # 查看Router A上邻居状态信息,可以看到已经和Router B、Router C建立邻居。 [RouterA] display vxlan isis peer System ID: 0002.0000.0000 4-13 Link interface: Tunnel1 Circuit ID: 0002.0000.0000.0001 State: Up Hold time: 6s Neighbour DED priority: 64 Uptime: 00:27:44 System ID: 0003.0000.0000 Link interface: Tunnel2 Circuit ID: 0003.0000.0000.0001 State: Up Hold time: 6s Neighbour DED priority: 64 Uptime: 00:20:33 # 查看Router A上链路状态信息,可以看到链路状态正常。 [RouterA] display vxlan isis lsdb Link state database information for VXLAN ISIS (Tunnel 1) LSP ID Seq num Checksum Holdtime Length Overload ----------------------------------------------------------------------------- 0001.0000.0000.0000-00* 0x00000006 0x9556 899 97 0 0002.0000.0000.0000-00 0x00000004 0xd3b8 983 89 0 0002.0000.0000.0001-00 0x00000002 0x1471 456 57 0 Link state database information for VXLAN ISIS (Tunnel 2) LSP ID Seq num Checksum Holdtime Length Overload ----------------------------------------------------------------------------- 0001.0000.0000.0000-00* 0x00000006 0x8462 886 97 0 0003.0000.0000.0000-00 0x00000004 0x730d 1066 89 0 0003.0000.0000.0001-00 0x00000002 0x1b68 809 57 0 Flags: *-Self LSP, +-Self LSP(Extended) # 查看Router A上VXLAN IS-IS的MAC地址表项信息,可以看到已学习到的MAC地址信息。 [RouterA] display vxlan isis remote-mac MAC Flags: A-MAC has been received by an active tunnel interface C-MAC conflict with local dynamic MAC F-MAC has been flushed to the remote MAC address table VXLAN ID: 10000 MAC address: 0002-0000-0009 Interface: Tunnel1 Flags: AF VXLAN ID: 10001 MAC address: 0002-0000-0009 Interface: Tunnel1 Flags: AF VXLAN ID: 10002 MAC address: 0003-0000-0009 Interface: Tunnel2 4-14 Flags: AF VXLAN ID: 10003 MAC address: 0003-0000-0009 Interface: Tunnel2 Flags: AF # 查看Router A上VXLAN IS-IS的远端VXLAN信息,可以看到已学习到的VXLAN信息。 [RouterA] display vxlan isis remote-vxlan VXLAN Flags: S-VXLAN supported at the local end F-Association between VXLAN and Tunnels has been flushed to L2VPN VXLAN ID: 10000 Flags: FS Tunnel: 1 VXLAN ID: 10001 Flags: FS Tunnel: 1 VXLAN ID: 10002 Flags: FS Tunnel: 2 VXLAN ID: 10003 Flags: FS Tunnel: 2 (2) 验证主机 VM 1和VM 5、VM 2和VM 6、VM 3和VM 7、VM 4和VM 8可以互访,其他VM之间不能互访。 4-15 5 VXLAN IP网关 5.1 VXLAN IP网关简介 VXLAN可以为分散的物理站点提供二层互联。要想为VXLAN站点内的虚拟机提供三层业务,则需要在网络中部署VXLAN IP网关,以便站点内的虚拟机通过VXLAN IP网关与外界网络进行三层通信。VXLAN IP网关既可以部署在独立的物理设备上,也可以部署在VTEP设备上。 5.1.1 独立的VXLAN IP网关 图5-1 独立的VXLAN IP网关示意图 如图5-1所示,VXLAN IP网关部署在独立的物理设备上时,VXLAN IP网关作为物理站点接入VTEP,VXLAN业务对于网关设备透明。虚拟机通过VXLAN IP网关与三层网络中的节点通信时,虚拟机将三层报文封装成二层数据帧发送给VXLAN IP网关。VTEP对该数据帧进行VXLAN封装,并在IP核心网络上将其转发给远端VTEP(连接VXLAN IP网关的VTEP)。远端VTEP对VXLAN报文进行解封装,并将原始的二层数据帧转发给VXLAN IP网关。VXLAN IP网关去掉链路层封装后,对报文进行三层转发。 5-1 5.1.2 VTEP同时作为VXLAN IP网关 图5-2 VTEP同时作为VXLAN IP网关示意图 如图5-2所示,VXLAN IP网关部署在VTEP设备上时,设备进行二层VXLAN业务终结的同时,还对内层封装的IP报文进行三层转发处理。与独立的VXLAN IP网关相比,该方式除了能够节省设备资源外,VXLAN IP网关功能由VXLAN对应的三层虚接口(VSI虚接口)承担,三层业务的部署和控制也更加灵活和方便。 5-2 图5-3 VXLAN IP网关ARP学习 如图5-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网络将其发送给虚拟机。 5.2 配置VTEP同时作为VXLAN IP网关 执行本配置时,需要完成以下配置任务: • • 在VTEP上创建VSI和VXLAN 配置VXLAN隧道,并将VXLAN与VXLAN隧道关联 5-3 表5-1 配置VTEP同时作为VXLAN IP网关 操作 进入系统视图 system-view 命令 - 缺省情况下,设备上不存在任何VSI虚接口 如果VSI虚接口已经存在,则直接进入该VSI虚接口视图 缺省情况下,未配置VSI虚接口的IP地址 缺省情况下,VSI虚接口的MAC地址为虚拟网卡的MAC地址 缺省情况下,接口的描述信息为“接口名 Interface”,例如:Vsi-interface100 Interface 缺省情况下,VSI虚接口的MTU值为1500 缺省情况下,接口的期望带宽=接口的最大速率÷1000(kbit/s) - 缺省情况下,接口处于开启状态 - 说明 创建VSI虚接口,并进入VSI虚接口视图 interface vsi-interface vsi-interface-id 配置VSI虚接口的IP地址 (可选)配置VSI虚接口的MAC地址 (可选)配置接口的描述信息 (可选)配置接口的MTU (可选)配置接口的期望带宽 (可选)恢复当前接口的缺省配置 (可选)开启当前接口 退回系统视图 进入VXLAN所在VSI视图 为VSI指定网关接口 ip address ip-address { mask | mask-length } mac-address mac-address description text mtu mtu-value bandwidth bandwidth-value default undo shutdown quit vsi vsi-name - gateway vsi-interface vsi-interface-id 缺省情况下,没有为VSI指定网关接口 5.3 VXLAN IP网关显示和维护 在完成上述配置后,在任意视图下执行display命令可以显示配置后VXLAN IP网关的运行情况,通过查看显示信息验证配置的效果。 在用户视图下,用户可以执行reset命令来清除VSI虚接口的统计信息。 表5-2 VXLAN IP网关显示和维护 操作 显示VSI虚接口信息 清除接口的统计信息 命令 display interface [ vsi-interface [ vsi-interface-id ] ] [ brief [ description | down ] ] reset counters interface [ vsi-interface [ vsi-interface-id ] ] 5-4 5.4 VXLAN IP网关典型配置举例 1. 组网需求 Router A、Router C为与服务器连接的VTEP设备,Router B同时作为VTEP设备、与广域网连接的VXLAN IP网关设备,Router E为广域网内的三层交换机。虚拟机VM 1、VM 2同属于VXLAN 10,通过VXLAN实现不同站点间的二层互联,并通过VXLAN IP网关与广域网三层互联。 具体需求为: • • • • 不同VTEP之间手工建立VXLAN隧道。 手工关联VXLAN和VXLAN隧道。 通过源MAC地址动态学习远端MAC地址表项。 站点之间的泛洪流量采用头端复制的方式转发。 2. 组网图 图5-4 VXLAN IP网关配置组网图 3. 配置步骤 (1) 配置IP地址和单播路由协议 # 请按照图5-4配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。 # Router B和Router E上配置OSPF协议,发布10.1.1.0/24和20.1.1.0/24网段的路由,具体配置过程略。 (2) 配置Router A # 开启L2VPN能力。 # 创建VSI实例vpna和VXLAN 10。 [RouterA] vsi vpna [RouterA-vsi-vpna] vxlan 10 5-5 [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 # 配置接入服务器的接口GigabitEthernet1/0/1与VSI实例vpna关联。 [RouterA] interface gigabitethernet 1/0/1 [RouterA-GigabitEthernet1/0/1] xconnect vsi vpna [RouterA-GigabitEthernet1/0/1] quit (3) 配置Router B # 开启L2VPN能力。 # 创建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 5-6 [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能力。 # 创建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关联。 5-7 [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 # 配置接入服务器的接口GigabitEthernet1/0/1与VSI实例vpna关联。 [RouterC] interface gigabitethernet 1/0/1 [RouterC-GigabitEthernet1/0/1] xconnect vsi vpna [RouterC-GigabitEthernet1/0/1] quit 4. 验证配置 (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 Transmit Unit: 64000 Internet protocol processing: disabled Last clearing of counters: Never Tunnel source 2.2.2.2, destination 1.1.1.1 Tunnel protocol/transport UDP_VXLAN/IP Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Input: 0 packets, 0 bytes, 0 drops Output: 0 packets, 0 bytes, 0 drops # 查看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 Transmit Unit: 1500 Internet Address is 10.1.1.1/24 Primary IP Packet Frame Type:PKTFMT_ETHNT_2, Hardware Address: 0011-2200-0102 IPv6 Packet Frame Type:PKTFMT_ETHNT_2, Hardware Address: 0011-2200-0102 Physical: Unknown, baudrate: 1000000 kbps Last clearing of counters: Never Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec Input: 0 packets, 0 bytes, 0 drops Output: 0 packets, 0 bytes, 0 drops # 查看Router B上的VSI信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的VSI虚接口等信息。 5-8 [RouterB] display l2vpn vsi verbose VSI Name: vpna VSI Index : 0 VSI State : Up MTU : 1500 Bandwidth : 102400 kbps Broadcast Restrain : 5% Multicast Restrain : 100% Unknown Unicast Restrain: 100% MAC Learning : Enabled MAC Table Limit : - Drop Unknown : Disabled Flooding : Enabled Gateway interface : VSI-interface 1 VXLAN ID : 10 Tunnels: Tunnel Name Link ID State Type Tunnel2 0x5000002 Up Manual Tunnel3 0x5000003 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 VLAN Interface Aging Type 20.1.1.5 000c-29c1-5e46 N/A GE1/0/1 19 D 10.1.1.11 0000-1234-0001 N/A Vsi10 20 D 10.1.1.12 0000-1234-0002 N/A Vsi10 19 D # 查看Router B上FIB表项信息,可以看到已学习到了虚拟机的转发表项信息。 [RouterB] 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 Vsi100 Null (2) 验证主机和广域网互访 虚拟机VM 1、VM 2之间可以互访,VM 1、VM 2和Router E上接口GigabitEthernet1/0/1的地址20.1.1.5之间可以互访。 5-9 因篇幅问题不能全部显示,请点此查看更多更全内容