鐘耿輝,唐加山
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210003;2.南京郵電大學 理學院,江蘇 南京 210003)
基于VXLAN的EVPN技術研究與實現
鐘耿輝1,唐加山2
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210003;2.南京郵電大學 理學院,江蘇 南京 210003)
VXLAN作為overlay網絡技術的代表,為解決云數據中心的組網問題提供了有效的技術支持,使網絡更具可擴展性。但傳統(tǒng)VXLAN技術是基于數據平面的,存在諸多局限性。早在EVPN之前,運營商網絡PE設備間的MAC或ARP學習是基于傳統(tǒng)網橋功能的,以泛洪學習模式運行。在這種模式下,終端虛機信息學習和VTEP的自動發(fā)現均基于數據平面,缺少控制平面來發(fā)布終端虛機的可達信息。為此,將VXLAN作為數據平面,基于VXLAN封裝的MP-BGP EVPN作為控制平面,改變了這種泛洪學習模式,提供了遠端VTEP下終端虛機基于控制平面的學習模式,并設計實現了在VXLAN overlay網絡中二層和三層轉發(fā)的控制平面方案。該方案將MAC/IP路由作為控制平面消息,利用該路由攜帶的信息進行終端虛擬機信息的學習,并實現了虛擬機之間的互通,取代了泛洪學習模式,有效減少了網絡流量。
EVPN;VXLAN;數據平面;控制平面
VXLAN(Virtual eXtensible LAN)[1-2]是一種實現網絡虛擬化[3-4]的overlay技術,主要應用于數據中心組網,通過隧道封裝在一個共享的三層underlay網絡上實現二層擴展。由于在overlay網絡中,只有IP核心網絡的邊緣設備需要進行VXLAN處理,網絡中間設備只需根據IP頭轉發(fā)報文,即只需要VTEP(VXLAN Tunnel End Point)[5]設備對VXLAN報文進行封裝和解封裝操作,接入交換機只需要學習VTEP設備的MAC或ARP信息。因此可以基于已有的服務提供商或企業(yè)IP網絡,為分散的物理站點提供二層互聯,并能夠為不同的租戶提供業(yè)務隔離。然而VXLAN作為數據平面技術[6],存在的局限性也很明顯。Overlay的BUM(廣播、未知單播、組播)流量需要封裝到廣播VXLAN報文中,在underlay網絡中廣播轉發(fā)到遠端VTEP。這樣會帶來一些問題:Underlay網絡需要使能廣播,而有些租戶不愿意在數據中心內使能廣播;對BUM報文采用泛洪的方式導致網絡擴展性有限;且現在的數據中心組網對網絡提出了更多的新需求,如負載均衡、故障快速收斂等,都不能很好支持。
通過對傳統(tǒng)網絡下VXLAN技術缺陷的分析,引出MP-BGP EVPN控制平面出現的必要性,給出了具體研究控制平面的方案,并實現了控制平面方案下虛機之間的互通。
1.1 MAC/ARP學習的缺陷
首先,交換機上需要學習MAC/ARP來指導轉發(fā)。VXLAN技術可以在一定程度上抑制BUM流量。為了避免ARP報文泛洪占用核心網絡帶寬,可以在本地學習并維護一個ARP泛洪抑制表項。以后當該VTEP收到本站點內虛擬機請求其他虛擬機MAC地址的ARP請求時,優(yōu)先根據ARP泛洪抑制表項進行代答,從而避免二次網絡泛洪。ARP泛洪抑制功能在一定程度上減少了ARP泛洪的次數,但在學習MAC/ARP時仍然需要泛洪。在虛擬機規(guī)??焖僭鲩L的云數據中心網絡,這種泛洪學習模式會給數據中心網絡帶來巨大的壓力,并不能很好地支持大規(guī)模數據中心組網。
1.2 對端自動發(fā)現及功能性限制
在數據中心組網中,一臺PE(Provider Edge router)設備可能需要發(fā)現對端的PE設備以相互形成VTEP(VXALN Tunnel End-Point)對端。在傳統(tǒng)的VPLS(Virtual Private LAN Service,虛擬專用局域網業(yè)務)[7-8]實現中,盡管有依賴于數據平面的泛洪來進行VTEP遠端自動發(fā)現功能,但在大規(guī)模數據中心組網中,租戶更加希望能夠通過其他特殊的方式來實現VTEP對端自動發(fā)現。而且還有一些功能如負載均衡、快速收斂、水平分割、部署簡易性等都不能很好地滿足要求。
2.1 EVPN控制平面概述
在大規(guī)模數據中心組網下,為了改善傳統(tǒng)網絡下一系列缺陷,需要一種全新的技術來滿足現在云計算虛擬化的網絡需求。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。通過這五種可達路由信息的發(fā)布、撤銷和接收處理來實現控制平面。其中,第一種路由包含A-D per ES路由和A-D per EVI路由。通過該路由的通告可以發(fā)現同一個或多個VPN實例中具有相同ESI的PE成員,這是EVPN中非常重要的功能,用于實現多歸屬接入的負載分擔、水平分割、快速收斂及減少MAC地址路由通告數目等各種應用場景[11]。當PE設備學習到本地虛機的MAC或ARP信息時,就可以通告第二種路由類型。PE可以同時通告MAC路由和MAC/IP路由,因此可以分開管理MAC表和ARP表。如果PE收到ESI為有效的MAC/IP路由時,且該PE也連接到此ESI,此時PE不更改轉發(fā)狀態(tài),因為這種情況屬于多歸屬組網,收到該MAC/IP路由的PE實際與該MAC是直連的,以此保證本地路由較遠端路由優(yōu)先。第三種路由類型用來發(fā)現數據中心[12-13]內的對端PE,并在PE成員之間自動建立Tunnel,形成VTEP對端。第四種路由類型用來發(fā)現連接到同一ES的PE成員,此路由只會被那些連接了同一ES的PE接收,其他PE不接收,可用于DF選舉。第五種路由類型可用來在PE還未學到本地虛機的ARP信息時發(fā)布一個網段路由到遠端PE,遠端PE收到該路由可以下發(fā)網段FIB表和ARP表,以此指導轉發(fā)。MP-BGP EVPN控制平面在解決傳統(tǒng)VXLAN網絡局限性的同時還帶來了其他益處:
(1)MP-BGP EVPN基于行業(yè)標準,允許多家設備供應商之間設備的互通。
(2)允許通過控制平面來學習二層和三層可達信息,可以構建更具魯棒性和擴展性的VXLAN overlay網絡[14]。
(3)MP-BGP VPN技術已經經過實踐考驗,用來支持多租戶的VXLAN overlay網絡使其具有很好的可靠性。
(4)EVPN協議族同時攜帶二層和三層可達路由信息,為VXLAN overlay網絡提供了集成路由選擇和橋接方案。
(5)在本地VTEP上,通過基于協議虛擬機MAC/ IP路由的發(fā)布和配置ARP代答來最小化網絡泛洪。
(6)為各種流量提供最佳轉發(fā)路徑。
(7)提供了一種機制來建立二層的多歸屬。
2.2 EVPN控制平面下MAC和ARP學習的設計
MP-BGP EVPN設計用來發(fā)布NLRI(網絡可達消息)到網絡。EVPN NLRI獨一無二的一個特征是同時包含終端虛機二層和三層的可達消息??梢酝瑫r發(fā)布EVPN VXALN overlay網絡的MAC和IP地址。這是支持VXALN IRB(集成路由選擇和橋接)的基礎。
VXLAN是一個二層的擴展技術,因此二層MAC地址需要被發(fā)布。在overlay網絡中,相同VNI中的終端虛機之間的流量需要被轉發(fā),這就意味著在給定的VNI中,VTEP設備需要學習到其他終端虛機的MAC地址。通過BGP EVPN控制平面來發(fā)布MAC地址可以有效減少或者說限制BUM報文在VXLAN中的泛洪。本地VTEP收到路由可達消息時可以學到遠端虛機的MAC地址。
三層的虛機IP地址也通過MP-BGP EVPN來通告,遠端PE通過接收該路由來學習虛機的ARP信息,這樣VXLAN流量就可以通過最佳路徑被轉發(fā)到目的終端虛機。當遠端VTEP還沒有通過MP-BGP學習到本地虛機IP路由時,本地VTEP可以通告IP Prefix路由到VXLAN網絡中,通過學習到的網段路由轉發(fā)流量到目的終端虛機。EVPN NLRI由BGP攜帶。其中,RD用來保證同一個路由中不同VRF實例的唯一性,RT用來決定不同VRF實例中路由的通告和引入。而且,為了進一步簡化配置,RD和RT可以通過簡單配置來自動生成。MP-BGP EVPN虛機NLRI學習和通告的基本過程如圖1所示。
(1)本地虛機學習。
VTEP-1學習本地下掛的虛機的MAC地址和IP地址,MAC使用標準的以太網MAC地址學習方式,IP通過虛機發(fā)送的GARP、RARP或者虛機對網關的ARP請求來學習。VTEP-1學習到本地的MAC和ARP信息,可以下發(fā)ARP表、MAC表。也可以通過配置“mac-learning disable”來禁止本地MAC的下發(fā),進一步減小MAC表規(guī)模,在大規(guī)模數據中心組網下本地虛機數量很大時效果明顯。本地下發(fā)的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發(fā)送給BGP,BGP根據建立的BGP會話將此路由通告到所有BGP對端。其中,每個VTEP有一個唯一的系統(tǒng)MAC地址,這個MAC地址又稱為R-MAC地址,用作VXLAN報文的內部MAC地址。在網絡中每個租戶的VRF實例映射到一個唯一的L3VNI(Layer-3 VNI)。所有的VXLAN流量使用這個L3VNI封裝在VXLAN頭并提供接收VTEP的VRF信息。接收的VTEP使用這個VNI來決定這個VRF信息要往哪里轉發(fā),同時這個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)表項下發(fā)。
VTEP-2和VTEP-3收到MAC/IP路由,三層RT匹配引入該路由,就可以學到VTEP-1下虛機的信息,在BGP進程中的ARP和MAC模塊維護遠端虛機的EVPN ARP和EVPN MAC表項。再下發(fā)ARP、代答ARP和MAC等表項,需要下發(fā)的表項根據配置而定。
3.1 IRB(集成路由選擇和橋接)方式的支持性分析
以上闡述了MP-BGP EVPN控制平面下的概要設計,接下來進一步研究該控制平面下數據中心組網的具體實現。VXLAN overlay網絡中的終端虛機通過同時通告二層和三層可達消息,MP-BGP EVPN控制平面可以提供IRB方案。每臺VTEP通過數據平面本地學習下掛虛機的MAC和IP地址,然后通過MP-BGP EVPN控制平面來通告這些信息。遠端VTEP通過控制平面來學習遠端信息。這種方法有效限制網絡泛洪并為終端虛機之間的信息發(fā)布提供更好的控制能力。
3.2 IRB方案的設計與研究
IETF EVPN草案定義了兩種IRB方式:對稱IRB和非對稱IRB。重點研究實現對稱IRB方式,這種方式具有更好的可擴展性。
通過MP-BGP EVPN控制平面可實現數據中心多種組網,采用集中式網關方式時,不同VXLAN之間的流量以及VXLAN訪問外界網絡的流量全部由集中式EVPN網關處理,網關壓力較大,并加劇了網絡帶寬資源的消耗。因此重點研究分布式網關組網,同時在網關上配置ARP代理功能。因此,分布式網關組網下,每臺VTEP設備都可作為EVPN網關,很好地緩解了網關的壓力。所謂ARP代理,是指虛機為請求遠端虛機的MAC地址發(fā)送一個ARP請求報文時,若網關發(fā)現ARP請求報文的IP地址和網關IP地址在同一網段,即使網關未學到遠端虛機準確的ARP信息,也給本地虛機返回一個ARP應答消息,MAC地址為網關的MAC地址。然后網關再去請求虛機的ARP信息并學習。此時若本地虛機向遠端虛機發(fā)送報文,網關發(fā)現目的MAC是自己,則網關處理報文后走三層轉發(fā)。
如圖2所示,當一個報文從VM 1發(fā)送到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中做三層轉發(fā)。
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實例,首先創(chuàng)建一個VRF實例,定義VRF route distinguisher,并在address-family ipv4和address-family evpn下定義VRF router target引入和輸出策略。
(2)對每個租戶VRF實例綁定一個Layer-3 VNI。
(3)創(chuàng)建一個VSIIF網關虛接口,關聯VSI虛接口到用戶VRF實例,同時配置每臺VTEP的虛擬MAC地址和每個VNI的網關IP地址。研究分布式網關下ARP代理組網,需具有ARP代理和分布式網關功能。
(4)創(chuàng)建一個EVI實例,并關聯VSI虛接口,同時設置VXLAN-ID,并定義VXLAN封裝報文下EVI實例的route distinguisher和route target。另外,由于設計不下發(fā)本地虛機的MAC地址,需要配置去使能學習本地虛機MAC。
(5)配置MP-BGP鄰居,創(chuàng)建BGP l2VPN EVPN地址族,使能EVPN,并使能BGP對端鄰居,通常鄰居是對端VTEP環(huán)回口地址。
(6)VTEP-2的配置類似VTEP-1,而且要求兩個EVPN網關配置相同的網關虛擬MAC地址,一個VNI中配置相同的網關IP地址,作為默認的IP網關。
3.3.2 MAC/ARP學習以及報文轉發(fā)測試
(1)VM1發(fā)送一個GARP、RARP或ARP請求報文,VTEP-1通過數據平面學習到VM1的MAC和IP地址,下發(fā)ARP表項給驅動。因為設計分布式網關配置代理時,同網段也走三層轉發(fā),所以本地的MAC表項其實不用下發(fā)來指導轉發(fā),設計通過配置“mac-learning disable”命令來禁止本地MAC的下發(fā),在大規(guī)模組網下減輕了MAC表項規(guī)模的限制。本地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模塊維護相關路由信息,并下發(fā)路由表,下一跳是VTEP-1地址。ARP模塊維護相關的遠端ARP數據信息,并下發(fā)下一跳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信息并下發(fā)ARP表項,其中MAC地址為網關MAC地址。VM1返回一個ARP應答報文,通過ARP應答報文,相同的原理VTEP-2上下發(fā)VM2的ARP表,VTEP-1上可以下發(fā)路由表和下一跳ARP表。這樣一個基于MP-BGP EVPN控制平面的分布式組網就可以按照最佳轉發(fā)路徑發(fā)送報文了。
(6)接下來做進一步的驗證,從VM1上發(fā)送一條ping報文給VM2,在VM1上可見流量轉發(fā)正常,同時觀察VTEP-1上流量轉發(fā)流程正常,該方案切實可行。測試結果如圖3和圖4所示。
圖3 VM1 ping報文信息圖
圖4 VTEP-1 ping報文轉發(fā)信息圖
(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。
大規(guī)模數據中心組網依賴于網絡虛擬化技術,而VXLAN的出現解決了傳統(tǒng)網絡暴露的很多問題,在網絡虛擬化技術中應用廣泛。將VXLAN結合EVPN控制平面,進一步優(yōu)化大規(guī)模數據中心網絡,通過控制平面實現MAC和ARP的學習,抑制網絡泛洪。而且分析控制平面實現傳統(tǒng)VXLAN數據中心網絡無法實現的功能。但是云計算還在不斷發(fā)展,對大規(guī)模數據中心網絡要求還會越來越高,這些技術依然需要不斷進行完善和深入研究。
圖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].哈爾濱:哈爾濱工業(yè)大學,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