VMware Workstation(以下簡稱VMware)是一款非常強大的虛擬機軟件,每個愛折騰的開發(fā)者的電腦里面或多或少都有幾個虛擬機。在使用虛擬機的過程中,我發(fā)現(xiàn)很多同學(xué)都和我一樣,被VMware的網(wǎng)絡(luò)配置困擾著,比如說:
橋接、NAT、僅主機三種網(wǎng)絡(luò)接入方式,到底該選哪個
主機又 ping 不通虛擬機了
虛擬機上不了網(wǎng)了
...
為了解決這些困惑,我決定打破砂鍋問到底,在網(wǎng)上查閱了大量資料之后,總算把VMware的網(wǎng)絡(luò)配置理順了,在這篇文章中,我將向大家分享我所理解的VMware網(wǎng)絡(luò)配置。
網(wǎng)絡(luò)組件是構(gòu)成網(wǎng)絡(luò)的基礎(chǔ)元素,生活中常見的網(wǎng)絡(luò)組件有路由器、交換機、集線器、網(wǎng)線等。那么VMware為我們提供了哪些基礎(chǔ)的網(wǎng)絡(luò)連接組件呢?從 Vmware的官方文檔 可以得知:VMware 中的虛擬網(wǎng)絡(luò)連接組件包括虛擬交換機、虛擬網(wǎng)絡(luò)適配器、虛擬 DHCP 服務(wù)器和 NAT 設(shè)備。如果大家對這幾種設(shè)備對應(yīng)的物理網(wǎng)絡(luò)不了解,建議先去補補計算機網(wǎng)絡(luò)的基礎(chǔ)知識再來看接下來的內(nèi)容。
與物理交換機相似,虛擬交換機也能將網(wǎng)絡(luò)連接組件連接在一起。虛擬交換機又稱為虛擬網(wǎng)絡(luò),其名稱為 VMnet0、VMnet1、VMnet2,以此類推。有少量虛擬交換機會默認映射到特定網(wǎng)絡(luò)。
網(wǎng)絡(luò)適配器,就是我們平時說的網(wǎng)卡,只不過它是 VMware 虛擬出來的,但是功能卻是不折不扣,在使用新建虛擬機向?qū)?chuàng)建新的虛擬機時,向?qū)樘摂M機創(chuàng)建一個虛擬網(wǎng)絡(luò)適配器。虛擬網(wǎng)絡(luò)適配器在客戶機操作系統(tǒng)中顯示為 AMD PCNET PCI 適配器或 Intel Pro/1000 MT 服務(wù)器適配器。在 Windows Vista、Windows 7 和 Windows 8 客戶機操作系統(tǒng)中顯示為 Intel Pro/1000 MT 服務(wù)器適配器。
Workstation 6.0 及更高版本的虛擬機最多可以有 10 個虛擬網(wǎng)絡(luò)適配器。Workstation 5.x 虛擬機僅支持 3 個虛擬網(wǎng)絡(luò)適配器。
與物理網(wǎng)橋相似,虛擬網(wǎng)橋用于連接兩個物理網(wǎng)絡(luò),VMware 提供的VMware Bridge Protocol 實現(xiàn)了這一功能,當我們選擇橋接模式時,該虛擬網(wǎng)橋為虛擬網(wǎng)絡(luò)適配器提供了訪問物理網(wǎng)絡(luò)的能力。
虛擬動態(tài)主機配置協(xié)議 (DHCP) 服務(wù)器可在未橋接到外部網(wǎng)絡(luò)的配置中向虛擬機提供 IP 地址。例如,虛擬 DHCP 服務(wù)器可在僅主機模式和 NAT 配置中向虛擬機分配 IP 地址。
NAT(Network Address Translation)設(shè)備相信大家都很熟悉,我們平時用的路由器基本上都是一個NAT設(shè)備,用于為局域網(wǎng)內(nèi)的計算機提供外網(wǎng)訪問能力。VMware NAT 配置中的 NAT 設(shè)備可在一個或多個虛擬機以及外部網(wǎng)絡(luò)之間傳送網(wǎng)絡(luò)數(shù)據(jù),識別用于每個虛擬機的傳入數(shù)據(jù)包,并將它們發(fā)送到正確的目的地。
上圖是我參照 VMware 官方文檔繪制的橋接模式下的 VMware 網(wǎng)絡(luò)拓撲圖。
橋接,所謂的'橋',就是指圖 2-1 中的網(wǎng)橋設(shè)備,亦即 VMware 提供的虛擬網(wǎng)橋設(shè)備。此圖展示的是只有一臺虛擬機橋接的情況:虛擬機的虛擬網(wǎng)絡(luò)適配器連接到虛擬網(wǎng)絡(luò)交換機上,然后虛擬網(wǎng)絡(luò)交換機通過網(wǎng)橋設(shè)備連接到宿主機的網(wǎng)絡(luò)適配器,這樣,虛擬機就可以通過宿主機的網(wǎng)絡(luò)適配器收發(fā)網(wǎng)絡(luò)數(shù)據(jù)包了。
從圖 2-1 可以看出,橋接模式使用到的網(wǎng)絡(luò)組件有
虛擬網(wǎng)絡(luò)適配器
虛擬網(wǎng)絡(luò)交換機
網(wǎng)橋
主機網(wǎng)絡(luò)適配器
接下來,我們就以這幾個網(wǎng)絡(luò)組件為線索,看看配置橋接模式的網(wǎng)絡(luò)的具體步驟,以及每一個步驟的意義。
宿主機操作系統(tǒng):Windows 10
虛擬機軟件:VMware Workstation pro 12
虛擬機操作系統(tǒng):Windows XP
使用默認橋接網(wǎng)絡(luò)的步驟如下:
依次打開菜單 '虛擬機' -> '設(shè)置'
選擇一個網(wǎng)絡(luò)適配器(可能有多個)
可看到如圖 2-2 所示的窗口:
注意,網(wǎng)絡(luò)適配器可能有多個,因為你有可能為虛擬機分配了多個虛擬網(wǎng)絡(luò)適配器。我們選中一個網(wǎng)絡(luò)適配器,可以看到當前網(wǎng)絡(luò)連接模式為 NAT,再從窗口右側(cè)欄選擇橋接模式,復(fù)制物理網(wǎng)絡(luò)連接狀態(tài)是自己情況而定,橋接模式默認使用的虛擬交換機是 VMnet0。最后點擊確定,即可應(yīng)用生效。
自定義橋接網(wǎng)絡(luò)的步驟如下:
依次選擇 '虛擬機' -> '設(shè)置' -> '網(wǎng)絡(luò)適配器' 菜單
然后選擇自定義,點擊下拉選擇框
可看到如圖 2-3 所示的窗口:
如 1.1 節(jié)所述,虛擬交換機一共有 20 個,所以在這里的下拉框中一共可以看到 20 個可供選擇的虛擬網(wǎng)絡(luò),注意,這 20 個網(wǎng)絡(luò)并不都是橋接模式,默認情況下只有 VMnet0 是橋接模式,VMnet1 是僅主機模式,VMnet8 是 NAT 模式,其余網(wǎng)絡(luò)默認都是僅主機模式。所以,在未經(jīng)過任何配置的情況下,你如果想使用橋接網(wǎng)絡(luò),只能選 VMnet0。當然,這些都是可以改變的,對于每一個網(wǎng)絡(luò)的模式我們都可以進行編輯。這個在后面的章節(jié)中,我將展開來講解。
我做實驗用的臺式機有兩張網(wǎng)卡,一張有線網(wǎng)卡,一張無線網(wǎng)卡,確定了將我們的虛擬機連接到哪個虛擬網(wǎng)絡(luò)(虛擬交換機)之后,我們接下來的任務(wù)就是要確定將虛擬交換機連接到宿主機的哪一張網(wǎng)卡上。
依次選擇 '編輯' -> '虛擬網(wǎng)絡(luò)編輯器'
選擇要編輯的橋接網(wǎng)絡(luò),我選的是 VMnet0
在 'VMnet信息' 欄中選擇橋接模式
點擊下拉框,我們看到的就是宿主機所有的網(wǎng)絡(luò)適配器了,根據(jù)自己需求選擇一個即可
這里有幾個值得注意的地方:
宿主機的每個網(wǎng)絡(luò)適配器只能橋接到一個虛擬網(wǎng)絡(luò)上
宿主機的網(wǎng)絡(luò)適配器需運行 VMware Bridge Protocol 。 檢查方式如下:打開'網(wǎng)絡(luò)和共享中心' -> 點擊'更改網(wǎng)絡(luò)適配器設(shè)置' -> 右鍵點擊目標網(wǎng)絡(luò)適配器 -> 選擇'屬性', 確保 VMware Bridge Protocol 被勾選:
到目前為止,我們使用的橋接網(wǎng)絡(luò)都是 VMnet0, 在這一節(jié)中,我將演示如何新增一個橋接網(wǎng)絡(luò)。
依次選擇 '編輯' -> '虛擬網(wǎng)絡(luò)編輯器'
可以看到,目前只有三個默認的網(wǎng)絡(luò)VMnet0、 VMnet1 和 VMnet8,它們分別對應(yīng)橋接模式、僅主機模式和 NAT 模式默認使用的網(wǎng)絡(luò),點擊'添加網(wǎng)絡(luò)'按鈕
選擇要添加的虛擬網(wǎng)絡(luò),點擊確定就可以在網(wǎng)絡(luò)列表中看到添加的虛擬網(wǎng)絡(luò)了
選中上一小節(jié)添加的虛擬網(wǎng)絡(luò)(我選的VMnet19), 我們可以看到下方的 VMnet 信息指明它目前的模式為僅主機模式,現(xiàn)在我們只需選中橋接模式,接下來的設(shè)置步驟就與 2.2.3 節(jié)一樣了。
DHCP
如果宿主機所接入的物理網(wǎng)絡(luò)有一個 DHCP 服務(wù)器的話,可以直接將虛擬機的IP獲取方式設(shè)置為自動獲取。
手動設(shè)置
如果沒有 DHCP 服務(wù)器,一般情況下,為了方便與宿主機通信,設(shè)置一個與宿主機在同一網(wǎng)段的IP,但是這不是必須的。
虛擬機首先通過虛擬適配器連接到虛擬網(wǎng)絡(luò)交換機上
虛擬 NAT 設(shè)備連通虛擬網(wǎng)絡(luò)交換機和宿主機的物理網(wǎng)絡(luò)適配器,這樣,虛擬機的網(wǎng)絡(luò)適配器和宿主機的網(wǎng)絡(luò)適配器就處于兩個IP網(wǎng)絡(luò)中了,我們姑且分別稱之為內(nèi)網(wǎng)和外網(wǎng)
虛擬 DHCP 服務(wù)器為可選項,如果有的話,它將為內(nèi)網(wǎng)機器(虛擬機)動態(tài)分配IP地址
宿主機的虛擬網(wǎng)絡(luò)適配器也是可選項,它可以方便主機與虛擬機直接通信
最后,物理網(wǎng)絡(luò)適配器連接到真實網(wǎng)絡(luò),這樣,虛擬機就間接地與物理網(wǎng)絡(luò)連通了
注:NAT設(shè)備的原理和作用此處不作贅述,有興趣的朋友可參考維基百科:網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
以上的原理描述比較抽象,下面,我通過具體的配置步驟讓大家更好地認識 NAT 模式。
從圖 3-1 可以看出,NAT 模式涉及到的網(wǎng)絡(luò)組件比較多,有:
虛擬網(wǎng)絡(luò)適配器
虛擬網(wǎng)絡(luò)交換機
虛擬 NAT 設(shè)備
虛擬 DHCP 設(shè)備
物理網(wǎng)絡(luò)適配器
下面,我依然以這些網(wǎng)絡(luò)組件為線索來為大家講解 NAT 模式的配置。
宿主機操作系統(tǒng):Windows 10
虛擬機軟件:VMware Workstation pro 12
虛擬機操作系統(tǒng):Windows XP
使用默認橋接網(wǎng)絡(luò)的步驟如下:
依次打開菜單 '虛擬機' -> '設(shè)置'
選擇一個網(wǎng)絡(luò)適配器(可能有多個)
點選'NAT 模式',確定
步驟同 2.2.2.2,如果之前沒有經(jīng)過任何配置,此處只有 VMnet8 是 NAT 模式。
依次選擇 '編輯' -> '虛擬網(wǎng)絡(luò)編輯器'
選擇要編輯的橋接網(wǎng)絡(luò) VMnet8
請注意途中VMnet信息設(shè)置欄中的幾個紅框標記的地方(為方便引用,對每個紅框進行了編號),這里涉及到 NAT 模式的一些細節(jié)設(shè)置,下面我將詳細介紹一下:
子網(wǎng)設(shè)置
紅框1所標注的地方可以對 NAT 的內(nèi)網(wǎng)的網(wǎng)絡(luò)號和網(wǎng)絡(luò)掩碼進行配置
NAT設(shè)置
點擊紅框2所標注的按鈕'NAT設(shè)置',將會彈出如圖 3-3 所示的對話框,在這個對話框中,我們可以配置 NAT 內(nèi)網(wǎng)的網(wǎng)關(guān) IP,其實這就是分配給 NAT 的內(nèi)網(wǎng)口的 IP 地址;可以添加自定義的 NAT 端口映射規(guī)則;還可以設(shè)置 DNS 服務(wù)器的地址
將主機虛擬適配器連接到此網(wǎng)絡(luò)
如果勾選了此選項,我們在宿主機的網(wǎng)絡(luò)連接界面('網(wǎng)絡(luò)和共享中心'->'更改適配器設(shè)置')可以看到一個名為 VMware Network Adapter 的虛擬網(wǎng)絡(luò)適配器連接到了 VMnet8 網(wǎng)絡(luò)(圖 3-4)。如果未勾選此選項,則不會看到這個網(wǎng)絡(luò)連接(圖 3-5)
使用本地DHCP服務(wù)將IP地址分配給虛擬機
如果勾選了此選項,其右側(cè)的'DHCP設(shè)置'也將被啟用。這個選項的作用是啟用宿主機的 DHCP 服務(wù),為 NAT 內(nèi)網(wǎng)的虛擬機動態(tài)分配IP地址,如果關(guān)閉的話,虛擬機將不能使用自動獲取 IP 功能。我們可以從宿主機的服務(wù)列表中找到此服務(wù):
DHCP 設(shè)置
點擊'DHCP設(shè)置'按鈕,將會彈出一個 DHCP 服務(wù)的配置窗口,主要用于配置動態(tài) IP 池的范圍以及租期。
首先,將虛擬機的 IP 和 DNS 獲取方式設(shè)置為自動獲取,然后運行ipconfig /all
命令看看虛擬機的網(wǎng)絡(luò)配置,如圖 3-7 所示:
可以看到,圖中的各項參數(shù)與上文所描述的完全吻合。最后,我們來看看實驗最后的 NAT網(wǎng)絡(luò)拓撲結(jié)構(gòu):
直接上圖!
不難看出,僅主機模式其實基本上和 NAT 模式一樣,只是少了一個虛擬 NAT 設(shè)備,所以,僅主機模式的虛擬機只能和同一網(wǎng)絡(luò)的虛擬以及宿主機通信,卻不能訪問外部網(wǎng)絡(luò)(就是圖左下角的那一坨云),具體配置步驟參照 NAT 模式即可。
VMware 提供了強大的網(wǎng)絡(luò)虛擬功能,幾乎能模擬所有的網(wǎng)絡(luò)實驗環(huán)境,本文較透徹地分析了三種網(wǎng)絡(luò)接入模式,其中肯定有錯誤或不準確的地方,希望大家多多批評指正。