基于VXLAN的EVPN技术研究与实现

2017-06-05 14:15钟耿辉唐加山
计算机技术与发展 2017年5期
关键词:网关报文路由

钟耿辉,唐加山

(1.南京邮电大学 通信与信息工程学院,江苏 南京 210003;2.南京邮电大学 理学院,江苏 南京 210003)

基于VXLAN的EVPN技术研究与实现

钟耿辉1,唐加山2

(1.南京邮电大学 通信与信息工程学院,江苏 南京 210003;2.南京邮电大学 理学院,江苏 南京 210003)

VXLAN作为overlay网络技术的代表,为解决云数据中心的组网问题提供了有效的技术支持,使网络更具可扩展性。但传统VXLAN技术是基于数据平面的,存在诸多局限性。早在EVPN之前,运营商网络PE设备间的MAC或ARP学习是基于传统网桥功能的,以泛洪学习模式运行。在这种模式下,终端虚机信息学习和VTEP的自动发现均基于数据平面,缺少控制平面来发布终端虚机的可达信息。为此,将VXLAN作为数据平面,基于VXLAN封装的MP-BGP EVPN作为控制平面,改变了这种泛洪学习模式,提供了远端VTEP下终端虚机基于控制平面的学习模式,并设计实现了在VXLAN overlay网络中二层和三层转发的控制平面方案。该方案将MAC/IP路由作为控制平面消息,利用该路由携带的信息进行终端虚拟机信息的学习,并实现了虚拟机之间的互通,取代了泛洪学习模式,有效减少了网络流量。

EVPN;VXLAN;数据平面;控制平面

0 引 言

VXLAN(Virtual eXtensible LAN)[1-2]是一种实现网络虚拟化[3-4]的overlay技术,主要应用于数据中心组网,通过隧道封装在一个共享的三层underlay网络上实现二层扩展。由于在overlay网络中,只有IP核心网络的边缘设备需要进行VXLAN处理,网络中间设备只需根据IP头转发报文,即只需要VTEP(VXLAN Tunnel End Point)[5]设备对VXLAN报文进行封装和解封装操作,接入交换机只需要学习VTEP设备的MAC或ARP信息。因此可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。然而VXLAN作为数据平面技术[6],存在的局限性也很明显。Overlay的BUM(广播、未知单播、组播)流量需要封装到广播VXLAN报文中,在underlay网络中广播转发到远端VTEP。这样会带来一些问题:Underlay网络需要使能广播,而有些租户不愿意在数据中心内使能广播;对BUM报文采用泛洪的方式导致网络扩展性有限;且现在的数据中心组网对网络提出了更多的新需求,如负载均衡、故障快速收敛等,都不能很好支持。

通过对传统网络下VXLAN技术缺陷的分析,引出MP-BGP EVPN控制平面出现的必要性,给出了具体研究控制平面的方案,并实现了控制平面方案下虚机之间的互通。

1 传统网络下的VXLAN技术

1.1 MAC/ARP学习的缺陷

首先,交换机上需要学习MAC/ARP来指导转发。VXLAN技术可以在一定程度上抑制BUM流量。为了避免ARP报文泛洪占用核心网络带宽,可以在本地学习并维护一个ARP泛洪抑制表项。以后当该VTEP收到本站点内虚拟机请求其他虚拟机MAC地址的ARP请求时,优先根据ARP泛洪抑制表项进行代答,从而避免二次网络泛洪。ARP泛洪抑制功能在一定程度上减少了ARP泛洪的次数,但在学习MAC/ARP时仍然需要泛洪。在虚拟机规模快速增长的云数据中心网络,这种泛洪学习模式会给数据中心网络带来巨大的压力,并不能很好地支持大规模数据中心组网。

1.2 对端自动发现及功能性限制

在数据中心组网中,一台PE(Provider Edge router)设备可能需要发现对端的PE设备以相互形成VTEP(VXALN Tunnel End-Point)对端。在传统的VPLS(Virtual Private LAN Service,虚拟专用局域网业务)[7-8]实现中,尽管有依赖于数据平面的泛洪来进行VTEP远端自动发现功能,但在大规模数据中心组网中,租户更加希望能够通过其他特殊的方式来实现VTEP对端自动发现。而且还有一些功能如负载均衡、快速收敛、水平分割、部署简易性等都不能很好地满足要求。

2 MP-BGPEVPN控制平面设计

2.1 EVPN控制平面概述

在大规模数据中心组网下,为了改善传统网络下一系列缺陷,需要一种全新的技术来满足现在云计算虚拟化的网络需求。EVPN的出现能够很好地改善上述问题。把MP-BGP EVPN(多协议边界网关协议以太网虚拟专用网)作为VXLAN的控制平面,实现了网络控制平面与数据平面的分离。EVPN定义了一种新的BGP NLRI,称为EVPN NLRI,并定义了4种路由类型:Ethernet Auto-Discovery (A-D)路由、MAC/IP Advertisement路由、Inclusive Multicast Ethernet Tag路由、Ethernet Segment路由[9],还有将IP Prefix路由[10]也应用到EVPN。通过这五种可达路由信息的发布、撤销和接收处理来实现控制平面。其中,第一种路由包含A-D per ES路由和A-D per EVI路由。通过该路由的通告可以发现同一个或多个VPN实例中具有相同ESI的PE成员,这是EVPN中非常重要的功能,用于实现多归属接入的负载分担、水平分割、快速收敛及减少MAC地址路由通告数目等各种应用场景[11]。当PE设备学习到本地虚机的MAC或ARP信息时,就可以通告第二种路由类型。PE可以同时通告MAC路由和MAC/IP路由,因此可以分开管理MAC表和ARP表。如果PE收到ESI为有效的MAC/IP路由时,且该PE也连接到此ESI,此时PE不更改转发状态,因为这种情况属于多归属组网,收到该MAC/IP路由的PE实际与该MAC是直连的,以此保证本地路由较远端路由优先。第三种路由类型用来发现数据中心[12-13]内的对端PE,并在PE成员之间自动建立Tunnel,形成VTEP对端。第四种路由类型用来发现连接到同一ES的PE成员,此路由只会被那些连接了同一ES的PE接收,其他PE不接收,可用于DF选举。第五种路由类型可用来在PE还未学到本地虚机的ARP信息时发布一个网段路由到远端PE,远端PE收到该路由可以下发网段FIB表和ARP表,以此指导转发。MP-BGP EVPN控制平面在解决传统VXLAN网络局限性的同时还带来了其他益处:

(1)MP-BGP EVPN基于行业标准,允许多家设备供应商之间设备的互通。

(2)允许通过控制平面来学习二层和三层可达信息,可以构建更具鲁棒性和扩展性的VXLAN overlay网络[14]。

(3)MP-BGP VPN技术已经经过实践考验,用来支持多租户的VXLAN overlay网络使其具有很好的可靠性。

(4)EVPN协议族同时携带二层和三层可达路由信息,为VXLAN overlay网络提供了集成路由选择和桥接方案。

(5)在本地VTEP上,通过基于协议虚拟机MAC/ IP路由的发布和配置ARP代答来最小化网络泛洪。

(6)为各种流量提供最佳转发路径。

(7)提供了一种机制来建立二层的多归属。

2.2 EVPN控制平面下MAC和ARP学习的设计

MP-BGP EVPN设计用来发布NLRI(网络可达消息)到网络。EVPN NLRI独一无二的一个特征是同时包含终端虚机二层和三层的可达消息。可以同时发布EVPN VXALN overlay网络的MAC和IP地址。这是支持VXALN IRB(集成路由选择和桥接)的基础。

VXLAN是一个二层的扩展技术,因此二层MAC地址需要被发布。在overlay网络中,相同VNI中的终端虚机之间的流量需要被转发,这就意味着在给定的VNI中,VTEP设备需要学习到其他终端虚机的MAC地址。通过BGP EVPN控制平面来发布MAC地址可以有效减少或者说限制BUM报文在VXLAN中的泛洪。本地VTEP收到路由可达消息时可以学到远端虚机的MAC地址。

三层的虚机IP地址也通过MP-BGP EVPN来通告,远端PE通过接收该路由来学习虚机的ARP信息,这样VXLAN流量就可以通过最佳路径被转发到目的终端虚机。当远端VTEP还没有通过MP-BGP学习到本地虚机IP路由时,本地VTEP可以通告IP Prefix路由到VXLAN网络中,通过学习到的网段路由转发流量到目的终端虚机。EVPN NLRI由BGP携带。其中,RD用来保证同一个路由中不同VRF实例的唯一性,RT用来决定不同VRF实例中路由的通告和引入。而且,为了进一步简化配置,RD和RT可以通过简单配置来自动生成。MP-BGP EVPN虚机NLRI学习和通告的基本过程如图1所示。

(1)本地虚机学习。

VTEP-1学习本地下挂的虚机的MAC地址和IP地址,MAC使用标准的以太网MAC地址学习方式,IP通过虚机发送的GARP、RARP或者虚机对网关的ARP请求来学习。VTEP-1学习到本地的MAC和ARP信息,可以下发ARP表、MAC表。也可以通过配置“mac-learning disable”来禁止本地MAC的下发,进一步减小MAC表规模,在大规模数据中心组网下本地虚机数量很大时效果明显。本地下发的MAC表、ARP表上报给L2VPN,再通告给BGP,在EVPN MAC和EVPN ARP表中维护数据。

(2)EVPN路由公告。

学习到本地虚机的MAC和IP地址后,VTEP-1通过MP-BGP EVPN控制平面将虚机的信息通过MAC/IP路由通告给其他VTEP,该路由可以携带下一跳、RD、ESI、ETAG、MAC、IP、VXLAN、L3VNI、R-MAC和RT属性。将NLRI发送给BGP,BGP根据建立的BGP会话将此路由通告到所有BGP对端。其中,每个VTEP有一个唯一的系统MAC地址,这个MAC地址又称为R-MAC地址,用作VXLAN报文的内部MAC地址。在网络中每个租户的VRF实例映射到一个唯一的L3VNI(Layer-3 VNI)。所有的VXLAN流量使用这个L3VNI封装在VXLAN头并提供接收VTEP的VRF信息。接收的VTEP使用这个VNI来决定这个VRF信息要往哪里转发,同时这个VNI提供数据平面的强制三层分离。

(3)远端虚机学习。

MP-BGP EVPN用一个EVPN路由中BGP扩展团体属性来传递export RT。当一个EVPN VTEP接收一个EVPN路由时,会用本地配置的import RT和接收路由的export RT相匹配决定是引入还是丢弃该路由。同时,通过配置“vxlan tunnel arp-learning disable”和“vxlan tunnel mac-learning disable”来避免通过数据平面学习MAC和ARP信息,只允许控制平面的MAC和ARP学习。

(4)表项下发。

VTEP-2和VTEP-3收到MAC/IP路由,三层RT匹配引入该路由,就可以学到VTEP-1下虚机的信息,在BGP进程中的ARP和MAC模块维护远端虚机的EVPN ARP和EVPN MAC表项。再下发ARP、代答ARP和MAC等表项,需要下发的表项根据配置而定。

3 EVPN控制平面下的VXLAN overlay网络的研究、设计与实现

3.1 IRB(集成路由选择和桥接)方式的支持性分析

以上阐述了MP-BGP EVPN控制平面下的概要设计,接下来进一步研究该控制平面下数据中心组网的具体实现。VXLAN overlay网络中的终端虚机通过同时通告二层和三层可达消息,MP-BGP EVPN控制平面可以提供IRB方案。每台VTEP通过数据平面本地学习下挂虚机的MAC和IP地址,然后通过MP-BGP EVPN控制平面来通告这些信息。远端VTEP通过控制平面来学习远端信息。这种方法有效限制网络泛洪并为终端虚机之间的信息发布提供更好的控制能力。

3.2 IRB方案的设计与研究

IETF EVPN草案定义了两种IRB方式:对称IRB和非对称IRB。重点研究实现对称IRB方式,这种方式具有更好的可扩展性。

通过MP-BGP EVPN控制平面可实现数据中心多种组网,采用集中式网关方式时,不同VXLAN之间的流量以及VXLAN访问外界网络的流量全部由集中式EVPN网关处理,网关压力较大,并加剧了网络带宽资源的消耗。因此重点研究分布式网关组网,同时在网关上配置ARP代理功能。因此,分布式网关组网下,每台VTEP设备都可作为EVPN网关,很好地缓解了网关的压力。所谓ARP代理,是指虚机为请求远端虚机的MAC地址发送一个ARP请求报文时,若网关发现ARP请求报文的IP地址和网关IP地址在同一网段,即使网关未学到远端虚机准确的ARP信息,也给本地虚机返回一个ARP应答消息,MAC地址为网关的MAC地址。然后网关再去请求虚机的ARP信息并学习。此时若本地虚机向远端虚机发送报文,网关发现目的MAC是自己,则网关处理报文后走三层转发。

如图2所示,当一个报文从VM 1发送到VM 2时,数据平面利用VXLAN封装报文,把内部的源、目的MAC地址分别改成本地VTEP和远端egress VTEP的R-MAC地址。内部的源、目的IP分别为本地和远端终端虚机的IP地址。然后把L3VNI或VXLAN值写进VXLAN头做封装。外部源目的IP地址分别为本地和远端的VTEP地址,外部源、目的MAC地址分别为本地和远端VTEP直连口MAC地址。这样VXLAN报文就封装好了,该报文的出接口为Tunnel口。egress VTEP接收到这个VXLAN封装报文后,首先去掉VXLAN头来解封装,然后可以看到内部的报文头,因为内部目的MAC地址就是自己的R-MAC地址,接着将内层报文在L3VNI所对应的VRF中做三层转发。

3.3 IRB方案的实现

图2完成了一个基本的分布式网关组网,并在网关上配置代理功能。简单的实现只需要两台分布式网关VTEP1和VTEP2做leaf,两台虚拟机VM 1和VM 2以及一台spine用作RR(Route Reflection),spine只用于反射路由,因此对于VTEP-1和VTEP-2可以看作是直连的。

3.3.1 VTEP-1配置

(1)配置EVPN租户的VRF实例,首先创建一个VRF实例,定义VRF route distinguisher,并在address-family ipv4和address-family evpn下定义VRF router target引入和输出策略。

(2)对每个租户VRF实例绑定一个Layer-3 VNI。

(3)创建一个VSIIF网关虚接口,关联VSI虚接口到用户VRF实例,同时配置每台VTEP的虚拟MAC地址和每个VNI的网关IP地址。研究分布式网关下ARP代理组网,需具有ARP代理和分布式网关功能。

(4)创建一个EVI实例,并关联VSI虚接口,同时设置VXLAN-ID,并定义VXLAN封装报文下EVI实例的route distinguisher和route target。另外,由于设计不下发本地虚机的MAC地址,需要配置去使能学习本地虚机MAC。

(5)配置MP-BGP邻居,创建BGP l2VPN EVPN地址族,使能EVPN,并使能BGP对端邻居,通常邻居是对端VTEP环回口地址。

(6)VTEP-2的配置类似VTEP-1,而且要求两个EVPN网关配置相同的网关虚拟MAC地址,一个VNI中配置相同的网关IP地址,作为默认的IP网关。

3.3.2 MAC/ARP学习以及报文转发测试

(1)VM1发送一个GARP、RARP或ARP请求报文,VTEP-1通过数据平面学习到VM1的MAC和IP地址,下发ARP表项给驱动。因为设计分布式网关配置代理时,同网段也走三层转发,所以本地的MAC表项其实不用下发来指导转发,设计通过配置“mac-learning disable”命令来禁止本地MAC的下发,在大规模组网下减轻了MAC表项规模的限制。本地ARP表项上报给BGP进程,BGP进程维护本地EVPN ARP表项信息,其中ARP信息如下所示:

viewarp

IP-address MAC-address VID Interface/Link ID Aging Type

11.22.33.45 0012-0034-0056 0 0x0 10 Dynamic

(2)VTEP-1学习到VM1的ARP信息后,通过MP-BGP EVPN控制平面将MAC/IP路由通告给所有BGP对端,通告的MAC/IP路由携带Nexthop、RD、IP-address、MAC-address、ESI、Label1(VXLAN-ID)、Label2(Layer-3 VNI)、R-MAC、RT等信息。

(3)VTEP-2接收到MAC/IP路由,下一跳是VTEP-1地址。

(4)VTEP-2收到MAC/IP路由后,通过RIB模块维护相关路由信息,并下发路由表,下一跳是VTEP-1地址。ARP模块维护相关的远端ARP数据信息,并下发下一跳ARP表项。如下所示:

view routing-table vpn-instance 1

Destination/Mask Proto Pre Cost Next Hop Interface

11.22.33.45/32 BGP 255 0 1.1.1.1 Vsi0

view arp

IP-address MAC-address VID Interface/Link ID Aging Type

1.1.1.1 7e1e-b58a-0100 1 Tunnel0 N/A Rule

(5)VTEP-2将ARP请求在VSI中广播,VM2会收到广播报文,这样VM2就可以学到网关和远端VM1的ARP信息并下发ARP表项,其中MAC地址为网关MAC地址。VM1返回一个ARP应答报文,通过ARP应答报文,相同的原理VTEP-2上下发VM2的ARP表,VTEP-1上可以下发路由表和下一跳ARP表。这样一个基于MP-BGP EVPN控制平面的分布式组网就可以按照最佳转发路径发送报文了。

(6)接下来做进一步的验证,从VM1上发送一条ping报文给VM2,在VM1上可见流量转发正常,同时观察VTEP-1上流量转发流程正常,该方案切实可行。测试结果如图3和图4所示。

图3 VM1 ping报文信息图

图4 VTEP-1 ping报文转发信息图

(7)在VTEP1和VTEP2之间通过抓包软件可以看到VXLAN封装的报文。正如上述设计所描述的,VTEP1内部的源、目的MAC地址分别为自己VTEP1的R-MAC地址和远端VTEP2的R-MAC地址,内部的源、目的IP分别为本地虚拟机VM1和远端虚拟机VM2的IP地址。再把L3VNI写进VXLAN头做封装,本次实验L3VNI值为7。外部源、目的IP地址分别为本地和远端的VTEP地址,外部源、目的MAC地址分别为本地和远端VTEP直连口MAC地址,见图5。

4 结束语

大规模数据中心组网依赖于网络虚拟化技术,而VXLAN的出现解决了传统网络暴露的很多问题,在网络虚拟化技术中应用广泛。将VXLAN结合EVPN控制平面,进一步优化大规模数据中心网络,通过控制平面实现MAC和ARP的学习,抑制网络泛洪。而且分析控制平面实现传统VXLAN数据中心网络无法实现的功能。但是云计算还在不断发展,对大规模数据中心网络要求还会越来越高,这些技术依然需要不断进行完善和深入研究。

图5 VXLAN封装下报文抓包信息图

[1] 缪仕福.VXLAN网络技术研究[J].科技资讯,2015(4):15-16.

[2] 刘付桂兰.虚拟局域网新技术VXLAN研究[J].福建电脑,2014,30(11):88-89.

[3] 姚 青.网络虚拟化的关键技术研究[D].南京:南京邮电大学,2013.

[4] 赵慧玲,解云鹏,史 凡.网络虚拟化及网络功能虚拟化技术探讨[J].中兴通讯技术,2014,20(3):8-11.

[5] 孙铭浩.VXLAN隧道的设计与实现[D].哈尔滨:哈尔滨工业大学,2014.

[6] 张届新,傅志仁,吴志明,等.VXLAN在云数据中心组网的应用[J].电信科学,2015,31(9):163-169.

[7] 邓翠华,冯玉珉.基于MPLS的VPLS技术分析[J].山西电子技术,2006(6):27-29.

[8] 李 山,白 桦.构建基于VPLS城域网精品方案[J].现代电信科技,2008,38(3):54-58.

[9] Uttaro J,Drake J,Henderickx W.BGP MPLS-Based Ethernet VPN[EB/OL].(2015-10-14)[2016-04-27].https://datatracker.ietf.org/doc/rfc7432/.

[10] Rabadan J,Henderickx W,Palislamovic S,et al.IP prefix advertisement in EVPN[EB/OL].(2015-09-14).[2016-04-27].https://datatracker.ietf.org/doc/draft-ietf-bess-evpn-prefix-advertisement/.

[11] 何晓明,唐 宏,刘志华,等.以太网VPN技术在云数据中心互联应用的研究[J].电信科学,2012,28(8):138-144.

[12] 朱明明,夏寅贲,徐小飞.基于SDN的数据中心网络研究[J].邮电设计技术,2014(3):23-29.

[13] 宋文文,李 莉.云数据中心大二层网络技术研究[J].中国教育网络,2013(12):34-36.

[14] 马文杰.Overlay Network技术在云计算数据中心中的应用[J].河南科技,2014(11):6-7.

Research and Implementation of EVPN Technology with VXLAN

ZHONG Geng-hui1,TANG Jia-shan2

(1.College of Telecommunication & Information Engineering,Nanjing University of Posts & Telecommunications,Nanjing 210003,China;2.College of Science,Nanjing University of Posts & Telecommunications,Nanjing 210003,China)

As the representative of overlay network,VXLAN (Virtual eXtensible LAN) has provided effective support to conduct network of cloud data center and makes it more scalable.However,traditional VXLAN based on data platform is limited in some ways.Before EVPN,MAC or ARP learning in PE of operator network,based on bridge,is performed by flooding-learning pattern.Based on data platform,terminal VM learning and VTEP automatic finding has missed control platform to release reachability information of terminal VM.Therefore,with VXLAN as data platform and MP-BGP EVPN encapsulated by VXLAN as control platform,the flooding-learning pattern has been changed.It also provides learning pattern of terminal VM under remote VTEP based on control platform.A forwarding scheme between bridge and route in VXLAN overlay network has also been realized.In this scheme,MAC/IP routing is used as a control plane.Information attached by this route has been used to study knowledge of terminal virtual machines,and the communication between virtual machine has been implemented,which has replaced the flooding-learning pattern and reduced network traffic effectively.

EVPN;VXLAN;data platform;control platform

2016-05-19

2016-09-09 网络出版时间:2017-03-13

教育部留学回国人员基金(BJ206004)

钟耿辉(1991-),男,硕士研究生,研究方向为现代通信中的智能信号处理技术;唐加山,教授,硕士生导师,研究方向为现代通信中的智能信号处理技术、信道辨识与均衡、复杂网络。

http://kns.cnki.net/kcms/detail/61.1450.TP.20170313.1545.012.html

TP31

A

1673-629X(2017)05-0046-05

10.3969/j.issn.1673-629X.2017.05.010

猜你喜欢
网关报文路由
基于J1939 协议多包报文的时序研究及应用
低轨星座短报文通信中的扩频信号二维快捕优化与实现
CTCS-2级报文数据管理需求分析和实现
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
浅析反驳类报文要点
一种基于虚拟分扇的簇间多跳路由算法
路由重分发时需要考虑的问题
信号系统网关设备的优化
天地一体化网络地面软网关技术及其应用