在以往IT建設中,硬件服務(wù)器上運行的是虛擬層的計算,物理網(wǎng)絡(luò )為了與虛擬服務(wù)器對接,需要網(wǎng)絡(luò )自己進(jìn)行調整,以便和新的計算層對接(如圖1所示)。Overlay是在傳統網(wǎng)絡(luò )上虛擬出一個(gè)虛擬網(wǎng)絡(luò )來(lái),傳統網(wǎng)絡(luò )不需要在做任何適配,這樣物理層網(wǎng)絡(luò )只對應物理層的計算(物理機、虛擬化層管理網(wǎng)),虛擬的網(wǎng)絡(luò )只對應虛擬計算(虛擬機的業(yè)務(wù)IP),如圖2所示。
圖1 物理網(wǎng)絡(luò )引入數據中心技術(shù)來(lái)適配虛擬計算
圖2 物理網(wǎng)絡(luò )通過(guò)承接虛擬網(wǎng)絡(luò )來(lái)適配虛擬計算
Overlay的技術(shù)路線(xiàn),其實(shí)是從架構上對數據中心的建設模式進(jìn)行了顛覆,對物理設備的要求降至最低,業(yè)務(wù)完全定義在層疊網(wǎng)絡(luò )上。那么,這是否意味著(zhù)將來(lái)數據中心使用Overlay網(wǎng)絡(luò )不需要硬件支持而只需要軟件定義就足夠了呢?答案無(wú)疑是否定的。
以下討論Overlay網(wǎng)絡(luò )與物理網(wǎng)絡(luò )的依存關(guān)系。由于VXLAN(Virtual eXtensible LAN)技術(shù)是當前最為主流的Overlay標準,以下VXLAN技術(shù)為代表進(jìn)行具體描述。
1. 報文的封裝與解封裝
VXLAN的核心在于承載于物理網(wǎng)絡(luò )上的隧道技術(shù),這就意味著(zhù)要對報文進(jìn)行封裝和解封裝,因此需要硬件來(lái)加速處理。
在VXLAN網(wǎng)絡(luò )中,用于建立VXLAN隧道的端點(diǎn)設備稱(chēng)為VTEP(VXLAN Tunneling End Point,VXLAN隧道終結點(diǎn)),封裝和解封裝在VTEP節點(diǎn)上進(jìn)行。
在云數據中心,部分業(yè)務(wù)是不適合進(jìn)行虛擬化的(如小機服務(wù)器,高性能數據庫服務(wù)器),這些服務(wù)器會(huì )直接與物理交換機互聯(lián),而他們又必須與對應租戶(hù)/業(yè)務(wù)的VXLAN網(wǎng)絡(luò )互通,此時(shí)就必須要求與其互聯(lián)的硬件交換機也能支持VXLAN協(xié)議,以接入VXLAN網(wǎng)絡(luò )。
圖3 Overlay網(wǎng)絡(luò )的三種構建模式
考慮到服務(wù)器接入的可以是虛擬交換機,也可以是物理交換機,因此存在三種不同的構建模式(如圖3所示):其中網(wǎng)絡(luò )Overlay方案中,所有終端均采用物理交換機作為VTEP節點(diǎn);主機Overlay方案中,所有終端均采用虛擬交換機作為VTEP節點(diǎn);混合Overlay方案中,既有物理交換機接入,又有虛擬交換機接入,且軟件VTEP和硬件VTEP之間可以基于標準協(xié)議互通。
在網(wǎng)絡(luò )Overlay方案和混合Overlay方案中,都需要有物理交換機設備支持VXLAN協(xié)議棧,并能與虛擬交換機構建的VTEP互通。由于在實(shí)際組網(wǎng)環(huán)境中,服務(wù)器種類(lèi)很多,高吞吐高性能要求的業(yè)務(wù)一般都采用單獨物理服務(wù)器甚至小機的硬件環(huán)境,而非虛擬化的x86服務(wù)器,這就沒(méi)法使用vSwitch來(lái)接入VXLAN網(wǎng)絡(luò ),只能讓支持VXLAN的物理交換機來(lái)接入了。
2. 組播協(xié)議傳播
VXLAN網(wǎng)絡(luò )的MAC表與隧道終端的綁定關(guān)系要用組播協(xié)議傳播,而大規格組播協(xié)議離不開(kāi)物理網(wǎng)絡(luò )設備的支持。
按照VXLAN的標準,每一個(gè)VTEP都需要了解其接入的終端MAC地址,同時(shí)還需要知道整網(wǎng)(該VXLAN實(shí)例中)其他VTEP下所有的終端MAC地址。只有這樣,在本地的VTEP收到報文后需要轉發(fā)時(shí),才能根據目的MAC查詢(xún)到需要送到遠端的目的VTEP那里。
按照IETF中對VXLAN網(wǎng)絡(luò )的定義,負責在網(wǎng)絡(luò )中傳播MAC地址和VTEP對應關(guān)系的機制,正是依托于物理網(wǎng)絡(luò )中的組播協(xié)議。VTEP將本地的MAC地址表利用組播協(xié)議在整個(gè)組播中傳播,從而使得整網(wǎng)中所有組播成員,也就是其他VTEP都知道本地的MAC地址表。當VTEP下的終端接入情況有所更改,如新增了MAC地址或者減少了MAC地址,也需要利用組播協(xié)議通知同一個(gè)實(shí)例下的所有VTEP。另外,當本地VTEP找不到目的MAC處于哪一個(gè)遠端VTEP時(shí),也需要發(fā)送組播報文來(lái)查找目的MAC主機所屬的遠端VTEP。
圖4 多個(gè)VTEP通過(guò)物理網(wǎng)絡(luò )組播傳遞MAC表信息
如圖4所示,多個(gè)VTEP需要在整網(wǎng)中傳遞VTEP下MAC地址信息,邏輯傳遞路線(xiàn)如綠色虛線(xiàn)所示。由于需要進(jìn)行邏輯上的Full-Mesh連接,連接邏輯線(xiàn)路會(huì )達到N平方量級,因此實(shí)際組網(wǎng)中,VXLAN利用了物理網(wǎng)絡(luò )的組播組,在建立好的組播組中加入VXLAN中所有VTEP成員,傳遞VTEP變更信息。在多用戶(hù)多業(yè)務(wù)情況下,組播組要求與VXLAN數量息息相關(guān)。由于VXLAN網(wǎng)絡(luò )規模的不斷拓展(最大可達到16M個(gè)VXLAN網(wǎng)絡(luò )),所需要的組播條目數會(huì )不斷增加,這實(shí)際上對于物理網(wǎng)絡(luò )承載組播處理能力和規格提出了要求。
由于標準VXLAN架構下使用組播協(xié)議,對物理網(wǎng)絡(luò )組播數規格要求較大,因此H3C VXLAN解決方案基于SDN架構,通過(guò)引入全網(wǎng)的SDN Controller來(lái)實(shí)現VXLAN的管理和維護,使得VTEP之間的信息可以通過(guò)Controller來(lái)進(jìn)行反射(如圖5所示)。這樣,VTEP的MAC地址表映射關(guān)系不再通過(guò)組播向全網(wǎng)其他VTEP傳達,而是統一上報給控制器,由控制器統一下發(fā)給需要接受此消息的其他VTEP,由具體的VTEP執行轉發(fā)機制。
圖5 多個(gè)VTEP通過(guò)SDN Controller傳遞MAC表信息
可見(jiàn),在SDN架構下,硬件形態(tài)的VTEP需要能夠支持集中控制器下發(fā)的業(yè)務(wù)控制信息,同時(shí)基于Openflow進(jìn)行流表轉發(fā)。而傳統硬件交換機不能支持上述特性,必須由新硬件設備來(lái)執行和完成的。
3. VXLAN網(wǎng)絡(luò )互通
在傳統L2網(wǎng)絡(luò )中,報文跨VLAN轉發(fā),需要借助三層設備來(lái)完成不同VLAN之間的互通問(wèn)題。VXLAN網(wǎng)絡(luò )與傳統網(wǎng)絡(luò )、以及VXLAN網(wǎng)絡(luò )的互通,必須有網(wǎng)絡(luò )設備的支持。
VXLAN網(wǎng)絡(luò )框架中定義了兩種網(wǎng)關(guān)單元。
VXLAN三層網(wǎng)關(guān)。用于終結VXLAN網(wǎng)絡(luò ),將VXLAN報文轉換成傳統三層報文送至IP網(wǎng)絡(luò ),適用于VXLAN網(wǎng)絡(luò )內服務(wù)器與遠端終端之間的三層互訪(fǎng);同時(shí)也用作不同VXLAN網(wǎng)絡(luò )互通。如圖6所示,當服務(wù)器訪(fǎng)問(wèn)外部網(wǎng)絡(luò )時(shí),VXLAN三層網(wǎng)關(guān)剝離對應VXLAN報文封裝,送入IP網(wǎng)絡(luò );當外部終端訪(fǎng)問(wèn)VXLAN內的服務(wù)器時(shí),VXLAN根據目的IP地址確定所屬VXLAN及所屬的VTEP,加上對應的VXLAN報文頭封裝進(jìn)入VXLAN網(wǎng)絡(luò )。VXLAN之間的互訪(fǎng)流量與此類(lèi)似,VXLAN網(wǎng)關(guān)剝離VXLAN報文頭,并基于目的IP地址確定所屬VXLAN及所屬的VTEP,重新封裝后送入另外的VXLAN網(wǎng)絡(luò )。
圖6 VXLAN網(wǎng)絡(luò )通過(guò)三層網(wǎng)關(guān)與傳統網(wǎng)絡(luò )互連
VXLAN二層網(wǎng)關(guān)。用于終結VXLAN網(wǎng)絡(luò ),將VXLAN報文轉換成對應的傳統二層網(wǎng)絡(luò )送到傳統以太網(wǎng)絡(luò ),適用于VXLAN網(wǎng)絡(luò )內服務(wù)器與遠端終端或遠端服務(wù)器的二層互聯(lián)。如在不同網(wǎng)絡(luò )中做虛擬機遷移時(shí),當業(yè)務(wù)需要傳統網(wǎng)絡(luò )中服務(wù)器與VXLAN網(wǎng)絡(luò )中服務(wù)器在同一個(gè)二層中,此時(shí)需要使用VXLAN二層網(wǎng)關(guān)打通VXLAN網(wǎng)絡(luò )和二層網(wǎng)絡(luò )。如圖7所示,VXLAN 10網(wǎng)絡(luò )中的服務(wù)器要和IP網(wǎng)絡(luò )中VLAN100的業(yè)務(wù)二層互通,此時(shí)就需要通過(guò)VXLAN的二層網(wǎng)關(guān)進(jìn)行互聯(lián)。VXLAN10的報文進(jìn)入IP網(wǎng)絡(luò )的流量,剝掉VXLAN的報文頭,根據VXLAN的標簽查詢(xún)對應的VLAN網(wǎng)絡(luò )(此處對應的是VLAN100),并據此在二層報文中加入VLAN的802.1Q報文送入IP網(wǎng)絡(luò );相反VLAN100的業(yè)務(wù)流量進(jìn)入VXLAN也需要根據VLAN獲知對應的VXLAN網(wǎng)絡(luò )編號,根據目的MAC獲知遠端VTEP的IP地址,基于以上信息進(jìn)行VXLAN封裝后送入對應的VXLAN網(wǎng)絡(luò )。
圖7 VXLAN網(wǎng)絡(luò )通過(guò)二層網(wǎng)關(guān)與傳統二層網(wǎng)絡(luò )互通
可見(jiàn),無(wú)論是二層還是三層網(wǎng)關(guān),均涉及到查表轉發(fā)、VXLAN報文的解封裝和封裝操作。從轉發(fā)效率和執行性能來(lái)看,都只能在物理網(wǎng)絡(luò )設備上實(shí)現,并且傳統設備無(wú)法支持,必須通過(guò)新的硬件形式來(lái)實(shí)現。
結束語(yǔ)
Overlay由于其簡(jiǎn)單、一致的解決問(wèn)題方法,加上重新定義的網(wǎng)絡(luò )可以進(jìn)行軟件定義,已經(jīng)成為數據中心網(wǎng)絡(luò )最炙手可熱的技術(shù)方案。然而,它并不是一張完全由軟件定義的網(wǎng)絡(luò ),Overlay網(wǎng)絡(luò )解決方案必定是一種軟硬結合的方案,無(wú)論是從接入層VTEP混合組網(wǎng)的組網(wǎng)要求、組播或SDN控制層協(xié)議的支持,還是VXLAN網(wǎng)絡(luò )與傳統網(wǎng)絡(luò )的互通來(lái)看,都需要硬件積極的配合和參與,必須構建在堅實(shí)和先進(jìn)的物理網(wǎng)絡(luò )架構基礎上……