張屆新,吳志明,徐文華
(中國電信股份有限公司上海分公司 上海 200085)
隨著我國云計算進入應用落地的快速發展期,作為云計算基礎的數據中心也面臨從傳統的部署管理模式向云計算數據中心轉型的問題。云計算從互聯網演變而來,本質是通過網絡將計算力進行集中和存儲,并通過網絡提供服務。如果沒有網絡,計算力集中規模、服務的種類和可獲得性就會受到極大的限制。可見,面向云計算的數據中心包括計算、存儲和網絡3種資源。又由于這些資源采用物理形式或虛擬形式存在,且用戶所需的整體系統資源可能分布在用戶端、電信運營商的一個或多個數據中心內;反之,電信運營商的一個數據中心內的資源可以虛擬為多個獨立的虛擬環境,分別為不同用戶提供邏輯上完全隔離的DC微環境,這種模式的數據中心架構稱為虛擬數據中心(vDC)。
現階段,電信運營商的vDC發展面臨以下3方面的驅動。
一是業務更新驅動,包括電信運營商內外部雙方的驅動。就外部環境而言,企業的IT系統主要為企業實現減少成本、創造價值和提高效率這3種價值可能性。基于云計算虛擬化、集中化運營的IT外包日益成為趨勢,越來越多的企業將部分或全部IT系統部署在電信運營商的數據中心,這就需要電信運營商為群體用戶提供大量的計算和存儲資源,同時又要保障個體用戶的應用體驗。就內部環境而言,電信運營商在積極開發創新型業務實現開源的同時,還需盡可能降低運營成本,如保護既有投資、引入可以提升運維效率和降低總體建設成本的新技術等。
二是網絡發展驅動,IT技術的變革帶來高密度的虛擬機,也帶來高密度的MAC和ARP,需要提供大量虛擬資源隔離,因此需要二層網絡突破4096個VLAN資源的限制問題。同時,用戶IT應用模式的改變和IT技術本身的變革,需要電信運營商的數據中心提供更加高可靠的二層網絡環境,如規避環路以支持虛擬機實時遷移等。而對于電信運營商而言,面對大量虛擬機接入所帶來的高帶寬接入、高質量遷移需求,電信運營商需要以較低成本提供更高的帶寬資源利用率及帶寬通道,才能保證降本、提質、增效。
三是技術演進驅動,云計算風起云涌,一方面IT虛擬化技術不斷發展,如VM等;另一方面,承載IT并提供業務互通的數據中心網絡組網技術也在快速發展。如可以突破VLAN數量限制,且可以較好地利用現有網絡組網技術——overlay網絡技術,如VXLAN(virtual extensible VLAN,VLAN 虛擬化擴展)、STT(stateless TCP transmission,無狀態 TCP 傳送)、NVGRE (network virtualization GRE,網絡虛擬化的 GRE)、SPB-M (shortest path bridging-MAC in MAC,基于MAC in MAC的最短路徑橋接協議)等。
因此,在盡可能保護既有網絡投資(包括用戶接入網絡、數據中心內組網等)、降低網絡改造成本和風險的前提下,如何接應云計算時代的IT服務變革需求,選擇哪種技術進行vDC組網,是一個亟需研究的問題。本文就vDC組網的overlay網絡關鍵技術及其組網的難點進行研究、對比,以期為電信運營商的vDC組網提供參考。
從 vDC定義可以看出,vDC包括 CPN(customer premise network,用戶駐地網)和電信運營商的DC,涉及組網包括用戶接入網絡、DC內網絡、DC互聯網絡,如圖1所示。
vDC的主要應用需求及網絡互通要求見表1。
因此,用戶接入網絡可以利用已有的二層或三層網絡,如光接入網、VPN(virtual private network,虛擬專用網絡)等;而對于DC內網絡,二層和三層兩種網絡技術都可以實現異地DC互聯,以實現數據中心災備、業務彈性擴展、就近接入和按需遷移等價值,但兩者有差異,表現在以下兩方面。
·三層互聯技術:組網簡單靈活、經濟。不支持大二層網絡,DC間虛擬機互訪需要進行三層IP路由轉發,需要ARP的廣播報文,三層多播報文開銷較大,主要技術為L3 VPN。
·二層互聯技術:支持大二層網絡,DC間建立端到端二層網絡,可靠性高,時延小于三層組網,報文開銷也比三層網絡小,承載率高。主要技術為L2 VPN(如 VPLS)等。

圖1 vDC組網涉及網絡示意

表1 vDC的主要應用需求及網絡互通要求對應
對于DC互聯網絡,傳統DC內既有二層組網也有三層組網。但云計算的發展,帶來了DC內虛擬機數量日益增大、虛擬機間必須安全隔離、虛擬機需要實時遷移等新要求,需考慮引入可以解決這些問題的overlay網絡。
所謂overlay網絡,是指在現有網絡上疊加一層網絡進行數據承載與傳送。相對于實現目標尚遠、標準尚未完善、電信級商用設備尚未成熟的SDN(software defined networking,軟件定義網絡),overlay網絡技術可以看作SDN應用于虛擬數據中心的前導模式,基于overlay網絡的vDC組網不僅可以突破傳統二層網絡4096個VLAN數量的限制,而且可以與現有二層或三層網絡較好地共存、融合,滿足虛擬機隔離、實時遷移等需求,技術實現相對簡單,引入部署對現網的改動相對較小。
目前,基于overlay網絡的技術主要有4種,分別是VXLAN、STT協議、NVGRE協議和 SPB-M,這 4種 overlay技術的本質區別體現在封裝方式和轉發機制兩方面。
VXLAN是由思科和VMware為主導提出的IETF草案,支持方主要是網絡設備制造商、芯片廠商和軟件服務提供商,除思科和VMware之外,還有紅帽、思杰(Citrix)、Arista Networks和博通等。
(1)封裝方式
VXLAN是一種MAC over IP的協議,使用UDP封裝內層以太幀,封裝報文頭共50 byte。VXLAN使用24 bit VXLAN 網絡標識符 VNI(virtual network identifier,邏輯網絡標識),如圖 2所示,一個 VXLAN管理域最大支持16000000個邏輯網絡(VNI),而一般一個VNI最多支持4096個VLAN。
VXLAN封裝包括如下部分:
·VNI,同一個VNI內的主機才可互相通信;
·RRRR IRRR中的I置1,表示是一個有效的VNI;
·目的端口號為4789;
·源端口號可根據內部的以太頭散列算法生成,這樣路徑上的設備可根據隧道的UDP信息實現路徑均衡;

圖2 VXLAN幀封裝格式示意
·外層源IP地址為源VTEP(virtual tunnel end point,虛擬通道終端)的IP地址;
·外層目的IP地址為目的VTEP的IP地址。
在將以太幀封裝到隧道時,一般應把VLAN剝掉;在接收端,如隧道內的以太幀帶VLAN,一般把這個幀扔掉。實際應用中,也可以通過配置,改變處理規則。
(2)轉發機制
在VXLAN網內,廣播或多播的報文被封裝在IP多播中,如ARP報文,在初始化階段,采用IP多播進行ARP學習;也可以采用IP單播方式。而在ARP老化時間內通過MAC∶VNI尋找目的地址數據分組。
VXLAN 利用 ECMP(equal-cost multi-path routing,等價多路徑路由)對不同數據流使用不同的UDP源端口,實現等價多路徑的多鏈路負載均衡,有效提升帶寬利用率。
VXLAN可跨越物理三層網絡,使用UDP封裝能在三層物理網絡上建立二層邏輯網絡。在三層組網時,VXLAN網關進行MAC in UDP封裝,定義UDP隧道的目的IP地址及目的UDP端口號4798進行尋徑。其中,需要注意的是,VXLAN的UDP隧道是個不可靠的通信信道,如果需要可靠通信,則需要終端虛擬機的TCP保證。
無狀態TCP傳送技術主要為VMware旗下的Nicira倡導,并提出IETF草案,支持廠商較少。
(1)封裝方式
STT是一種MAC over IP的協議,在IP報文的有效載荷(payload)中,除了虛擬網絡的二層分組以外,還要依次封裝一個TCP頭和一個STT頭,如圖2所示。但STT是一種無狀態TCP,采用TCP封裝形式,將TCP各字段意義重新定義,無需3次握手建立TCP連接。
STT幀封裝格式如圖3所示。其中,4層偏移量(L4 offset)表示 STT頭+TCP頭的長度;STT frame(即 STT分組頭+有效載荷)是按照最大分段尺寸 (max segment size,MSS)的大小分段的,分段之后每個段會加上TCP分組頭,利用TSO(TCP segment offload,TCP分段卸載)機制交給網卡;PCP(priority ceiling protocol,優先級上限協議)表示優先級,可以不設;V|VLAN是VLAN相關的設置,略過;context ID表示租戶ID,每個租戶不同。
(2)轉發機制

圖3 STT幀封裝格式示意
STT的TCP源端口號和目的端口號都是隨機選的,源端口號范圍建議在49152~65535,目的端口號范圍建議在1024~49151。對于一條隧道/通道兩端固定的端點而言,兩者之間的通信應該用固定的源/目的端口。
在數據幀轉發過程中,SEQ/ACK也不會用作窗口重傳或者擁塞控制,而是用作一個STT幀的分段/合并,對于被分段的同一個STT幀,其TCP頭的ACK字段是相同的。
STT端點需要給STT預留TCP端口,所有發往這個端口的TCP分組會被認為是STT分組,從而不會走正常的TCP協議棧路徑。
同VXLAN類似,STT隧道也是不可靠通信信道,如要可靠通信,則需要終端虛擬機的TCP協議棧保證。
NVGRE是一種基于GRE優化的面向虛擬數據中心組網的overlay技術。目前NVGRE為IETF草案,主要支持者為軟件服務提供商和芯片廠商,如微軟、惠普、Arista Networks、英特爾、戴爾和博通等。
(1)封裝方式
RFC1701定義的GRE幀封裝格式如圖4所示。NVGRE封裝是對GRE的改造和再利用,利用GRE封裝中key域的低24 bit標識隧道VNI。其中,協議類型為2 byte,表示GRE報文內的凈荷協議類型,如IP或IPX等非IP;校驗和為2 byte,表示GRE頭部和IP凈荷的校驗和;key為4 byte,表示隧道內的單個業務流,同一業務流采用相同的key,隧道拆除點根據key域的值判斷業務流歸屬;流序列號為4 byte,表示隧道內的報文順序。

圖4 RFC1701定義的GRE幀封裝格式示意
(2)轉發機制
NVGRE在GRE基礎上,引入控制平面 (尚未完全定義),如利用GRE關鍵域進行ECMP。
首先,介紹一下 PBB(provider backbone bridge,運營商骨干橋接)技術。PBB是IEEE 802.1ah標準草案定義的MAC in MAC(下文簡寫為 MinM)技術;采用MinM封裝,基于運營商MAC地址,而不是用戶MAC地址轉發流量。PBB分為骨干網和接入網兩個層次。接入網是標準的二層網絡,可以采用STP或其他二層技術管理控制。2006年左右在業界有部分商用,用于進行基礎數據網絡的二層專線遷移。但隨著標準制定的旗手北電網絡公司倒閉,PBB后來的標準和網絡發展一度停滯。
SPB-M技術是基于PBB技術,在其控制平面進行優化而形成的一個新的IEEE標準,封裝格式與PBB幀相同,如圖5所示。
SPB-M的數據轉發平面基于PBB技術,但控制平面對PBB進行了優化,增加了等價多路徑計算等。SPB-M管理二層網絡的拓撲、環路、計算路徑等,通過IS-IS(intermediate system to intermediate system,中間系統到中間系統)協議學習骨干網的拓撲,計算最短轉發路徑和等價路徑,指導報文在骨干網上進行最優的二層轉發,有效地減少轉發跳數,提高轉發性能;PBB根據SPB-M計算的路徑進行轉發。
從封裝方式及轉發機制等理念上看,VXLAN、STT、NVGRE與SPB-M分屬于兩種不同類型的overlay大二層組網技術。VXLAN、STT、NVGRE是采用MAC in IP封裝,一般在服務器上安裝插件即可支持隧道建立,VXLAN與STT關系最為緊密,體現在:一是基于無狀態隧道進行二層數據傳送,可通過軟件或硬件支持;二是等價多路徑算法基本相同;三是兩者都是同一個廠商VMware的子產品。相對而言,SPB-M是MinM協議,不僅封裝和轉發機制完全不同,而且還需要專門的硬件交換機支持隧道的起止,目前無法直接在虛擬化服務器上通過軟件支持。
因此,技術對比分兩個層面展開:一是以VXLAN為代表的基于MAC in IP封裝的隧道,與基于MinM封裝的SPB-M隧道進行對比,見表2;二是在3種MAC in IP封裝的隧道技術中進行進一步細化比較,比較結果見表3。
綜上所述,通過全方位的技術對比,針對當前技術發展及設備實現,總結如下。
·VXLAN與STT封裝方式類似且轉發機制相同,但VXLAN相對于STT更易于現網部署。雖然VXLAN也尚未完全標準化,但VXLAN基于現有成熟協議UDP實現,對服務器要求低;而理論上STT優于VXLAN技術的“控制平面”仍尚未定義,且STT基于的無狀態TCP不僅非標準,而且對現有協議進行了改造,對服務器有較高要求,需要支持TSO和TOE功能。
·與VXLAN相比,NVGRE最具優勢的控制平面也尚未完全定義,且NVGRE對現網設備的硬件處理能力要求高,改造成本大。

圖5 PBB/SPB-M幀封裝格式示意

表2 VXLAN與SPB-M技術對比

表3 VXLAN與STT、NVGRE技術對比
·SPB-M相對于VXLAN具有標準化的優勢,同時有較好的技術儲備和商用基礎——不僅其轉發平面機制PBB技術本身曾有多個商用案例,而且SPB-M也有商用,如索契冬運會網絡采用Avaya的SPB-M產品構建。但當前服務器虛擬化與SPB-M的契合度尚欠缺,SPB-M無法直接部署在服務器的虛擬平臺上,因而導致基于SPB-M的vDC組網實現相對復雜,vDC中部署成本相對VXLAN較高。
vDC網絡涉及用戶接入DC、DC內組網和異地DC間互聯3個層面;而云計算仍在發展階段,每個vDC部分都可能有物理資源和虛擬資源共存。因此,vDC整體組網環境比較復雜。
近期,用戶接入DC可以充分利用已有光網城市網絡或IP/MPLS網絡 (視用戶需求及用戶類型而定);DC間互聯也可利用已有IP/MPLS三層網絡或OTN等二層網絡。但DC內的overlay組網架構具體實現以及面向vDC全網的虛擬機遷移與資源訪問等應用需求所涉及的用戶接入與 DC內 overlay網絡、DC內 overlay網絡跨 IP城域網、其他DC互聯的平滑銜接,尚需等待相關技術進一步發展成熟和相關設備能力進一步完善后,再進行組網測試驗證。
現網部署時,需要結合技術成熟度、技術經濟性、技術擴展性、現有資源保護性等因素綜合考慮,選擇對現網影響最小、運營效率最高、風險最低的技術進行vDC組網。
1 STT協議解析.http://blog.csdn.net/majieyue/article/details/7941878,2012
2 IETF.A Stateless Transport Tunneling Protocol for Network Virtualization(STT).draft-davie-stt-05,2014
3 IETF.VXLAN:a Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks.draft-mahalingam-dutt-dcopsvxlan-08,2014
4 李明.網絡虛擬化技術在云計算數據中心的應用.電信工程技術與標準化,2011(4)
5 雷鳴,劉玲.云計算數據中心組網技術.電信工程技術與標準化,2012(4)