網絡虛擬化是在物理網絡拓撲基礎之上建立的虛擬網絡,它不依賴底層物理連接,能夠實現網絡拓撲的動態(tài)變化,并且提供多租戶隔離。如果溯源,VLAN其實就是一種網絡隔離,在網絡下,通過VLAN tag劃分多個廣播域。在網絡虛擬化環(huán)境中,一切都可以自定義,首先是網絡設備的虛擬化,虛擬交換機、虛擬路由器、虛擬負載均衡和虛擬防火墻等,這些設備是基于網絡設備虛擬出來的,但更多的是安裝了Linux的x86服務器。
我們可以在一臺Linux服務器上通過OVS或者Linux的bridge去實現多個互相獨立運行的虛擬交換機。網絡虛擬化的第二個方面是網絡拓撲的虛擬化,網絡就是由節(jié)點和鏈路組成的網狀結構,設備虛擬化可以理解成節(jié)點的虛擬化,而鏈路的虛擬化可以理解為網絡拓撲的虛擬化。物理的網絡拓撲是由網絡設備的連線決定的。在復雜多變的網絡環(huán)境中,網絡設備的配置變得異常煩瑣,虛擬的網絡拓撲可以由管理員自定義,擺脫物理設備的束縛,一個網卡可以加入到任意網絡中,網絡的網段可以隨意分配,防火墻可以隨著設備動態(tài)改變等功能都是通過網絡虛擬化去實現的。
底層是真實的網絡拓撲,而在這個網絡拓撲之上虛擬出兩個獨立租戶的虛擬網絡。最終,虛擬網絡的使用者可以自己定義網絡,而無須感知物理網絡。當我們在公有云中使用VPC服務的時候,我們只需要定義自己的網段信息,而無須關心這個網段是否與數據中心內其他網段有沖突。定義自己的路由規(guī)則,管理自己的流量轉發(fā),這一切都依賴于網絡虛擬化的實現。
網絡虛擬化和計算、存儲的虛擬化類似,總結起來也是“一個虛擬多個,多個虛擬一個”。網絡虛擬化包括了網卡的虛擬化、鏈路層虛擬化、網絡層虛擬化。通過SR-IOV技術可以實現一個物理網卡虛擬多個網卡,還可以通過tap/veth等純軟件的方式實現網卡虛擬化。鏈路層的虛擬化主要通過虛擬交換機,實現網絡包的VLAN設置、隧道建立等。網絡層虛擬化包括VPN、overlay網絡等,創(chuàng)建一套隔離的三層網絡。