SDN學習筆記(四):Network Virtualization

將網絡虛擬化的學習分成四部分:1.什麼是網絡虛擬化以及它是怎麼實行的?2.網絡的虛擬化和一些相關應用程序的實例

3.mininet上的虛擬網絡4.測試和一些在mininet上的動手操作

1.什麼是網絡虛擬化以及它是怎麼實行的?

第一種理解方式就是,這是一種真實的,物理網絡的抽象化,它讓多個邏輯網絡運行在同一塊物理基板上,而這些邏輯網絡的主人都會有自己清晰的網絡視角(這些獨立出來的網絡是基板的子集),他們不在乎這個物理基板長什麼樣。但換作是以前,這個概念並沒有出現,也就是說這些邏輯網絡他們並不是很獨立,要參考整個物理基板上的路由鏈路狀態等等。另一種看待網絡虛擬化的方式就是,網絡虛擬化,相當於是一個收集了網絡層次2到7層服務的容器,然後使用者通過這個沒有基層的黑箱容器作用於這個真實存在基板上。anyway,這兩種理解方式都把基層也就是物理層給分出來

網絡的什麼東西能被虛擬化呢?有兩個,一個是網絡節點,將他虛擬化的方式就是用虛擬機,另一個就是鏈路,將他虛擬化的方式就是用隧道,相應的有以太網GRE,其他的還有儲存等等。

左側的網絡虛擬化是以虛擬網絡節點爲單位,應用程序通過X86環境控制每個虛擬機,而這些虛擬機運行是通過服務器虛擬機監控器利用了CPU內存以及輸入輸出設備等等,從而獲取到虛擬機所需要的基本資源比如虛擬機IP虛擬機鏈路,協議等等,這虛擬機監控器是來將這些資源進行合理調度並起到隔離控制的作用,當然,圖裏沒有提到的是,每個虛擬機都有自己的虛擬CPU內存等等設備,他們也要由基層資源提供。右側是以每個小的虛擬網絡爲單位,工序通過2-7層的服務下達給每個虛擬網絡,這些虛擬網絡是通過網絡虛擬化來利用到物理網絡,從而獲取到資源,中間的網絡虛擬化層與左邊的虛擬機監控器很像,它的目標就是確保這些不同的虛擬網絡之間的分離和適當的資源共享。將真實存在的物理層硬件層,和軟件層控制層解耦,將會增加靈活性,這裏所說的資源就是視角,就是自己的虛擬網絡等等。

網絡虛擬化的目的是什麼?

互聯網發展如此之久,其架構已經接近固化,而網絡虛擬化就是將互聯網架構的僵化利用起來,產生這個思想的原因是,要重新覆蓋掉現有的網絡就要深入底層修改,這意味着就要重新構建一個全新的框架來讓新版網絡能夠接受,讓舊版網絡能夠兼容,於是產生了另一種想法,爲什麼要顛覆重來而不是繼續演化下去,於是想到構建一個兩開花基層讓你想要的千百個不同網絡都可以在上面開花。因此,網絡虛擬化的動機就是百花齊放:提供某種允許網絡技術發展的基礎設施,一旦部署該平臺,技術就可以獨立於底層基礎架構在該平臺之上發展,通過兩開花基層,你可以有自己的一個特定的實驗性虛擬網絡,你可以在你自己的虛擬網絡上做研究,這些虛擬網絡不會互相干擾,因此人人都可以在這個網絡上創新,這樣構建尤其重要的一點就是可以加快技術的發展和研究,因此人人都能在同一時間部署和實例化多種不同類型的網絡同時不影響到大網絡。所以說我們不必深入基層網絡來做研究,我們可以在虛擬網絡上做研究,這就減少了編程難度,操作難度。

注意一下網絡虛擬化和SDN的差別,SDN本身並不是抽象的,它確實將數據平面與控制平面分開,這是一種模型,但網絡虛擬化是提供抽象的技術,可以在單個物理網絡之上實例化多個邏輯網絡 ,不是真正存在的。

VPN(虛擬專用網絡)

VPN是連向分佈式站點的一種虛擬網絡,它和普通的虛擬網絡不一樣,它不是用來做實驗的,不是私人的,是用來數據通信的,它能夠確保數據通信的安全性,基本原理(百度一下):

  1. 通常情況下,VPN網關採取雙網卡結構,外網卡使用公網IP接入Internet

  2. 網絡一(假定爲公網internet)的終端A訪問網絡二(假定爲公司內網)的終端B,其發出的訪問數據包的目標地址爲終端B的內部IP地址。

  3. 網絡一的VPN網關在接收到終端A發出的訪問數據包時對其目標地址進行檢查,如果目標地址屬於網絡二的地址,則將該數據包進行封裝,封裝的方式根據所採用的VPN技術不同而不同,同時VPN網關會構造一個新VPN數據包,並將封裝後的原數據包作爲VPN數據包的負載,VPN數據包的目標地址爲網絡二的VPN網關的外部地址。

  4. 網絡一的VPN網關將VPN數據包發送到Internet,由於VPN數據包的目標地址是網絡二的VPN網關的外部地址,所以該數據包將被Internet中的路由正確地發送到網絡二的VPN網關。

  5. 網絡二的VPN網關對接收到的數據包進行檢查,如果發現該數據包是從網絡一的VPN網關發出的,即可判定該數據包爲VPN數據包,並對該數據包進行解包處理。解包的過程主要是先將VPN數據包的包頭剝離,再將數據包反向處理還原成原始的數據包。

  6. 網絡二的VPN網關將還原後的原始數據包發送至目標終端B,由於原始數據包的目標地址是終端B的IP,所以該數據包能夠被正確地發送到終端B。在終端B看來,它收到的數據包就和從終端A直接發過來的一樣。

  7. 從終端B返回終端A的數據包處理過程和上述過程一樣,這樣兩個網絡內的終端就可以相互通訊了

XEN

構建虛擬網絡當然需要有虛擬網絡節點,目前使用較爲廣泛的是劍橋大學的XEN,Domain表示虛擬機,Domain0是最高優先級別的虛擬機,要創建別的虛擬機,就要通過上圖中的hypervisor也就是虛擬機監控器,用來調用硬件資源,但是它無法直接和硬件進行對話,管理員需要使用控制平面軟件通過虛擬機Domain0的控制接口來和硬件對話,驅動它們創建其他虛擬機,XEN的好處就是它支持多種不同操作系統。

EGRE

 虛擬機之間的傳輸可以通過以太網隧道進行,虛擬機把自己生成的以太網幀封裝在IP包中然後讓這個IP包經過不斷路由跳躍到達目標虛擬機,而在兩個虛擬機眼裏,這不像一條經過多次跳躍的路,而是一條徑直的點對點隧道,當然,電腦該有的虛擬機也要有,虛擬機也有自己的接口也就是虛擬接口,來接收數據,要讓其真正的接收數據就需要使用上一些類似於open vswitch的技術,讓它與真正的接口有一個橋樑。

(未完)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章