最近由微軟、Arista、英特爾、戴爾、惠普、Broadcom和Emulex向IETF提交的通用路由封裝(NVGRE)標(biāo)準(zhǔn)提案,和由思科、VMware、Citrix、紅帽、Arista和Broadcom提出的VXLAN標(biāo)準(zhǔn),實(shí)際上都使用封裝策略來(lái)創(chuàng)建大量的VLAN子網(wǎng),這些子網(wǎng)可以擴(kuò)展到分散的數(shù)據(jù)中心和2、3層網(wǎng)絡(luò)。二者都旨在實(shí)現(xiàn)在云和專有網(wǎng)絡(luò)中共享負(fù)載均衡的多租賃網(wǎng)絡(luò)。
NVGRE通過(guò)租賃網(wǎng)絡(luò)標(biāo)識(shí)符解決多租賃網(wǎng)絡(luò)問(wèn)題
一個(gè)大型的云可以支持?jǐn)?shù)以百計(jì)的租賃用戶,每個(gè)租賃用戶又可以同時(shí)運(yùn)行多個(gè)應(yīng)用,他們之間的流量都是相互隔離的。
目前,VLAN可以用來(lái)分隔流量,但是這種方法受限于幾個(gè)缺陷。例如,VLAN總是無(wú)法處理很多的容量分割需求。在一個(gè)大型的虛擬云環(huán)境中,每個(gè)應(yīng)用都是由多個(gè)VM中運(yùn)行的組件組成的,而每個(gè)應(yīng)用交互的VM流量都必須分別位于獨(dú)立的VLAN中。結(jié)果:所需要的VLAN總數(shù)量很容易超出IEEE 802.1Q VLAN定義的上限:4,094。
當(dāng)VM在物理服務(wù)器之間遷移時(shí),又會(huì)出現(xiàn)第二個(gè)問(wèn)題。VM遷移不得影響應(yīng)用程序,因此,2層協(xié)議的地址必須保持不變。針對(duì)這種情況,網(wǎng)絡(luò)必須重新配置,將VLAN擴(kuò)展到不同服務(wù)器,而這個(gè)過(guò)程很容易出錯(cuò)。
通過(guò)指定24位的租賃網(wǎng)絡(luò)標(biāo)識(shí)符(TNI),NVGRE解決了這些問(wèn)題。每個(gè)TNI都定義了一個(gè)虛擬的2層網(wǎng)絡(luò),最多支持1.6千萬(wàn)個(gè)網(wǎng)絡(luò)。
NVGRE創(chuàng)建了一個(gè)虛擬2層網(wǎng)絡(luò)
NVGRE是一個(gè)由RFC 2784定義和RFC 2890擴(kuò)展的通道協(xié)議,該協(xié)議提供了一種封裝方法,將數(shù)據(jù)包發(fā)送到2層或3層網(wǎng)絡(luò)目的地址。NVGRE提議使用GRE來(lái)創(chuàng)建一個(gè)獨(dú)立的虛擬2層網(wǎng)絡(luò),限制物理2層網(wǎng)絡(luò)或擴(kuò)展超過(guò)子網(wǎng)邊界。
每個(gè)TNI都與一個(gè)GRE通道相關(guān)聯(lián)。從通道終端發(fā)送的數(shù)據(jù)包會(huì)通過(guò)IP組播送往與同一個(gè)TNI相關(guān)的另一個(gè)終端。使用多播技術(shù)意味著通道可以擴(kuò)展到3層網(wǎng)絡(luò),將一個(gè)大型的廣播域劃分成多個(gè)較小的域,從而限制廣播流量。
NVGRE終端接收來(lái)自VM的以太網(wǎng)數(shù)據(jù)包,將它們封裝并通過(guò)GRE通道發(fā)送出去。終端會(huì)打開(kāi)接收的數(shù)據(jù)包,將它們分配給對(duì)應(yīng)的VM。雖然終端可能位于任意組件,但是一般情況下,它們都是在服務(wù)器的虛擬機(jī)管理程序中。
每個(gè)NVGRE終端都配置了一個(gè)或多個(gè)IP地址。每個(gè)IP地址叫做供應(yīng)商地址(PA)。VM的IP地址是客戶地址(CA)。為終端配置多個(gè)PA就可以實(shí)現(xiàn)負(fù)載均衡。但這個(gè)提案并沒(méi)有定義流量如何根據(jù)特定CA或負(fù)載均衡算法分配給某個(gè)PA。
通過(guò)NVGRE標(biāo)準(zhǔn)隔離租賃數(shù)據(jù)
NVGRE終端通過(guò)在GRE頭插入INT指示符的方式分隔各個(gè)TNI。TNI指示符是位于RFC 2890規(guī)定的關(guān)鍵域中。雖然該關(guān)鍵域定義為32位域,但是TNT會(huì)占用24位,其余8位為保留位。NVGRE不使用RFC定義的序列號(hào)。
封裝了數(shù)據(jù)包的NVGRE終端必須定義數(shù)據(jù)包發(fā)送的目標(biāo)地址。目前,NVGRE提議草案將這個(gè)問(wèn)題延遲到后續(xù)版本,它規(guī)定:“控制面板可以使用任意技術(shù)進(jìn)行配置、發(fā)現(xiàn)和分配策略信息”。
通過(guò)NVGRE將整個(gè)子網(wǎng)遷移到云中
雖然提案并沒(méi)有指定CA和PA地址的配置方法,但是它可以靜態(tài)、動(dòng)態(tài)或使用無(wú)狀態(tài)地址自動(dòng)配置方式來(lái)解決分配問(wèn)題。IPv4或IPv6都是可以使用的。CA能配置IPv4地址,同樣的,PA也能配置IPv6地址空間。
根據(jù)NVGRE提案,這個(gè)標(biāo)準(zhǔn)旨在讓企業(yè)能夠?qū)⒄麄€(gè)子網(wǎng)遷移到云中。子網(wǎng)的一部分可以遷移,而剩下的運(yùn)行在企業(yè)網(wǎng)絡(luò)中,這樣,VPN就可以將云連接到企業(yè)網(wǎng)絡(luò)中。
有效使用網(wǎng)絡(luò)需要在多個(gè)網(wǎng)絡(luò)路徑中分散流量。提案規(guī)定,諸如ECMP的技術(shù)可以與保留的8位GRE頭關(guān)鍵域一起使用,支持多路徑使用。這個(gè)提案并不包括實(shí)現(xiàn)負(fù)載均衡流的算法細(xì)節(jié)。另一個(gè)實(shí)現(xiàn)ECMP的方法是在服務(wù)器中分配多個(gè)PA。然后,交換機(jī)可以在PA的路由中分散傳輸流量。
NVGRE標(biāo)準(zhǔn)與VXLAN標(biāo)準(zhǔn)
很明顯,兩個(gè)提案都解決了相同的問(wèn)題:4094個(gè)VLAN無(wú)法支持多個(gè)云租賃和應(yīng)用程序。提案的其他主要相似點(diǎn)包括:
引入了新的24位標(biāo)識(shí)符
使用通道在網(wǎng)絡(luò)和子網(wǎng)邊界傳輸數(shù)據(jù)包
使用組播來(lái)連接網(wǎng)絡(luò)VM中運(yùn)行的應(yīng)用程序組件
這兩個(gè)提案的不同之處在于存儲(chǔ)目標(biāo)地址的位置。VXLAN提案詳細(xì)地描述了數(shù)據(jù)包是如何通過(guò)通道尋找到目標(biāo)終端。而NVGRE提案將定位目標(biāo)的方法延遲到后續(xù)版本。
兩種提案都認(rèn)為負(fù)載均衡是實(shí)現(xiàn)有效運(yùn)營(yíng)的必要條件。VXLAN解釋了如何通過(guò)隨機(jī)分配端口號(hào)來(lái)分散負(fù)載。NVGRE建議使用GRE關(guān)鍵域中的保留8位,但是沒(méi)有詳細(xì)介紹它們的使用方法。
總之,VXLAN更為全面。思科和VMware都發(fā)布了支持這個(gè)標(biāo)準(zhǔn)的產(chǎn)品。而NVGRE提案還需要進(jìn)一步完善,才能發(fā)布產(chǎn)品。