- 相關(guān)推薦
隧道和網(wǎng)絡(luò)虛擬化:NVGRE vs VXLAN
關(guān)于NVGRE和VXLAN隧道協(xié)議相信大家都不陌生,但是事實上隧道協(xié)議只是虛擬化網(wǎng)絡(luò)中的一部分,它并不提供實質(zhì)性的功能,只是定義不同虛擬機(jī)之間如何封裝、轉(zhuǎn)發(fā)數(shù)據(jù)包。本文想強(qiáng)調(diào)兩點:其一,NVGRE和VXLAN都是用三層協(xié)議封裝二層協(xié)議;其二,這兩項技術(shù)都解決了VLAN規(guī)模固定的問題,不再局限于4094個。隨著各種新技術(shù)的興起,一項標(biāo)準(zhǔn)已經(jīng)無法滿足需求,技術(shù)巨頭們爭先恐后的想讓自己的標(biāo)準(zhǔn)成為業(yè)內(nèi)統(tǒng)一的標(biāo)準(zhǔn),其中NVGRE和VXLAN就是典型的例子,那么這兩項技術(shù)的區(qū)別到底在哪里呢?
VXLAN
VXLAN主要是由Cisco推出的,VXLAN的包頭有一個24bit的ID段,即意味著1600萬個獨(dú)一無二的虛擬網(wǎng)段,這個ID通常是對UDP端口采取偽隨機(jī)算法而生成的(UDP端口是由該幀中的原始MAC Hash生成的)。這樣做的好處是可以保證基于5元組的負(fù)載均衡,保存VM之間數(shù)據(jù)包的順序,具體做法是將數(shù)據(jù)包內(nèi)部的MAC組映射到唯一的UDP端口組。將二層廣播被轉(zhuǎn)換成IP組播,VXLAN使用IP組播在虛擬網(wǎng)段中泛洪而且依賴于動態(tài)MAC學(xué)習(xí)。VXLAN封裝將數(shù)據(jù)包大小擴(kuò)展到50字節(jié),如下圖所示:
由于數(shù)據(jù)包比較大,所以VXLAN需要借助支持大型幀的傳輸網(wǎng)絡(luò)才能支持?jǐn)?shù)據(jù)包規(guī)模的擴(kuò)展。
NVGRE
NVGRE主要支持者是Microsoft。與VXLAN不同的是,NVGRE沒有采用標(biāo)準(zhǔn)傳輸協(xié)議(TCP/UDP),而是借助通用路由封裝協(xié)議(GRE)。NVGRE使用GRE頭部的低24位作為租戶網(wǎng)絡(luò)標(biāo)識符(TNI),與VXLAN一樣可以支持1600個虛擬網(wǎng)絡(luò)。為了提供描述帶寬利用率粒度的流,傳輸網(wǎng)絡(luò)需要使用GRE頭,但是這導(dǎo)致NVGRE不能兼容傳統(tǒng)負(fù)載均衡,這是NVGRE與VXLAN相比最大的區(qū)別也是最大的不足。為了提高負(fù)載均衡能力建議每個NVGRE主機(jī)使用多個IP地址,確保更多流量能夠被負(fù)載均衡。
NVGRE不需要依賴泛洪和IP組播進(jìn)行學(xué)習(xí),而是以一種更靈活的方式進(jìn)行廣播,但是這需要依賴硬件/供應(yīng)商。最后一個區(qū)別關(guān)于分片,NVGRE支持減小數(shù)據(jù)包最大傳輸單元以減小內(nèi)部虛擬網(wǎng)絡(luò)數(shù)據(jù)包大小,不需要要求傳輸網(wǎng)絡(luò)支持傳輸大型幀。
實驗
OVS(open Vswitch)可以支持這兩種隧道協(xié)議?梢詫崿F(xiàn)兩個虛擬機(jī)的簡單通信,在兩個主機(jī)上面分別運(yùn)行VM,并且在這個VM之間創(chuàng)建一個隧道。如果沒有GRE隧道,兩個VM就無法連接。在主機(jī)之間創(chuàng)建隧道的簡單步驟:
1、主機(jī)1配置如下:
ovs-vsctl add-br brgre
ovs-vsctl add-br brvm
ovs-vsctl add-port brgre eth0
ifconfig eth0 0
ifconfig brgre 192.168.1.100 netmask 255.255.255.0
route add default gw 192.168.1.1 brgre
ifconfig brvm 10.1.2.10 netmask 255.255.255.0
ovs-vsctl add-port brvm gre1 -- set interface gre1 type=gre options:remoteip=192.168.1.111
2、主機(jī)2配置如下:
ovs-vsctl add-br brgre
ovs-vsctl add-br brvm
ovs-vsctl add-port brgre eth0
ifconfig eth0 0
ifconfig brgre 192.168.1.111 netmask 255.255.255.0
route add default gw 192.168.1.1 brgre
ifconfig brvm 10.1.2.11 netmask 255.255.255.0
ovs-vsctl add-port brvm gre1 -- set interface gre1 type=gre options:remoteip=192.168.1.100
在每臺主機(jī)中創(chuàng)建2個橋,其中brvm用于仿真虛擬機(jī),另一個brgre用作與其他主機(jī)的做隧道(VTEP)連接。eth0連接brgre,brgre綁定IP用于實現(xiàn)隧道。為了簡化實驗,我將GRE隧道設(shè)置在同一子網(wǎng)中,當(dāng)然可以放于不同域中使仿真場景更真實。下面就可以進(jìn)行測試了,10.1.2.10和10.2.1.11應(yīng)該是可以ping通的,這兩個VM域通過隧道連接,同樣,也可以改成VXLAN隧道配置。
【隧道和網(wǎng)絡(luò)虛擬化:NVGRE vs VXLAN】相關(guān)文章:
日本留學(xué)VS美國留學(xué)09-13
綜合品牌VS行業(yè)品牌09-06
戲曲表演的虛擬手法10-08
網(wǎng)絡(luò)營銷標(biāo)準(zhǔn)化操作07-05
硬盤如何分區(qū)和格式化10-23
網(wǎng)絡(luò)營銷和推廣方法05-29
留學(xué)大國PK之澳洲VS新西蘭08-24