【摘要】VPLS,全稱為虛擬專用局域網(wǎng)業(yè)務(wù)(Virtual Private LAN Service),是一種在網(wǎng)絡(luò)上提供類似LAN的一種業(yè)務(wù),它可以使用戶從多個地理位置分散的點同時接入網(wǎng)絡(luò)相互訪問,就像這些點直接接入到LAN上一樣,VPLS使用戶延伸他們的LAN到MAN和WAN上,本文主要研究VPLS在數(shù)據(jù)中心網(wǎng)絡(luò)中的應(yīng)用。
【關(guān)鍵詞】MPLS;VPLS;數(shù)據(jù)中心;虛擬機遷移
1.背景
隨著信息化的發(fā)展,越來越多的業(yè)務(wù)和數(shù)據(jù)都在向數(shù)據(jù)中心集中,數(shù)據(jù)中心業(yè)務(wù)和數(shù)據(jù)的可靠性也日益重要。為了容災(zāi)的需求很多用戶都會建立異地的數(shù)據(jù)中心作為冗余備份,同時做負(fù)載均衡。另一方面服務(wù)器虛擬化后的虛機動態(tài)遷移技術(shù)(如VMware的VMotion)在數(shù)據(jù)中心容災(zāi)及計算資源調(diào)配方面也得以廣泛應(yīng)用,這技術(shù)不僅要求在數(shù)據(jù)中心內(nèi)實現(xiàn)大二層網(wǎng)絡(luò)接入,而且要求在數(shù)據(jù)中心間也實現(xiàn)大范圍二層網(wǎng)絡(luò)擴展。利用VPLS技術(shù)在數(shù)據(jù)中心或者跨地域的數(shù)據(jù)中心間構(gòu)建二層互聯(lián)網(wǎng)絡(luò)可實現(xiàn)虛擬服務(wù)器的平滑遷移,可以很好地滿足容災(zāi)和資源調(diào)配的需求。
2.VPLS在數(shù)據(jù)中心網(wǎng)絡(luò)應(yīng)用原理介紹
對于大型數(shù)據(jù)中心有成百上千臺服務(wù)器,這些服務(wù)器所在的網(wǎng)絡(luò)要么是三層組網(wǎng)要么是二層組網(wǎng)。對于三層組網(wǎng),當(dāng)虛機所在的物理服務(wù)器處于不同的網(wǎng)段時,虛擬機遷移后,虛擬機的網(wǎng)關(guān)地址、IP地址均需要進行修訂才能連通,這種修訂將導(dǎo)致原有的業(yè)務(wù)訪問受影響即必須使用新的IP來訪問該虛擬服務(wù)器,對用戶顯然是不可接受的。為了業(yè)務(wù)的延續(xù)性,虛機在遷移時要求虛擬機必須保留原有IP地址以及網(wǎng)關(guān)等不變,這樣才能保持遷移前的運行狀態(tài)(如TCP會話狀態(tài)),而要做到這一點就要求所有服務(wù)器的虛機都在一個大二層網(wǎng)絡(luò)中。使用傳統(tǒng)的二層交換組大二層網(wǎng)的方式把物理服務(wù)器和虛擬機都放在同一個二層網(wǎng)絡(luò)中,即不利于流量在數(shù)據(jù)中心網(wǎng)絡(luò)中的負(fù)載分擔(dān),同時也無法勝任跨數(shù)據(jù)中心的場景。VPLS是一種在三層網(wǎng)絡(luò)上仿真LAN的技術(shù),利用該技術(shù)可以克服傳統(tǒng)大二層網(wǎng)絡(luò)的不足,因此被數(shù)據(jù)中心廣泛采用。
為了方便下文描述VPLS的原理,這里對圖1的相關(guān)概念先做一個簡單的介紹。
TOR(Top of Rack),主要指在數(shù)據(jù)中心網(wǎng)絡(luò)中,放在服務(wù)器機架頂上的交換機,用于服務(wù)器接入數(shù)據(jù)中心網(wǎng)絡(luò),屬于接入層交換機。
EOR(End of Rack),主要指在數(shù)據(jù)中心網(wǎng)絡(luò)中,用于將接入交換機互聯(lián)匯聚的,在常見的數(shù)據(jù)中心網(wǎng)絡(luò)中,這類設(shè)備常常放置在服務(wù)器機架的尾部,所以被稱為EOR。
PE設(shè)備,VPLS服務(wù)提供商的邊緣設(shè)備。在VPLS網(wǎng)絡(luò)中,所有PE需要互相連接,以形成一個虛擬LAN。
P設(shè)備,VPLS服務(wù)提供商的核心設(shè)備。在VPLS網(wǎng)絡(luò)中與PE相連,其只負(fù)責(zé)MPLS報文的轉(zhuǎn)發(fā)。
PW(PseudoWire),偽線,也被稱為VC,用于連接兩個PE之間的虛擬線路,該該虛擬線路上傳輸用戶的二層報文(如以太網(wǎng)報文),不同的PW可以用MPLS標(biāo)簽來區(qū)分。
如圖1所示,通過VPLS技術(shù)將各個VM server連接在同一個LAN之中,該LAN的網(wǎng)關(guān)在VPLS Gateway上,所以當(dāng)VM從一個server遷移至另外一個server時,網(wǎng)關(guān)和自身的IP地址均無需改變。其業(yè)務(wù)報文工作原理如下:
1.從xconnect的vlan進入到VPLS PE的報文為用戶的業(yè)務(wù)報文。
2.從xconnect的vlan進入到VPLS PE的的報文,當(dāng)目的MAC地址尋址不成功時,泛洪至vlan所有的成員口和PW(從PW出去的報文需要封裝為標(biāo)簽報文)。
3.從xconnect的vlan進入到VPLS PE的的報文,當(dāng)目的MAC地址尋址成功時,按照尋址結(jié)果進行轉(zhuǎn)發(fā)。
4.從PW進入到VPLS PE的標(biāo)簽報文能夠被脫掉標(biāo)簽,按照標(biāo)簽報文封裝的內(nèi)部以太網(wǎng)頭部的目的MAC在xconnect的vlan中進行目的MAC尋址轉(zhuǎn)發(fā),如果查找不到則在該vlan中進行廣播。
5.從xconnect的vlan進入到VPLS PE的報文,能夠被VPLS PE學(xué)習(xí)源MAC。
6.從PW進入的報文,能夠被VPLS PE學(xué)習(xí)源MAC
該方案的優(yōu)點是:配置簡單,協(xié)議成熟,容易管理。
該方案的缺點是:因為TOR設(shè)備均在同一個VPLS的LAN中,所以所有虛擬機的MAC地址都有可能被PE學(xué)習(xí)到。常見交換機硬件資源支持的MAC地址數(shù)為32k。每臺服務(wù)器一般能運行20個虛擬機,這樣會限制數(shù)據(jù)中心最多承載1600多臺服務(wù)器。對于大規(guī)模的數(shù)據(jù)中心,為了突破這一限制一般采用大容量MAC地址表的交換設(shè)備,大容量就意味著高成本,特別是在接入層這種量比較大設(shè)備上(TOR),對整網(wǎng)的成本存在較大的影響。
按照上面的業(yè)務(wù)轉(zhuǎn)發(fā)原理工作,當(dāng)只有VM Server A和VM Server B進行通信時,可以看到在VPLS Gateway和PE3上都學(xué)習(xí)到了MAC-A的地址表項。而實際上VM Server C并沒有VM Server A發(fā)生通信,這種情況下PE3上這個表項是無用的。PE3之所以能學(xué)習(xí)到VM Server A的MAC是因為:當(dāng)VM Server A要和Server B進行通信時,由于VM Server A上沒有目的主機的MAC地址,因此會先發(fā)送ARP請求的廣播報文,而該廣播報文會在二層的VPLS域內(nèi)轉(zhuǎn)發(fā),從而到達(dá)該VPLS域的各個PE上,進而被其它所有的VPLS PE學(xué)習(xí)了該源MAC地址。如上圖VM Server B是在PE2下面,由于VM Server A要和Server B進行通信,因此最理想的情況只要在PE1和PE2上進行地址學(xué)習(xí)即可。
3.VPLS在數(shù)據(jù)中心網(wǎng)絡(luò)應(yīng)用的優(yōu)化
如上節(jié)描述,在未對VPLS技術(shù)進行改進的情況下,存在PE設(shè)備上學(xué)習(xí)無效的MAC地址的問題,從而浪費寶貴的硬件資源。本節(jié)主要介紹如何對VPLS技術(shù)進行優(yōu)化,使得既能夠支持利用VPLS技術(shù)實現(xiàn)數(shù)據(jù)中心虛擬化業(yè)務(wù)遷移的特性,同時又能夠最大程度上降低大規(guī)模服務(wù)器部署的情況下MAC地址容量不足的問題。
如圖表2,通過改造VPLS PE的MAC地址學(xué)習(xí)方式使其受控學(xué)習(xí)進入VPLS PE的報文的源MAC地址,從而節(jié)省MAC地址表的空間。具體步驟如下:
從xconnect的vlan進入到VPLS PE的的報文,當(dāng)目的MAC地址尋址不成功時,泛洪至vlan所有的成員口和PW(從PW出去的報文需要封裝為標(biāo)簽報文)。
從xconnect的vlan進入到VPLS PE的的報文,當(dāng)目的MAC地址尋址成功時,按照尋址結(jié)果進行轉(zhuǎn)發(fā)。
從PW進入到VPLS PE的標(biāo)簽報文能夠被脫掉標(biāo)簽,按照標(biāo)簽報文封裝的內(nèi)部以太網(wǎng)頭部的目的MAC在xconnect的vlan中進行目的MAC尋址轉(zhuǎn)發(fā),如果查找不到則在該vlan中進行廣播。
從xconnect的vlan進入到VPLS PE的報文,能夠被VPLS PE學(xué)習(xí)源MAC。
從PW進入的報文,其源MAC是否能被VPLS PE學(xué)習(xí)遵循如下規(guī)則:
1.判斷報文的類型是否是ARP請求報文,如果是ARP請求報文(不包括免費ARP報文的請求報文)則不學(xué)習(xí)該報文的源MAC,如果不是ARP請求報文則進行地址學(xué)習(xí)。那么對端請求通信的主機的MAC什么時候?qū)W習(xí)呢?由于對端發(fā)送ARP請求報文意味著對端主機最終是可能需要和本交換機下的主機進行通信的。因此當(dāng)對端主機收到回應(yīng)的ARP應(yīng)答后,將發(fā)送單播報文給交換機下的主機。此時VPLS的PE交換機會從PW會收到對端發(fā)送的單播報文,這時候就按照正常的地址學(xué)習(xí)過程進行學(xué)習(xí)即可,這樣便可以學(xué)習(xí)到。對于對端主機所在的VPLS PE交換機而言,在收到本端的主機發(fā)送的ARP應(yīng)答時,由于ARP應(yīng)答也是單播報文,因此其對端的PE交換機也會對該源MAC進行正常的學(xué)習(xí)。
2.對于免費ARP報文處理方式如下:將免費ARP報文中所攜帶的源MAC地址提取出來在VPLS PE的MAC地址表中查找,如果找到則將該MAC轉(zhuǎn)發(fā)條目的出口進行更新,關(guān)聯(lián)到新的PW(即收到該免費ARP報文所在的輸入PW或者輸入端口)。如果不存在則不學(xué)習(xí)該源MAC地址。
從圖表2可以看出,當(dāng)ServerA和ServerB通信時,在改進的VPLS技術(shù)方案中,PE3和VPLS Gateway上的VPLS mac地址表都是空的,這樣就可以大大減少PE3的MAC地址空間的浪費,只有彼此間確實需要進行通信時才進行學(xué)習(xí),進而解決了現(xiàn)有方案對整網(wǎng)網(wǎng)絡(luò)設(shè)備MAC地址容量依賴的缺陷。
該技術(shù)不限定于數(shù)據(jù)中心的大二層解決方案應(yīng)用場景,對標(biāo)準(zhǔn)的VPLS以及分層VPLS(H-VPLS)的應(yīng)用場景同樣也適用。甚至包括傳統(tǒng)的二層接入交換機的橋MAC地址學(xué)習(xí)也適用,通過該原理減少交換機對這種無效MAC的學(xué)習(xí)從而浪費表項,只有當(dāng)真正需要和對方進行二層通信時才學(xué)習(xí)對端的MAC。
該技術(shù)方案可以進一步擴展,不僅僅限定于ARP請求的廣播報文,可以擴展到所有的目的MAC為全F的廣播報文,針對目的MAC為全F的廣播報文,在VPLS PE上都不進行學(xué)習(xí)。
4.結(jié)語
本文主要介紹了VPLS在數(shù)據(jù)中心網(wǎng)絡(luò)的應(yīng)用,以及通過改進的VPLS技術(shù),使得在整網(wǎng)支持大規(guī)模的二層網(wǎng)絡(luò)部署時,可以有效減少各設(shè)備節(jié)點的MAC地址空間浪費,進而控制網(wǎng)絡(luò)設(shè)備成本。尤其在應(yīng)對使用ARP攻擊的情況下,可以有效過濾這種無效MAC學(xué)習(xí)從而占用寶貴的MAC地址資源。
參考文獻(xiàn)
[1]rfc3985 PWE3 Architecture
[2]rfc4026 Provider Provisioned Virtual Private Network (VPN) Terminology
[3]rfc4448 Encapsulation Methods for Transport of Ethernet over MPLS Networks
[4]rfc4664 Framework for Layer 2 VPNs
[5]rfc4665 Service Requirements for Layer 2 Provider-Provisioned Virtual Private
[6]rfc4762 Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling
[7]rfc3916 Requirements for Pseudo-Wire Emulation Edge-to-Edge (PWE3)
[8]rfc4385 Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for Use over an MPLS PSN
[9]draft-ietf-l2vpn-vpls-ldp-09