一文看懂構(gòu)建云數(shù)據(jù)中心的Overlay網(wǎng)絡(luò)技術(shù)

本文系統(tǒng)梳理了Overlay網(wǎng)絡(luò)技術(shù)的基本框架、數(shù)據(jù)傳輸原理以及技術(shù)標(biāo)準(zhǔn),分析了Overlay網(wǎng)絡(luò)技術(shù)流行的根本原因,同時也解讀Overlay技術(shù)本身的一些缺陷,有助于讀者清晰了解Overlay網(wǎng)絡(luò)技術(shù)。

引言

傳統(tǒng)歷史階段,數(shù)據(jù)中心的網(wǎng)絡(luò)以三層架構(gòu)(核心、匯聚、接入)為基本標(biāo)準(zhǔn)。在具體落地的過程當(dāng)中,隨著技術(shù)的不斷發(fā)展,不同的廠家有不同的組建方式,有的廠家在核心層增加虛擬化技術(shù),實(shí)現(xiàn)物理設(shè)備上的核心層和匯聚層的虛擬化分離,使得整體網(wǎng)絡(luò)架構(gòu)偏于扁平;有的廠家在匯聚層和接入層增加虛擬化技術(shù),實(shí)現(xiàn)物理設(shè)備上的匯聚層和接入層的虛擬化分離。但是無論如何改變,都沒有改變以太網(wǎng)絡(luò)傳輸?shù)幕驹瓌t,都是需要靠網(wǎng)絡(luò)地址、物理地址來進(jìn)行控制轉(zhuǎn)發(fā)。但是隨著云計(jì)算的發(fā)展,數(shù)據(jù)中心的規(guī)模多數(shù)朝著規(guī)模大、超靈活的需求方向邁進(jìn)。那么隨著而來的虛擬計(jì)算跨區(qū)域遷移保護(hù)的困難,集群網(wǎng)絡(luò)隔離規(guī)模的受限,數(shù)據(jù)中心整體網(wǎng)絡(luò)資源的受限等問題。正是在這個歷史背景下,以vxlan為代表的Overlay網(wǎng)絡(luò)粉墨登場。

1.什么是Overlay網(wǎng)絡(luò)?

1.1 Overlay網(wǎng)絡(luò)的基本架構(gòu)組成

Overlay網(wǎng)絡(luò)技術(shù)是指在傳統(tǒng)網(wǎng)絡(luò)架構(gòu)之上疊加的虛擬化技術(shù)模式。也就是說它是依托于傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的前提條件下,實(shí)現(xiàn)了應(yīng)用與其虛擬網(wǎng)絡(luò)的捆綁而忽略底層物理網(wǎng)絡(luò)的傳輸模式及技術(shù)。要了解Overlay網(wǎng)絡(luò)架構(gòu)體系,首先我們需要知道它的組成架構(gòu)及元素,要了解這些東西,我們必須從它與傳統(tǒng)物理網(wǎng)絡(luò)架構(gòu)的差異入手來詳細(xì)了解,具體如圖1.1所示:

1.webp.jpg

圖1.1 Overlay&傳統(tǒng)物理網(wǎng)絡(luò)架構(gòu)

如圖1.1所示,Overlay網(wǎng)絡(luò)架構(gòu)是依托于底層物理網(wǎng)絡(luò)層建立的一層虛擬化網(wǎng)絡(luò),也就是說我們把傳統(tǒng)的物理網(wǎng)絡(luò)經(jīng)過部分調(diào)整之后,通過邏輯抽象的方式建立了一套虛擬的傳輸通道。那么大家可能有一個問題:“在這張?zhí)摂M網(wǎng)絡(luò)當(dāng)中,我們?nèi)绾瓮瓿蓴?shù)據(jù)傳輸?”

既然建立了虛擬網(wǎng)絡(luò)通道,那么應(yīng)用傳輸?shù)臄?shù)據(jù)報文就必須是以虛擬網(wǎng)絡(luò)可以識別的數(shù)據(jù)報文為基礎(chǔ)進(jìn)行數(shù)據(jù)報文的發(fā)送和傳輸,同時必須遵照虛擬網(wǎng)絡(luò)當(dāng)中的通道控制標(biāo)準(zhǔn)來傳輸。但是報文的物理傳輸過程我們又不得不依靠傳統(tǒng)物理網(wǎng)絡(luò)來實(shí)現(xiàn),這樣的話就涉及到報文的封裝和解封、邏輯通道的維護(hù)、數(shù)據(jù)的邏輯轉(zhuǎn)發(fā)和物理轉(zhuǎn)發(fā)等問題。這就涉及到Overlay網(wǎng)絡(luò)的三類核心元素:

1.邊緣設(shè)備:與虛擬網(wǎng)絡(luò)直接關(guān)聯(lián)的網(wǎng)絡(luò)設(shè)備,數(shù)據(jù)報文的封裝/解封場所,同時它也是形成虛擬網(wǎng)絡(luò)的物理節(jié)點(diǎn),如圖中所示的物理交換機(jī)(必須是支持Overlay協(xié)議的交換機(jī))。

2.控制平面:框架當(dāng)中的虛擬實(shí)體,負(fù)責(zé)虛擬網(wǎng)絡(luò)傳輸當(dāng)中的服務(wù)發(fā)現(xiàn)、地址通告和映射、虛擬網(wǎng)絡(luò)通道建立和維護(hù)等,如圖中虛擬層當(dāng)中的控制流。

3.數(shù)據(jù)平面:框架當(dāng)中的虛擬實(shí)體,主要負(fù)責(zé)數(shù)據(jù)報文在虛擬層的轉(zhuǎn)發(fā),如圖中虛擬層的數(shù)據(jù)流。

1.2 Overlay網(wǎng)絡(luò)傳輸?shù)幕疽?guī)則

傳統(tǒng)網(wǎng)絡(luò)在數(shù)據(jù)傳輸?shù)臅r候,遵循的基本規(guī)則就是網(wǎng)絡(luò)的七層模型。也就是說數(shù)據(jù)需要經(jīng)過源的封包和目的端的解包過程,封包的時候是從應(yīng)用層信息逐步封裝到物理層,解包的時候是從物理層分解到應(yīng)用層。在物理網(wǎng)絡(luò)環(huán)境當(dāng)中的基本尋址規(guī)則是靠IP地址信息和MAC地址信息來進(jìn)行路由轉(zhuǎn)發(fā)。那么在Overlay網(wǎng)絡(luò)當(dāng)中,它也是會遵循這一基本規(guī)則,但是區(qū)別在哪里呢?

2.webp.jpg

圖1.2 Overlay&傳統(tǒng)物理網(wǎng)絡(luò)架構(gòu)

以VXLAN為例,我們結(jié)合圖1.2來看其基本的傳輸規(guī)則。首先我們來看Overlay網(wǎng)絡(luò)的邊緣設(shè)備ABC三個點(diǎn),這三個點(diǎn)是支撐Overlay虛擬網(wǎng)絡(luò)的核心設(shè)備,我們稱之為VTEP。服務(wù)器的數(shù)據(jù)包在經(jīng)過這些邊緣設(shè)備的時候,會對數(shù)據(jù)包進(jìn)行二次封裝,會把發(fā)送端VTEP和目的端VTEP的地址或標(biāo)識信息封裝到數(shù)據(jù)包,然后通過VTEP的控制平面將數(shù)據(jù)在兩個VTEP之間完成傳輸,然后再目的端的VTEP上將數(shù)據(jù)包再進(jìn)行解封,最終發(fā)送到目的服務(wù)器上。這里大家可能會有幾個問題:

1.如果是L3的傳輸,這么做不是多此一舉么?

2.如果是L2的傳輸,源端VTEP如何知道目的MAC、IP對應(yīng)的VTEP信息?

3.VTEP之間的傳輸不也得依賴物理網(wǎng)絡(luò)么?它是如何從源端傳遞到目的端的?

首先,針對第一個問題,如果是L3的傳輸,這么做確實(shí)有些多此一舉,所以源端VTEP會判斷是否是真實(shí)的L3傳輸,如果是的話,那么可以拋開VTEP信息,按照傳統(tǒng)方式傳輸。

接著,針對第二個問題,所有VTEP節(jié)點(diǎn)所轄設(shè)備的MAC信息都會在VTEP上有保留,同時其他VTEP上的MAC地址映射信息也會相互同步過來,所以一旦獲取數(shù)據(jù)包中目的地址信息,VTEP就可以判斷目的地屬于哪一個VTEP管轄范圍,然后就可以通過控制器轉(zhuǎn)發(fā)。

最后,從一個VTEP到另外VTEP的傳輸,完全是靠著VTEP本身的IP、MAC地址信息來進(jìn)行傳輸。

可見,無論是L2還是L3的傳輸,均涉及到查表轉(zhuǎn)發(fā)、報文的解封裝和封裝操作。從轉(zhuǎn)發(fā)效率和執(zhí)行性能來看,都只能在物理網(wǎng)絡(luò)設(shè)備(Overlay邊緣設(shè)備)上實(shí)現(xiàn),并且傳統(tǒng)設(shè)備無法支持,必須通過新的硬件形式來實(shí)現(xiàn)。

1.3 Overlay網(wǎng)絡(luò)的技術(shù)標(biāo)準(zhǔn)

目前在Overlay技術(shù)領(lǐng)域有如下三大技術(shù)路線正在討論:

(1).VXLAN

VXLAN是將以太網(wǎng)報文封裝在UDP傳輸層上的一種隧道轉(zhuǎn)發(fā)模式。為了使VXLAN充分利用承載網(wǎng)絡(luò)路由的均衡性,VXLAN通過將原始以太網(wǎng)數(shù)據(jù)頭(MAC、IP、四層端口號等)的HASH值作為UDP的號;采用24比特標(biāo)識L2網(wǎng)絡(luò)分段標(biāo)識,稱為VNI(VXLAN Network Identifier);未知目的、廣播、組播等網(wǎng)絡(luò)流量均被封裝為組播轉(zhuǎn)發(fā),物理網(wǎng)絡(luò)要求支持任意源組播(ASM)。

(2).NVGRE

NVGRE是借助通用路由封裝協(xié)議進(jìn)行報文封裝的一種隧道轉(zhuǎn)發(fā)模式。它使用GRE頭部的低24位作為租戶網(wǎng)絡(luò)標(biāo)識符(TNI)。為了提供描述帶寬利用率粒度的流,傳輸網(wǎng)絡(luò)需要使用GRE頭,但是這導(dǎo)致NVGRE不能兼容傳統(tǒng)負(fù)載均衡,這是NVGRE與VXLAN相比最大的區(qū)別也是最大的不足。NVGRE不需要依賴泛洪和IP組播進(jìn)行學(xué)習(xí),而是以一種更靈活的方式進(jìn)行廣播,但是這需要依賴硬件。NVGRE支持減小數(shù)據(jù)包MTU以減小內(nèi)部虛擬網(wǎng)絡(luò)數(shù)據(jù)包大小。

(3).STT

STT是借助TCP對報文封裝的一種隧道轉(zhuǎn)發(fā)模式,它改造了TCP的傳輸機(jī)制,是一種全新定義的無狀態(tài)機(jī)制,將TCP各字段意義重新定義,無需三次握手建立TCP連接,亦稱之為無狀態(tài)TCP。以太網(wǎng)數(shù)據(jù)封裝在無狀態(tài)TCP;采用64比特標(biāo)識L2網(wǎng)絡(luò)分段;通過將原始以太網(wǎng)數(shù)據(jù)頭(MAC、IP、L4端口號等)HASH值作為無狀態(tài)TCP的源端口號進(jìn)行網(wǎng)絡(luò)負(fù)載均衡。

這三種Overlay技術(shù),共同的技術(shù)模式都是將以太網(wǎng)報文進(jìn)行改造封裝承載到邏輯隧道層面進(jìn)行轉(zhuǎn)發(fā),差異的技術(shù)特性在于封裝和構(gòu)造隧道的不同,而底層均是IP轉(zhuǎn)發(fā)。VXLAN和STT對于現(xiàn)網(wǎng)設(shè)備對流量均衡要求較低,即負(fù)載鏈路負(fù)載分擔(dān)適應(yīng)性好,一般的網(wǎng)絡(luò)設(shè)備都能對L2-L4的數(shù)據(jù)內(nèi)容參數(shù)進(jìn)行鏈路聚合或等價路由的流量均衡。而NVGRE則需要網(wǎng)絡(luò)設(shè)備對GRE擴(kuò)展頭感知并對flow ID進(jìn)行哈希計(jì)算,需要硬件支持;以下是三種Overlay技術(shù)標(biāo)準(zhǔn)的具體差異描述。

3.png

表1.1 Overlay技術(shù)標(biāo)準(zhǔn)對比

2.Overlay網(wǎng)絡(luò)解決了什么問題?

通過以上分析,我們基本認(rèn)識了Overlay網(wǎng)絡(luò)的基本架構(gòu)和其基本的傳輸規(guī)則。那么大家一定非常想知道這種技術(shù)為什么會在云計(jì)算這個大的技術(shù)背景之下粉墨登場?它究竟能解決我們這個特定的歷史時期下的什么特定問題呢?其實(shí)總結(jié)起來有三個,都跟大規(guī)模的云數(shù)據(jù)中心應(yīng)用場景有關(guān)系。

2.1 Overlay網(wǎng)絡(luò)如何解決L2的空間局限性

雖然很多傳統(tǒng)行業(yè)仍然在使用物理機(jī)部署服務(wù),但是越來越多的計(jì)算任務(wù)已經(jīng)跑在虛擬機(jī)以及容器上上,Kuberentes目前已經(jīng)是容器編排領(lǐng)域的事實(shí)標(biāo)準(zhǔn)了。因?yàn)槿粘5母戮S護(hù)以及突發(fā)的故障,集群中的大規(guī)模虛擬機(jī)及容器遷移是比較常見的事情。

當(dāng)虛擬機(jī)所在的宿主機(jī)因?yàn)榫S護(hù)或者其他原因宕機(jī)時,當(dāng)前實(shí)例就需要遷移到其他的宿主機(jī)上,為了保證業(yè)務(wù)不中斷,我們需要保證遷移過程中的IP地址不變,因?yàn)镺verlay是在網(wǎng)絡(luò)層實(shí)現(xiàn)L2網(wǎng)絡(luò),所以多個物理機(jī)之間只要網(wǎng)絡(luò)層可達(dá)就能組建虛擬的局域網(wǎng),虛擬機(jī)或者容器遷移后仍然處于同一個二層網(wǎng)絡(luò),也就不需要改變IP地址,上千臺物理機(jī)組成的大集群使得集群內(nèi)的資源調(diào)度變得更加容易,我們可以通過虛擬機(jī)遷移來提高資源的利用率、容忍虛擬機(jī)的錯誤并提高節(jié)點(diǎn)的可移植性。

4.webp.jpg

圖2.1 Overlay網(wǎng)絡(luò)架構(gòu)下的虛擬機(jī)遷移

如上圖所示,遷移后的虛擬機(jī)與其他的虛擬機(jī)雖然位于不同的數(shù)據(jù)中心,但是由于上述兩個數(shù)據(jù)中心之間可以通過IP協(xié)議連通,所以遷移后的虛擬機(jī)仍然可以通過Overlay網(wǎng)絡(luò)與原集群的虛擬機(jī)組成L2網(wǎng)絡(luò),對于應(yīng)用來講,它對外發(fā)布的地址沒有變化,對于虛擬機(jī)來講,它只知道遠(yuǎn)方的主機(jī)與本地的主機(jī)是可以組成L2互通局域網(wǎng)的,是可以做VMotion的。但是,真正的數(shù)據(jù)遷移確在底層經(jīng)歷了傳統(tǒng)網(wǎng)絡(luò)設(shè)備的L3傳輸。無論底層做了什么樣的傳輸轉(zhuǎn)換,只要上層協(xié)議達(dá)到應(yīng)用要求的遷移條件即可。這樣跨地域的L2資源遷移就不再成為不可解決的難題了。沒有這種技術(shù)的支撐,恐怕就算是裸光纖連接也解決不了這個問題,畢竟光纖的距離是受限的。

2.2 Overlay網(wǎng)絡(luò)如何解決網(wǎng)絡(luò)規(guī)模受限

Kuberentes官方支持的最大集群為5000節(jié)點(diǎn),通常每個節(jié)點(diǎn)上會有很多容器,所以整個集群的資源規(guī)??梢赃_(dá)到幾萬甚至幾十萬。當(dāng)某個容器向集群中發(fā)送ARP請求,集群中的全部容器都會收到ARP請求,這時會帶來極高的網(wǎng)絡(luò)負(fù)載,傳統(tǒng)網(wǎng)絡(luò)技術(shù)是無法容忍這種規(guī)模的網(wǎng)絡(luò)請求。在使用VxLAN搭建的Overlay網(wǎng)絡(luò)中,網(wǎng)絡(luò)會將發(fā)送的數(shù)據(jù)重新封裝成IP數(shù)據(jù)包,這樣網(wǎng)絡(luò)只需要知道不同VTEP的MAC地址,由此可以將MAC地址表項(xiàng)中的幾十萬條數(shù)據(jù)降低到幾千條,ARP請求也只會在集群中的VTEP之間擴(kuò)散,遠(yuǎn)端的VTEP將數(shù)據(jù)拆包后也僅會在本地廣播,不會影響其他的VTEP,雖然這對于集群中的網(wǎng)絡(luò)設(shè)備仍然有較高的要求,但是已經(jīng)極大地降低了核心網(wǎng)絡(luò)設(shè)備的壓力。

另外,在L2網(wǎng)絡(luò)環(huán)境下,數(shù)據(jù)流均需要通過明確的網(wǎng)絡(luò)尋址以保證準(zhǔn)確到達(dá)目的地,因此網(wǎng)絡(luò)設(shè)備的MAC地址表,成為決定了云計(jì)算環(huán)境下虛擬機(jī)的規(guī)模的上限,并且因?yàn)楸眄?xiàng)并非百分之百的有效性,使得可用的虛機(jī)數(shù)量進(jìn)一步降低,特別是對于低成本的接入設(shè)備而言,因其表項(xiàng)一般規(guī)格較小,限制了整個云計(jì)算數(shù)據(jù)中心的虛擬機(jī)數(shù)量。使用了Overlay技術(shù)之后,這個MAC地址表的存儲轉(zhuǎn)移到了VTEP設(shè)備之上,雖然核心或網(wǎng)關(guān)設(shè)備的MAC與ARP規(guī)格會隨著虛擬機(jī)增長也面臨挑戰(zhàn),但對于此層次設(shè)備能力而言,大規(guī)格是不可避免的業(yè)務(wù)支撐要求。減小接入設(shè)備規(guī)格壓力的做法可以是分離網(wǎng)關(guān)能力,采用多個網(wǎng)關(guān)來分擔(dān)虛機(jī)的終結(jié)和承載。

2.3 Overlay網(wǎng)絡(luò)如何解決網(wǎng)絡(luò)隔離問題

大規(guī)模的數(shù)據(jù)中心往往都會對外提供云計(jì)算服務(wù),同一個物理集群可能會被拆分成多個小塊分配給不同的租戶,因?yàn)長2網(wǎng)絡(luò)的數(shù)據(jù)幀可能會進(jìn)行廣播,所以出于安全的考慮這些不同的租戶之間需要進(jìn)行網(wǎng)絡(luò)隔離,避免租戶之間的流量互相影響甚至惡意攻擊。當(dāng)前的主流網(wǎng)絡(luò)隔離技術(shù)為VLAN,在大規(guī)模虛擬化環(huán)境部署會有兩大限制:

首先,VLAN數(shù)量在標(biāo)準(zhǔn)定義中只有12個比特單位,即可用的數(shù)量為4000個左右,這樣的數(shù)量級對于公有云或大型虛擬化云計(jì)算應(yīng)用而言微不足道。其次,VLAN技術(shù)當(dāng)前為靜態(tài)配置型技術(shù)(只有EVB/VEPA的802.1Qbg技術(shù)可以在接入層動態(tài)部署VLAN,但也主要是在交換機(jī)接主機(jī)的端口為常規(guī)部署,上行口依然為所有VLAN配置通過),這樣使得整個數(shù)據(jù)中心的網(wǎng)絡(luò)幾乎為所有VLAN被允許通過,導(dǎo)致未知目的廣播數(shù)據(jù)會在整網(wǎng)泛濫,無節(jié)制消耗網(wǎng)絡(luò)交換能力與帶寬。

如果采用了Overlay網(wǎng)絡(luò)技術(shù),那么就會避免上述問題,以VXLAN為例:

首先,VxLAN會使用24比特的VNI表示虛擬網(wǎng)絡(luò)個數(shù),總共可以表示16,777,216個虛擬網(wǎng)絡(luò),遠(yuǎn)遠(yuǎn)超過了VLAN的4000個,這個數(shù)量足以滿足今天云計(jì)算數(shù)據(jù)中心的大規(guī)模集群要求。其次,VXLAN在L2傳輸?shù)臅r候是在VTEP節(jié)點(diǎn)把數(shù)據(jù)進(jìn)行封裝,使得更多的L2廣播在VTEP節(jié)點(diǎn)處轉(zhuǎn)化為有目的的L3傳輸,從而避免了無節(jié)制的網(wǎng)絡(luò)資源消耗。既滿足了大規(guī)模集群網(wǎng)絡(luò)隔離問題,同時也提高了這種情況下的網(wǎng)絡(luò)傳輸安全性。

3.Overlay網(wǎng)絡(luò)技術(shù)的缺陷

任何事物都不可能是完美的,Overlay技術(shù)也是一樣。

我們從Overlay技術(shù)的原理基本可以判斷,Overlay網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)相比而言,性能可能會是它的問題所在,因?yàn)镺verlay網(wǎng)絡(luò)無論是哪一種技術(shù)標(biāo)準(zhǔn),都會經(jīng)歷數(shù)據(jù)包再次封裝和再次解封的問題,這個無疑會給數(shù)據(jù)傳輸帶來性能上的延時。圖3.1是我們截取到的試驗(yàn)結(jié)果:

5.webp.jpg

圖3.1 VXLAN性能對比

上述圖中表示的是在VMware環(huán)境當(dāng)中,默認(rèn)網(wǎng)絡(luò)配置下的虛擬機(jī)和VXLAN配置下的虛擬機(jī)傳輸指標(biāo)的對比情況,從圖中試驗(yàn)結(jié)果判斷,在VXLAN環(huán)境下,無論虛擬機(jī)如何變化,其傳輸?shù)耐掏铝慷紩陀谖覀冋>W(wǎng)絡(luò)配置下的指標(biāo)。

在我們的企業(yè)IT環(huán)境當(dāng)中,各種類型的應(yīng)用都會存在,有的對網(wǎng)絡(luò)性能要求非常高,例如金融行業(yè)的交易型數(shù)據(jù)庫集群,不同集群節(jié)點(diǎn)之間的數(shù)據(jù)交互量從數(shù)據(jù)大小和傳輸頻率等各方面都超乎一般的應(yīng)用,尤其是鎖信息、數(shù)據(jù)緩存塊、心跳信息都是直接影響數(shù)據(jù)庫運(yùn)行的關(guān)鍵因素。因此我們在應(yīng)用VXLAN的時候也需要考慮到它的不足之處,選擇合適的應(yīng)用場景。

4.總結(jié)展望

通過本文第1、2節(jié)的分析,我們了解到Overlay網(wǎng)絡(luò)技術(shù)的基本框架、數(shù)據(jù)傳輸原理以及基本的技術(shù)標(biāo)準(zhǔn),同時也了解了Overlay網(wǎng)絡(luò)技術(shù)流行的根本原因和必然趨勢。通過第3節(jié)的分析,我們也了解到Overlay技術(shù)本身的一些缺陷。那么相信在應(yīng)用選擇的過程當(dāng)中,大家可能會更準(zhǔn)確把握。但是隨著技術(shù)的發(fā)展以及企業(yè)的應(yīng)用經(jīng)驗(yàn)豐富,如何通過改進(jìn)的方式或者是架構(gòu)的調(diào)整,避免其必然的劣勢,發(fā)揮其天然的優(yōu)勢是我們后續(xù)需要討論的問題,也是我們希望看到的內(nèi)容。

THEEND

最新評論(評論僅代表用戶觀點(diǎn))

更多
暫無評論