網(wǎng)絡(luò)虛擬化是一種重要的網(wǎng)絡(luò)技術(shù),該技術(shù)可在物理網(wǎng)絡(luò)上虛擬多個(gè)相互隔離的虛擬網(wǎng)絡(luò),從而使得不同用戶(hù)之間使用獨(dú)立的網(wǎng)絡(luò)資源切片,從而提高網(wǎng)絡(luò)資源利用率,實(shí)現(xiàn)彈性的網(wǎng)絡(luò)。SDN的出現(xiàn)使得網(wǎng)絡(luò)虛擬化的實(shí)現(xiàn)更加靈活和高效,同時(shí)網(wǎng)絡(luò)虛擬化也成為SDN應(yīng)用中的重量級(jí)應(yīng)用。本文將介紹SDN與網(wǎng)絡(luò)虛擬化的關(guān)系以及通過(guò)SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化的方法,其中第二部分內(nèi)容將從虛擬化平臺(tái),網(wǎng)絡(luò)資源虛擬化和網(wǎng)絡(luò)隔離三個(gè)方面介紹。
SDN與網(wǎng)絡(luò)虛擬化由于早期成功的的SDN方案中網(wǎng)絡(luò)虛擬化案例較多,有的讀者可能會(huì)認(rèn)為SDN和網(wǎng)絡(luò)虛擬化是同一個(gè)層面的,然而這是一個(gè)錯(cuò)誤的說(shuō)法。SDN不是網(wǎng)絡(luò)虛擬化,網(wǎng)絡(luò)虛擬化也不是SDN。SDN是一種集中控制的網(wǎng)絡(luò)架構(gòu),可將網(wǎng)絡(luò)劃分為數(shù)據(jù)層面和控制層面。而網(wǎng)絡(luò)虛擬化是一種網(wǎng)絡(luò)技術(shù),可以在物理拓?fù)渖蟿?chuàng)建虛擬網(wǎng)絡(luò)。傳統(tǒng)的網(wǎng)絡(luò)虛擬化部署需要手動(dòng)逐跳部署,其效率低下,人力成本很高。而在數(shù)據(jù)中心等場(chǎng)景中,為實(shí)現(xiàn)快速部署和動(dòng)態(tài)調(diào)整,必須使用自動(dòng)化的業(yè)務(wù)部署。SDN的出現(xiàn)給網(wǎng)絡(luò)虛擬化業(yè)務(wù)部署提供了新的解決方案。通過(guò)集中控制的方式,網(wǎng)絡(luò)管理員可以通過(guò)控制器的API來(lái)編寫(xiě)程序,從而實(shí)現(xiàn)自動(dòng)化的業(yè)務(wù)部署,大大縮短業(yè)務(wù)部署周期,同時(shí)也實(shí)現(xiàn)隨需動(dòng)態(tài)調(diào)整。
隨著IaaS的發(fā)展,數(shù)據(jù)中心網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)虛擬化技術(shù)的需求將會(huì)越來(lái)越強(qiáng)烈。SDN出現(xiàn)不久后,SDN初創(chuàng)公司Nicira就開(kāi)發(fā)了網(wǎng)絡(luò)虛擬化產(chǎn)品NVP(Network Virtualization Platform)。Nicira被VMware收購(gòu)之后,VMware結(jié)合NVP和自己的產(chǎn)品vCloud Networking and Security (vCNS),推出了VMware的網(wǎng)絡(luò)虛擬化和安全產(chǎn)品NSX。NSX可以為數(shù)據(jù)中心提供軟件定義化的網(wǎng)絡(luò)虛擬化服務(wù)。由于網(wǎng)絡(luò)虛擬化是SDN早期少數(shù)幾個(gè)可以落地的應(yīng)用,所以大眾很容易將網(wǎng)絡(luò)虛擬化和SDN弄混淆。正如前面所說(shuō),網(wǎng)絡(luò)虛擬化只是一種網(wǎng)絡(luò)技術(shù),而基于SDN的網(wǎng)絡(luò)架構(gòu)可以更容易地實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化。
SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化通過(guò)SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化需要完成物理網(wǎng)絡(luò)管理,網(wǎng)絡(luò)資源虛擬化和網(wǎng)絡(luò)隔離三部分工作。而這三部分內(nèi)容往往通過(guò)專(zhuān)門(mén)的中間層軟件完成,我們稱(chēng)之為網(wǎng)絡(luò)虛擬化平臺(tái)。虛擬化平臺(tái)需要完成物理網(wǎng)絡(luò)的管理和抽象虛擬化,并分別提供給不同的租戶(hù)。此外,虛擬化平臺(tái)還應(yīng)該實(shí)現(xiàn)不同租戶(hù)之間的相互隔離,保證不同租戶(hù)互不影響。虛擬化平臺(tái)的存在使得租戶(hù)無(wú)法感知到網(wǎng)絡(luò)虛擬化的存在,也即虛擬化平臺(tái)可實(shí)現(xiàn)用戶(hù)透明的網(wǎng)絡(luò)虛擬化。
虛擬化平臺(tái)虛擬化平臺(tái)是介于數(shù)據(jù)網(wǎng)絡(luò)拓?fù)浜妥鈶?hù)控制器之間的中間層。面向數(shù)據(jù)平面,虛擬化平面就是控制器,而面向租戶(hù)控制器,虛擬化平臺(tái)就是數(shù)據(jù)平面。所以虛擬化平臺(tái)本質(zhì)上具有數(shù)據(jù)平面和控制層面兩種屬性。在虛擬化的核心層,虛擬化平臺(tái)需要完成物理網(wǎng)絡(luò)資源到虛擬資源的虛擬化映射過(guò)程。面向租戶(hù)控制器,虛擬化平臺(tái)充當(dāng)數(shù)據(jù)平面角色,將模擬出來(lái)的虛擬網(wǎng)絡(luò)呈現(xiàn)給租戶(hù)控制器。從租戶(hù)控制器上往下看,只能看到屬于自己的虛擬網(wǎng)絡(luò),而并不了解真實(shí)的物理網(wǎng)絡(luò)。而在數(shù)據(jù)層面的角度看,虛擬化平臺(tái)就是控制器,而交換機(jī)并不知道虛擬平面的存在。所以虛擬化平臺(tái)的存在實(shí)現(xiàn)了面向租戶(hù)和面向底層網(wǎng)絡(luò)的透明虛擬化,其管理全部的物理網(wǎng)絡(luò)拓?fù)?,并向租?hù)提供隔離的虛擬網(wǎng)絡(luò)。
圖 2 .網(wǎng)絡(luò)虛擬化平臺(tái)示意圖
虛擬化平臺(tái)不僅可以實(shí)現(xiàn)物理拓?fù)涞教摂M拓?fù)?ldquo;一對(duì)一”的映射,也應(yīng)該能實(shí)現(xiàn)物理拓?fù)?ldquo;多對(duì)一”的映射。而由于租戶(hù)網(wǎng)絡(luò)無(wú)法獨(dú)占物理平面的交換機(jī),所以本質(zhì)上虛擬網(wǎng)絡(luò)實(shí)現(xiàn)了“一虛多”和“多虛一”的虛擬化。此處的“一虛多”是指單個(gè)物理交換機(jī)可以虛擬映射成多個(gè)虛擬租戶(hù)網(wǎng)中的邏輯交換機(jī),從而被不同的租戶(hù)共享;“多虛一”是指多個(gè)物理交換機(jī)和鏈路資源被虛擬成一個(gè)大型的邏輯交換機(jī)。即租戶(hù)眼中的一個(gè)交換機(jī)可能在物理上由多個(gè)物理交換機(jī)連接而成。
圖3 .單虛擬節(jié)點(diǎn)映射到多物理節(jié)點(diǎn)
網(wǎng)絡(luò)資源虛擬化為實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化,虛擬化平臺(tái)需要對(duì)物理網(wǎng)絡(luò)資源進(jìn)行抽象虛擬化,其中包括拓?fù)涮摂M化,節(jié)點(diǎn)資源虛擬化和鏈路資源虛擬化[1]。
拓?fù)涮摂M化拓?fù)涮摂M化是網(wǎng)絡(luò)虛擬化平臺(tái)最基本的功能。虛擬平臺(tái)需要完成租戶(hù)虛網(wǎng)中的虛擬節(jié)點(diǎn)和虛擬鏈路到物理節(jié)點(diǎn)和鏈路的映射。其中包括“一對(duì)一”和“一對(duì)多”的映射。“一對(duì)一”的映射中,一個(gè)虛擬節(jié)點(diǎn)將會(huì)映射成一個(gè)物理節(jié)點(diǎn),同理虛擬鏈路也是。而在“一對(duì)多”的映射中,一個(gè)虛擬節(jié)點(diǎn)可以映射成由多個(gè)連接在一起的物理節(jié)點(diǎn);一條邏輯鏈路也可能映射成由鏈接在一起的多條鏈路。而對(duì)于物理節(jié)點(diǎn)而言,一個(gè)物理節(jié)點(diǎn)可以被多個(gè)邏輯節(jié)點(diǎn)映射。
節(jié)點(diǎn)資源虛擬化節(jié)點(diǎn)資源的虛擬化包括對(duì)節(jié)點(diǎn)Flow tables(流表)、CPU等資源的抽象虛擬化。流表資源本身是交換機(jī)節(jié)點(diǎn)的稀缺資源,如果能對(duì)其進(jìn)行虛擬化,然后由虛擬化平臺(tái)對(duì)其進(jìn)行分配,分配給不同的租戶(hù),那么就可以實(shí)現(xiàn)不同租戶(hù)對(duì)節(jié)點(diǎn)資源使用的分配和限制。拓?fù)涑橄髢H僅完成了虛擬節(jié)點(diǎn)到物理節(jié)點(diǎn)的映射,而沒(méi)有規(guī)定不同用戶(hù)/租戶(hù)對(duì)物理節(jié)點(diǎn)資源使用的分配情況。若希望進(jìn)行更細(xì)粒度的網(wǎng)絡(luò)虛擬化,節(jié)點(diǎn)資源虛擬化非常有必要。
鏈路資源虛擬化和節(jié)點(diǎn)資源一樣,鏈路資源也是網(wǎng)絡(luò)中重要的資源,而拓?fù)涑橄蟛](méi)有規(guī)定某些用戶(hù)可使用的鏈路資源的多少。所以在進(jìn)行更細(xì)粒度的虛擬化時(shí),有必要對(duì)鏈路資源進(jìn)行虛擬化,從而實(shí)現(xiàn)鏈路資源的合理分配??杀怀橄筇摂M化的鏈路資源包括租戶(hù)可使用的帶寬以及端口的隊(duì)列資源等等。網(wǎng)絡(luò)隔離網(wǎng)絡(luò)資源虛擬化僅僅完成了物理資源到虛擬資源的抽象過(guò)程,為實(shí)現(xiàn)完全的網(wǎng)絡(luò)虛擬化,還需要對(duì)不同的租戶(hù)提供隔離的網(wǎng)絡(luò)資源。網(wǎng)絡(luò)隔離需要對(duì)SDN的控制平面和數(shù)據(jù)平面進(jìn)行隔離,從而保證不同租戶(hù)控制器之間互補(bǔ)干擾,不同虛網(wǎng)之間彼此隔離。此外,為了滿(mǎn)足用戶(hù)對(duì)地址空間自定義的需求,虛擬化平臺(tái)還需要對(duì)網(wǎng)絡(luò)地址進(jìn)行虛擬化。
控制面隔離
控制器的性能對(duì)SDN整體的性能產(chǎn)生極大的影響,所以虛擬化平臺(tái)需保證租戶(hù)的控制器在運(yùn)行時(shí)不受其他租戶(hù)控制器的影響,保證租戶(hù)對(duì)虛擬化平臺(tái)資源的使用。虛擬化平臺(tái)在連接租戶(hù)控制器時(shí)需保證該進(jìn)程可以得到一定的資源保障,比如CPU資源。而虛擬化平臺(tái)本身所處的位置就可以輕易實(shí)現(xiàn)租戶(hù)的控制器之間的相互隔離。
數(shù)據(jù)面隔離
數(shù)據(jù)面的資源包括節(jié)點(diǎn)的CPU、Flow Tables等資源以及鏈路的帶寬,端口的隊(duì)列資源等。為保證各個(gè)租戶(hù)的正常使用,需對(duì)數(shù)據(jù)面的資源進(jìn)行相應(yīng)的隔離,從而保證租戶(hù)的資源不被其他租戶(hù)所占據(jù)。若在數(shù)據(jù)面上不進(jìn)行資源的隔離,則會(huì)產(chǎn)生租戶(hù)數(shù)據(jù)在數(shù)據(jù)面上的競(jìng)爭(zhēng),從而無(wú)法保障租戶(hù)對(duì)網(wǎng)絡(luò)資源的需求,所以很有必要在數(shù)據(jù)面對(duì)資源進(jìn)行隔離。
地址隔離
為使租戶(hù)能在自己的虛擬租戶(hù)網(wǎng)中任意使用地址,虛擬化平臺(tái)需要完成地址的隔離。實(shí)現(xiàn)地址隔離主要通過(guò)地址映射來(lái)完成。租戶(hù)可任意定制地址空間,而這些地址對(duì)于虛擬化平臺(tái)而言是面向租戶(hù)的虛擬地址。虛擬化平臺(tái)在轉(zhuǎn)發(fā)租戶(hù)控制器南向協(xié)議報(bào)文時(shí),需要將虛擬地址轉(zhuǎn)化成全網(wǎng)唯一的物理地址。租戶(hù)的服務(wù)器的地址在發(fā)送到接入交換機(jī)時(shí)就會(huì)被修改成物理地址,然后數(shù)據(jù)包的轉(zhuǎn)發(fā)會(huì)基于修改之后的物理地址進(jìn)行轉(zhuǎn)發(fā)。當(dāng)數(shù)據(jù)到達(dá)租戶(hù)目的地址主機(jī)出端口,控制器需將地址轉(zhuǎn)換成原來(lái)租戶(hù)設(shè)定的地址,從而完成地址的虛擬化映射。地址的虛擬化映射使得租戶(hù)可以使用完全的地址空間,可以使用任意的FlowSpace(流空間:流表匹配項(xiàng)所組成的多維空間),而面向物理層面則實(shí)現(xiàn)了地址的隔離,使得不同的租戶(hù)使用特定的物理地址,數(shù)據(jù)之間互不干擾。
本文介紹了SDN與網(wǎng)絡(luò)虛擬化的關(guān)系以及如何通過(guò)SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化。第二部分內(nèi)容通過(guò)介紹網(wǎng)絡(luò)虛擬化平臺(tái),網(wǎng)絡(luò)資源虛擬化,網(wǎng)絡(luò)隔離等三個(gè)方面來(lái)介紹如何通過(guò)SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化。隨著SDN和網(wǎng)絡(luò)虛擬化的發(fā)展,更多基于SDN的網(wǎng)絡(luò)虛擬化案例將會(huì)誕生,從而為用戶(hù)提供更靈活的網(wǎng)絡(luò)服務(wù)。后續(xù)將有文章介紹基于SDN的網(wǎng)絡(luò)虛擬化技術(shù)的產(chǎn)品和應(yīng)用案例,敬請(qǐng)期待。
References[1] Blenk A, Basta A, Reisslein M, et al. Survey on Network Virtualization Hypervisors for Software Defined Networking[J]. 2015.