談到虛擬化,首先想到的一定是VMware,這是一家專門從事主機,尤其是服務器虛擬化技術研究的廠家。VMware也長期壟斷著主機虛擬化技術的市場,曾經占據高達90%的市場份額,隨著其它軟件廠家的進入,份額逐漸降低,但是依然是虛擬化技術的領導者。如今的虛擬化技術早已不再局限與服務器操作系統的虛擬化,包括應用軟件的虛擬,網絡的虛擬,存儲的虛擬等等,可以說虛擬化技術已經逐漸滲透到了數據中心的每個技術領域。除了服務器,VMware在網絡、存儲、安全等領域的虛擬化并不是強項,涌現出了不少新的虛擬化廠商,這也讓虛擬化市場充滿著競爭的火藥味,一些傳統的IT巨頭也加入到這個競爭之中。本文要講的就是虛擬化技術里的一個分類:主機網絡虛擬化技術,也就是通過服務器主機來實現網絡的虛擬化,這樣說起來可能讓人有些不解。其實大家都知道服務器都具有網卡,可以配置一些簡單的路由轉發表項,服務器廠商希望通過對服務器網絡功能進行優化,實現網絡虛擬化。
既然是主機網絡的虛擬化,其實就是要在服務器上實現網絡功能的虛擬化。提出這樣技術的主要是服務器廠商,它們希望借此技術,擴大服務器在數據中心里的影響力,從而弱化網絡設備的功能。當然網絡設備廠商不會答應,網絡廠商也有自己的虛擬化技術,突出強調的是硬件的實現,基于硬件的虛擬化,相比之下,主機網絡虛擬化技術則偏軟。這樣主機網絡虛擬化技術實現比較靈活,但是轉發效率低下,而網絡廠商實現的虛擬化則轉發效率高,但是不夠靈活,更多的要依賴于硬件工藝水平。不管怎樣,主機網絡虛擬化技術作為一種虛擬化技術將在相當長的時間內存在,下面就來詳細說一說主機網絡虛擬化技術的四大技術特點。
VXLAN
VXLAN(Virtual Extensible LAN)是有思科、VMware、Citrix、Broadcom等公司提出的網絡虛擬化技術,這些公司是目前在網絡領域、虛擬化領域技術最強的組合了,所以VXLAN是目前定義最全面,最接近實際應用的一種技術。VXLAN是將以太網報文封裝在UDP傳輸層上的一種隧道轉發模式,目的UDP端口號為4798,采用24比特標識二層網絡分段,在一個數據中心內VXLAN可以部署百萬個虛擬網。VXLAN對未知單播、廣播、組播等網絡流量均被封裝為組播轉發,物理網絡要求支持任意源組播。VXLAN數據包格式很容易在硬件中實現,所以它以后可以更緊密地與物理網絡設備集成,利用硬件轉發效率高的特點,通過硬件實現VXLAN。VXLAN利用了現有通用的UDP傳輸,成熟性最高,所以得到了數據中心普遍的認可,是目前最受關注的一種網絡虛擬化技術。
DOVE
DOVE(Distributed Overlay Virtual Ethernet)是由IBM提出來的分布式覆蓋虛擬以太網技術,它將讓工程師從管理程序主機抽象出物理網絡基礎設施,這樣他們就可以在軟件中進行網絡變更,而不需要在硬件中。當虛擬機在數據中心內和數據中心間遷移時,這些網絡實例將更好地管理和支持虛擬機。在IBM的DVS5000V產品中已經支持了DOVE部署。DOVE的協議定義幾乎和VXLAN一樣,這也讓DOVE可以支持任何VXLAN的底層網絡硬件。與VXLAN不同的是,DOVE在創建一個覆蓋時,不需要物理基礎設施組播運行,而VXLAN卻需要組播。數據中心沒有人愿意使用組播,因為組播會對網絡性能造成影響。DOVE可以在vSphere、KVM、Hyper-V中使用。如今IBM已經將中低端服務器出售給了聯想,芯片業務也想轉手,在這樣的背景下,DOVE的未來前景不是很明朗,沒有了IBM服務器傳統市場的優勢,DOVE要想獲得廣泛使用是比較困難的。
NVGRE
NVGRE(Network Virtualization using GRE)是由微軟、英特爾、戴爾、惠普等向IETF提交的通用路由封裝標準提案。NVGRE通過定義24位的租賃網絡標識符,可以支持1.6千萬個網絡。NVGRE使用GRE來創建一個獨立的虛擬二層網絡,限制物理二層網絡或擴展超過子網邊界。NVGRE要求物理網絡設備能夠識別到GRE隧道的擴展信息,未知單播、廣播、組播等網絡流量均被封裝為組播轉發。RFC 2784和RFC 2890詳細說明了NVGRE的實現標準,和VXLAN相比,NVGRE并沒有詳細解釋數據包文是如何通過通道尋找到目標終端的,沒有VXLAN的標準描述明確。
STT
STT(Stateless Transport Tunneling)是由VMware 提出的主機網絡虛擬化技術。STT利用了TCP的數據封裝形式,但改造了TCP的傳輸機制,數據傳輸不遵循TCP狀態機,而是全新定義的無狀態機制,無需三次握手建立TCP連接,目前在vSwitch中已經實現。STT采用64比特標識二層網絡分段。STT的終結點需要給STT預留TCP Port,所有發往這個Port的TCP包會被認為是STT包,從而不會走正常的TCP路徑。
以上四種主機網絡虛擬化技術有一個共同的特點:都是在二層的基礎上做二次封裝,區別在于封裝模式的不同,以及長度的差異。VXLAN和DOVE都是基于UDP封裝的,NVGRE是基于GRE封裝,STT是基于TCP封裝,只有UDP這種方式最容易讓人接受。除了DOVE方式,其它三種都是通過組播實現,轉發效率沒有DOVE高,但是由于DOVE是IBM的獨家密集,只在自家的設備上實現了,兼容性并不是太好,所以未得到足夠的重視。不管采用哪種虛擬化技術,目的都是為了擴展二層網絡的范圍,傳統二層VLAN的標識只有4094個,已經無法滿足數據中心業務的部署需求,因此出現了這些主機網絡虛擬化技術。那么對于一些中小型網絡,則沒有使用這類技術的必要。傳統的VLAN技術依然夠用,并不過時。未來,這四種技術還會不斷修改和完善,雖然VXLAN暫時領先,但是最后誰能先到達終點,一切還都是未知數,讓我們拭目以待。