什么是虛擬網(wǎng)絡(luò),虛擬網(wǎng)絡(luò)得以保留的原因
我們通常想象的計算機網(wǎng)絡(luò)涉及連接到路由器和交換機等設(shè)備的各種電纜(以太網(wǎng)、光纖、同軸電纜),這些電纜將數(shù)據(jù)包定向到需要去的地方。
Wi-Fi 和蜂窩數(shù)據(jù)網(wǎng)絡(luò)的興起已經(jīng)用無線信號取代了其中一些電線,但即使是無線電波也處于物理領(lǐng)域,它們會連接回手機信號塔或 Wi-Fi 接入點。
在七層 OSI 網(wǎng)絡(luò)參考模型中,所有網(wǎng)絡(luò)設(shè)備、處理和通信都占據(jù)最低的三層:第 3 層(網(wǎng)絡(luò))、第 2 層(數(shù)據(jù)鏈路)和第 1 層(物理層)。
在虛擬網(wǎng)絡(luò)中,所有這些活動都發(fā)生在軟件中。
虛擬網(wǎng)絡(luò)可能完全存在于一臺物理機器——一臺服務(wù)器中。 或者它們可能構(gòu)成一個運行在物理網(wǎng)絡(luò)之上的抽象層,其配置和拓撲可能與虛擬網(wǎng)絡(luò)完全不同。
構(gòu)建虛擬網(wǎng)絡(luò)是一項復(fù)雜的工作,但好處是巨大的:只需更改文件即可重新配置網(wǎng)絡(luò),而不是通過可能涉及爬過管道系統(tǒng)的費力體力勞動。
虛擬網(wǎng)絡(luò)如何工作?
要了解虛擬網(wǎng)絡(luò)的工作原理,讓我們從一個相關(guān)且更為熟悉的概念開始:虛擬機(VM)。 我們大多數(shù)人都熟悉虛擬機,這使得在一臺物理機器上運行多個應(yīng)用程序?qū)嵗蔀榭赡堋?/p>
這些虛擬機并不真正“知道”它們是虛擬的; 他們通常與底層硬件進行的所有系統(tǒng)調(diào)用和其他通信都被稱為管理程序的軟件層攔截。 管理程序處理來自同一臺機器上運行的多個虛擬機的請求,以最有效地利用底層硬件資源。
VM 甚至可以跨硬件平臺翻譯指令,這樣 VM 就可以在 x86 機器上運行,即使它是為 ARM 處理器設(shè)計的。 管理程序能夠返回 VM 期望從硬件接收的結(jié)果。
虛擬網(wǎng)絡(luò)基于相同的原則。 軟件配置為模擬具有管理員所需的特定地形的網(wǎng)絡(luò)。 與 VM 一樣,虛擬網(wǎng)絡(luò)能夠發(fā)揮其魔力,因為與其通信的操作系統(tǒng)和應(yīng)用程序不知道(或關(guān)心)它們是在與真實交換機還是虛擬交換機(vSwitch )。
他們只是發(fā)送標頭中標有特定網(wǎng)絡(luò)路由信息的數(shù)據(jù)包,并期望收到類似的數(shù)據(jù)包作為回報。 因為這種通信是標準化的,所以很容易構(gòu)建可以模擬物理網(wǎng)卡、交換機或路由器行為的軟件,而且像 Open vSwitch 這樣的工具確實可以在管理程序上運行,也可以作為物理網(wǎng)絡(luò)硬件的控制堆棧運行。
一旦管理程序有了這些數(shù)據(jù)包,它就必須弄清楚如何將它們路由到目的地,就像物理網(wǎng)絡(luò)硬件一樣。 不同之處在于管理程序必須將有關(guān)軟件定義的虛擬網(wǎng)絡(luò)(我們的計算機“認為”它所連接的網(wǎng)絡(luò))的信息轉(zhuǎn)換為有關(guān)實際底層物理環(huán)境的信息。
一臺計算機可能認為它正在向同一局域網(wǎng)中的另一臺計算機發(fā)送數(shù)據(jù)包,但實際上這兩臺計算機可能位于不同的國家 — 或者可能是在同一臺服務(wù)器上運行的兩臺虛擬機。
管理程序通常會通過將數(shù)據(jù)包封裝在標頭中具有不同路由信息的另一個數(shù)據(jù)包中來解決此問題,然后將該數(shù)據(jù)包移交給物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施。 一旦該數(shù)據(jù)包到達目的地,外部數(shù)據(jù)包就會被剝離; 接收數(shù)據(jù)包的系統(tǒng)將認為它是通過虛擬網(wǎng)絡(luò)到達的,而不是它穿過的實際物理網(wǎng)絡(luò)。
不用說,實施虛擬網(wǎng)絡(luò)需要大量的工作和獨創(chuàng)性。 為什么要經(jīng)歷這些麻煩? 對不同類型的虛擬網(wǎng)絡(luò)的描述將提供它們有用的真實場景的感覺。
虛擬網(wǎng)絡(luò)的類型
一個重要的區(qū)別是內(nèi)部和外部虛擬網(wǎng)絡(luò)。 內(nèi)部虛擬網(wǎng)絡(luò)用于連接在同一臺服務(wù)器上運行的多個虛擬機。 在這種情況下,管理程序不需要封裝網(wǎng)絡(luò)數(shù)據(jù)包并將它們發(fā)送到真實網(wǎng)絡(luò); 它只是找出它們適用于哪個虛擬機并交付它們。
使用為計算機到計算機通信開發(fā)的協(xié)議作為在同一物理硬件上運行的兩個進程進行通信的一種方式似乎很奇怪。 但請記住,虛擬化的好處之一是您可以在同一臺服務(wù)器上將多個開箱即用的操作系統(tǒng)作為完全獨立且獨立的進程運行。
為此目的使用標準網(wǎng)絡(luò)數(shù)據(jù)包和協(xié)議,以及它們相關(guān)的安全基礎(chǔ)設(shè)施,意味著這些 VM 可以在不修改的情況下運行和相互通信。
另一方面,外部虛擬網(wǎng)絡(luò)涉及單獨的物理計算機(或 VM 和物理機的混合體)。 在這種情況下,機器通過傳統(tǒng)的物理網(wǎng)絡(luò)設(shè)備連接(包括通過開放互聯(lián)網(wǎng)的連接),但網(wǎng)絡(luò)管理員將創(chuàng)建一個不同于底層物理網(wǎng)絡(luò)拓撲的虛擬網(wǎng)絡(luò)拓撲。
虛擬網(wǎng)絡(luò)分為三類,可以是內(nèi)部的或外部的:
- 虛擬專用網(wǎng)絡(luò) (VPN) 是最簡單的虛擬網(wǎng)絡(luò)形式。 最常見的情況是一臺計算機通過開放的互聯(lián)網(wǎng)連接到本地公司網(wǎng)絡(luò)。 從那臺計算機和與之交互的其他計算機的角度來看,一旦建立了 VPN,這臺計算機就是 LAN 的一部分,即使它是遠程的。
- 虛擬局域網(wǎng) (VLAN) 更為復(fù)雜:它由虛擬定義的整個局域網(wǎng)組成。 可以通過將單個物理 LAN 劃分為多個 VLAN 或?qū)⑽锢砩溪毩⒌?LAN 組合為單個 VLAN 來創(chuàng)建 VLAN。
- 虛擬可擴展局域網(wǎng) (VXLAN) 是 VLAN 的增強版,它允許將大型 LAN 細分為更多獨立的 VLAN,還可以更輕松地在不中斷服務(wù)的情況下遷移 VM,這兩者都是云的關(guān)鍵 基礎(chǔ)設(shè)施。
虛擬網(wǎng)絡(luò)的優(yōu)點和好處
當您在同一硬件上運行多個虛擬機時,虛擬網(wǎng)絡(luò)是絕對必要的——這是云計算中的常見場景。 同時,在現(xiàn)有物理網(wǎng)絡(luò)之上創(chuàng)建 VLAN 和 VXLAN 使管理員能夠快速重組網(wǎng)絡(luò)以滿足他們的需求——而且通常是在基礎(chǔ)架構(gòu)即代碼時代自動進行。 通過手動重建物理網(wǎng)絡(luò)很難或不可能做到這一點。
虛擬網(wǎng)絡(luò)的優(yōu)點包括:
- 減少與物理網(wǎng)絡(luò)硬件相關(guān)的成本和維護。
- 通過集中和自動化控制簡化網(wǎng)絡(luò)管理。
- 提供更靈活和細粒度的網(wǎng)絡(luò)配置選項。
這些好處都有助于提高 IT 生產(chǎn)力并降低管理成本,這是虛擬網(wǎng)絡(luò)得以保留的一個重要原因。