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















 
 
 

 
 
 
 