VXLAN和NVGRE能解決云網(wǎng)絡(luò)VLAN的不足嗎?
虛擬化和云有各種各樣的網(wǎng)絡(luò)問(wèn)題,但是最令人沮喪的是在復(fù)雜的虛擬環(huán)境里缺乏有效的VLAN,造成數(shù)據(jù)中心之間延伸遠(yuǎn)距離網(wǎng)絡(luò)片段也困難重重。
要解決這些問(wèn)題,VMware和微軟采取了封裝和隧道2大策略,分別是:VXLAN和NVGRE。
VXLAN和NVGRE都使用封裝和隧道方式來(lái)創(chuàng)建大量的VLAN子網(wǎng),這些子網(wǎng)可以擴(kuò)展到2層和3層網(wǎng)絡(luò)。這是為了解決IEEE802.1Q定義的數(shù)量有限的VLAN,實(shí)現(xiàn)云和專(zhuān)有網(wǎng)絡(luò)中共享負(fù)載均衡的多租賃網(wǎng)絡(luò)。
如果VXLAN和NVGRE都采取相同的措施,哪個(gè)更好?或者它們都能正常使用嗎?這沒(méi)有統(tǒng)一答案。
VXLAN標(biāo)準(zhǔn):擴(kuò)展VLAN,支持遠(yuǎn)距離VM遷移
VMware的VXLAN是為了實(shí)現(xiàn)多租戶(hù)云網(wǎng)絡(luò)所需要的遠(yuǎn)距離分割支持, 它使用一個(gè)名為VXLAN網(wǎng)絡(luò)標(biāo)識(shí)符(VNI)的24位標(biāo)識(shí)符,將與應(yīng)用程序關(guān)聯(lián)的VLAN分組到一個(gè)片段中,來(lái)分離應(yīng)用程序數(shù)據(jù)。這可以使虛擬機(jī)在多租戶(hù)的數(shù)據(jù)中心間進(jìn)行遷移。
虛擬機(jī)軟件不需要修改就能夠在VXLAN環(huán)境中運(yùn)行。虛擬機(jī)會(huì)創(chuàng)建與非VXLAN和非虛擬環(huán)境相同的數(shù)據(jù)包。在VXLAN環(huán)境里,數(shù)據(jù)包被封裝在一個(gè)外在以太網(wǎng)數(shù)據(jù)包中,它帶有目標(biāo)服務(wù)器或轉(zhuǎn)發(fā)數(shù)據(jù)包的路由器的目標(biāo)MAC 。然而,在VXLAN環(huán)境里,虛擬機(jī)間通信需要將廣播數(shù)據(jù)包用通信虛擬機(jī)所在的VXLAN片段發(fā)到關(guān)聯(lián)IP多路廣播分組。
虛擬機(jī)也需要進(jìn)行VXLAN環(huán)境以外的通信,這種情況不需要對(duì)源虛擬機(jī)或目標(biāo)設(shè)備做修改。VXLAN網(wǎng)關(guān)會(huì)取下VXLAN和UDP的頭信息,將這個(gè)數(shù)據(jù)包轉(zhuǎn)發(fā)到虛擬機(jī)所發(fā)數(shù)據(jù)包的目標(biāo)MAC上。
VXLAN標(biāo)準(zhǔn)看起來(lái)代表著虛擬網(wǎng)絡(luò)天堂,但是SearchNetworking.com的Fast Packet博主Ivan Pepelnjak持懷疑態(tài)度。在他的Fast Packet 博客中,Pepelnjak提出了嚴(yán)肅的問(wèn)題,網(wǎng)絡(luò)專(zhuān)業(yè)人員在承認(rèn)這項(xiàng)技術(shù)前應(yīng)該先問(wèn)下自己:是否真正需要VXLAN,他建議很多人根本不需要VXLAN。
Pepelnjak還指出了VXLAN的不足之處,包括它在如交換機(jī),負(fù)載均衡器或防火墻等物理設(shè)備的環(huán)境內(nèi)缺乏有效通信。在任何IP網(wǎng)絡(luò)的VXLAN里, IP多路廣播的2層網(wǎng)絡(luò)洪泛都必須進(jìn)行這類(lèi)通信。
和VXLAN標(biāo)準(zhǔn)一樣,微軟的NVGRE標(biāo)準(zhǔn)提案都使用封裝策略來(lái)創(chuàng)建大量的VLAN子網(wǎng),這些子網(wǎng)可以擴(kuò)展到分散的數(shù)據(jù)中心和2、3層網(wǎng)絡(luò)。二者都旨在實(shí)現(xiàn)在云和專(zhuān)有網(wǎng)絡(luò)中共享負(fù)載均衡的多租賃網(wǎng)絡(luò)。然而它們還是有一些區(qū)別的。
一些NVGRE標(biāo)準(zhǔn)的重要特點(diǎn)包括指定24位的租賃網(wǎng)絡(luò)標(biāo)識(shí)符(TNI),NVGRE解決了一些和多租戶(hù)網(wǎng)絡(luò)相關(guān)的問(wèn)題。并且使用GRE來(lái)創(chuàng)建一個(gè)獨(dú)立的虛擬2層網(wǎng)絡(luò),限制物理2層網(wǎng)絡(luò)或擴(kuò)展超過(guò)子網(wǎng)邊界。NVGRE終端通過(guò)在GRE頭插入INT指示符的方式分隔各個(gè)TNI。
兩個(gè)標(biāo)準(zhǔn)的不同之處在于存儲(chǔ)目標(biāo)地址的位置。VXLAN標(biāo)準(zhǔn)描述了數(shù)據(jù)包是如何通過(guò)通道尋找到目標(biāo)終端。而NVGRE標(biāo)準(zhǔn)將定位目標(biāo)的方法延遲到后續(xù)版本。
兩種提案都認(rèn)為負(fù)載均衡是實(shí)現(xiàn)有效運(yùn)營(yíng)的必要條件,但是VXLAN可以隨機(jī)分配端口號(hào)來(lái)分散負(fù)載,而NVGRE使用GRE關(guān)鍵域中的保留8位。
關(guān)于NVGRE、VXLAN,微軟做了什么?
博主Martìn Casado認(rèn)為,VXLAN和NVGRE還是有發(fā)展空間的。但他同時(shí)指出沒(méi)有哪個(gè)標(biāo)準(zhǔn)完全成熟——網(wǎng)絡(luò)虛擬化沒(méi)有完整的答案。目前兩種標(biāo)準(zhǔn)的多點(diǎn)傳送功能有限,并且只支持2層的邏輯網(wǎng)絡(luò)。隨著標(biāo)準(zhǔn)的成熟,它們非常有可能提高控制能力。
【編輯推薦】