原文出處:http://wangchunhai.blog.51cto.com/225186/381225服務器
VMware Workstation是一款很是不錯的虛擬機軟件,許多愛好者用VMware Workstation設計多種實現環境作測試。VMware Workstation的虛擬網絡部分,功能很是的強大,但對於初學者來講,稍顯複雜。基於此,本文將深刻介紹VMware的虛擬網絡,讓讀者深入理解VMware虛擬網絡之間的關係,從而能夠設計多種複雜的廣域網、局域網的實驗環境,知足讀者的實驗需求。因爲VMware Server與VMware Workstation一體相乘,因此本文的內容也一樣適用於VMware Server。同時,VMware Workstation的虛擬網絡,也是VMware企業產品VMware ESX Server的基礎,熟悉了VMware Workstation的虛擬網絡後,對你們深刻學習、使用VMware Server也有必定的幫助做用。網絡
VMware Workstation(或VMware Server)安裝在物理計算機,這臺計算機稱做「主機」,假設這臺主機有一塊物理網卡,而且鏈接到網絡的一臺交換機中,此時,網絡拓撲如圖3-1所示。學習
圖3-1 主機物理網絡測試
【關鍵點】VMware Workstation與VMware Server,支持VMnet0~VMnet9共10塊(虛擬)網卡,對於每一塊虛擬網卡來講(VMnet0~VMnet9),同一時刻只能選擇一種網絡屬性:或者使用主機物理網卡,或使用虛擬網卡。操作系統
在VMware虛擬網絡中,包括兩種網絡:一種是「僅主機網絡」,另外一種是「NAT網絡」。對於VMware Workstation(或VMware Server)主機來講,能夠有多塊虛擬網卡具備「僅主機網絡」特性,但同一時刻只能有1塊虛擬網卡具備「NAT網絡」屬性。設計
在主機上安裝VMware Workstation或VMware Server的時候,默認會安裝3塊虛擬網卡,這3塊虛擬網卡的名稱分別爲VMnet0、VMnet一、VMnet8,其中VMnet0的網絡屬性爲「物理網卡」,VMnet1與VMnet8的網絡屬性爲「虛擬網卡」。在默認狀況下,VMnet1虛擬網卡的定義是「僅主機虛擬網絡」,VMnet8虛擬網卡的定義是「NAT網絡」,同時,主機物理網卡被定義爲「橋接網絡」,主機物理網卡也能夠稱爲VMnet0。3d
在默認狀況下,VMware Workstation虛擬網絡拓撲關係如圖3-2所示。代理
圖3-2 虛擬機網絡拓撲blog
在圖3-2中,有3個虛擬交換機、2塊虛擬網卡、1塊物理網卡、1個虛擬路由器,組成了默認虛擬網絡的整個結構。當VMware Workstation(或VMware Server)安裝的時候,會從192.168.x.0/24(在之前的某個版本中,也用過172.16.0.0/12的地址段,但很快放棄了)的地址中,隨機選擇2個地址段,並將每一個段的第1個地址分配給對應的虛擬網卡(VMnet1與VMnet8)使用。ip
在圖3-2中, VMnet1使用了192.168.10.0/2四、VMnet8使用了192.168.80.0/24的地址段,這是我習慣使用的地址段,你能夠根據本身的愛好與習慣設置。若是你想修改這些IP地址,在後文會有介紹。
在圖3-2中,還有1個虛擬DHCP服務器沒有標出,該虛擬DHCP服務器,用來爲使用VMnet一、VMnet8(或其餘)虛擬網卡(或者說鏈接到VMnet一、VMnet8虛擬交換機)的虛擬機自動分配IP地址、子網掩碼、網關與DNS等參數。
在VMware Workstation中,每一個虛擬機最多能夠支持10塊虛擬網卡,這些虛擬網卡,能夠(根據須要)鏈接到不一樣的虛擬網絡,例如圖3-2中的VMnet一、VMnet8或VMnet0虛擬交換機。有兩種狀況能夠選擇虛擬網絡,一種是在建立虛擬機的時候,另外一種是在建立虛擬機後,在「虛擬機設置」中修改虛擬網絡屬性。
(1)在建立虛擬機的時候,在「Network Type(網絡屬性)」頁中,在「Network connection(網絡鏈接)」選項組中,爲當前虛擬機選擇鏈接到的虛擬網絡,如圖3-3所示。
圖3-3 網絡屬性
(2)在虛擬機建立完成後,修改「虛擬機設置」,也能夠修改虛擬網絡屬性,如圖3-4所示。
圖3-4 修改虛擬機設置
不論是在建立虛擬機的時候,選擇網絡屬性,仍是在「虛擬機設置」頁中,每塊虛擬網卡,都有3種選擇,分別是VMnet0(橋接網絡)、VMnet1(僅主機網絡)與VMnet8(NAT網絡)三種鏈接屬性,還有一種是「不使用網絡鏈接」,就是代表這塊虛擬網卡,不鏈接到任何網絡。下面分別介紹鏈接到VMnet一、VMnet八、VMnet0虛擬交換機時的網絡屬性。
【說明】(1)在VMware Workstation 6.0以後,新增長了「Team」功能,同時在「Team」中也增長了Team虛擬交換機。在Team中的虛擬機,除了可使用VMnet0、VMnet一、VMnet8等虛擬交換機外,還可使用Team中的虛擬交換機。
(2)VMware Workstation(或VMware Server),除了VMnet0、VMnet一、VMnet8虛擬交換機外,還能夠建立(或添加)VMnet2~VMnet七、VMnet9等虛擬交換機,這些虛擬交換機的屬性,能夠在「僅主機網絡」、「橋接網絡」、「NAT網絡」之間選擇。
3.3 VMnet一、VMnet八、VMnet0虛擬網卡的關係
在VMware Workstation或VMware Server的虛擬機中,虛擬機之間、主機之間的網絡關係能夠參照圖3-5所示的網絡拓撲。
圖3-5 虛擬機與主機網絡拓撲
在圖3-5中,虛擬機A十一、A十二、~、虛擬機A03等,是VMware Workstation(或VMware Server)建立的虛擬機。虛擬機A十一、A十二、A13使用VMnet1(僅主機網絡)虛擬網卡,則在圖3-5的網絡拓撲中,「至關於」鏈接到VMnet1虛擬交換機;虛擬機A8一、A82使用VMnet8虛擬網卡(NAT網絡,則至關於鏈接到VMnet8虛擬交換機);虛擬機A0一、A0二、A03使用VMnet0虛擬網卡(橋接網絡,至關於鏈接到VMnet0虛擬交換機)。
物理主機B,表明與物理主機A屬於同一局域網內的其餘一臺或多臺計算機。這裏面的「同一局域網」,表示能夠是同一子網(VLAN)的計算機,也能夠是不一樣子網的計算機。
Internet計算機Z,表明Internet網絡上的其餘計算機或服務器,能夠是一臺或多臺的計算機。
將圖3-5的關係,畫成網絡拓撲的方式,如圖3-6所示。
圖3-6 簡化後的網絡拓撲
下面介紹各虛擬機之間與主機之間的網絡關係。
當虛擬機選擇使用VMnet1虛擬網卡時,表示這臺虛擬機鏈接到VMnet1虛擬交換機。
VMnet1,官方定義「僅主機網絡」,其默認的網絡行爲,只與主機或其餘使用VMnet1虛擬網卡的虛擬機有網絡鏈接。使用VMnet1虛擬網卡的虛擬機,不能訪問與物理主機以外的其餘計算機.
在圖3-5(圖3-6)中,虛擬機A十一、A十二、A13使用VMnet1虛擬網卡,代表鏈接到VMnet1虛擬交換機。在圖3-5(圖3-6)的網絡拓撲中,虛擬機A十一、A十二、A1三、物理主機A之間能夠互相通信。將圖3-5(圖3-6)中與VMnet1相關的計算機,簡化成圖3-7所示的拓撲。
圖3-7 VMnet1虛擬網絡拓撲圖3-
深刻理解:「能夠互相通信」,這句話表示,當A十一、A十二、A1三、A都鏈接到VMnet1虛擬交換機時,這4臺計算機能夠互相通信,但不必定能通信。爲何呢?若是A十一、A十二、A1三、A沒有設置同一子網的IP地址,這是不能互相通信(互相訪問)的;或者雖然設置同一網段的地址,但A十一、A十二、A1三、A有防火牆,禁止其餘計算機訪問,這時也是不能通信的。
只有當A十一、A十二、A1三、A鏈接到同一個虛擬交換機,而且在網一網段(IP地址還不能衝突)、而且沒有防火牆(或者有防火牆,但容許其餘計算機訪問)時,纔有可能通信。
小實驗:在VMware Workstation中建立1臺虛擬機,VMnet1虛擬網卡,設置與主機VMnet1相同網段的IP地址,或者在虛擬機中設置「自動得到IP地址」,關閉主機與虛擬機的防火牆,嘗試用「網上鄰居」或使用ping命令,檢查這個虛擬機與主機可否互相通信。
還要注意物理主機A,在A上有三塊網卡(1塊物理網卡、2塊虛擬網卡),分別是VMnet一、VMnet8和物理網絡(稱爲VMnet0),若是A十一、A十二、A13是192.168.10.0/24網段的計算機,但VMnet1不是192.168.10.0/24網段的,但你在VMnet8或VMnet0設置的是與A十一、A十二、A13同一網段的地址(例如192.168.10.0/24)時,A與A11(或A十二、A13)也是不能通信的。
另外,還須要說明,雖然在「虛擬網絡設置」中,設置VMnet1虛擬網段使用192.168.10.0/24網段,但在使用中,當A十一、A十二、A13鏈接到同一個虛擬交換機時,只要A十一、A十二、A1三、物理機A的VMnet1虛擬網卡,設置同一網段的地址(能夠是192.168.10.0/24,也能夠是其餘網段,但最好不要與VMnet八、VMnet0網段衝突),A十一、A十二、A1三、A就能夠互相通信。
使用VMnet1虛擬網卡的計算機,不能訪問外網,外網也不能訪問VMnet1虛擬網卡的計算機。在圖3-5(圖3-6)的網絡中,虛擬機A十一、A十二、A13與B、Z沒有網絡關係,它們不能互相訪問。
若是虛擬機使用「橋接方式」,即VMnet0,則虛擬機至關於主機網絡中的一臺計算機,虛擬機若是選擇VMnet0(或橋接網絡),則經過「VMnet0虛擬交換機」鏈接到主機所屬網絡,這時與主機「VMnet0虛擬網卡」是否設置IP地址無關。
在圖3-5(圖3-6)的網絡拓撲中能夠看到,若是虛擬機A0一、A0二、A03使用VMnet0虛擬交換機,無論主機VMnet0虛擬網卡,是否設置了正確的IP地址、子網掩碼與網關,只要A0一、A0二、A03設置了正確的IP地址、子網掩碼、網關等參數,是能夠訪問主機以外網絡上的其餘計算機(例如B),以及Internet網絡上的其餘計算機(例如Z)。VMnet0虛擬機、虛擬網絡拓撲如圖3-8所示。
圖3-8 VMnet0虛擬網絡
其中B及Z,便可以是物理計算機,能夠也是使用了VMnet0虛擬網卡的虛擬機。在圖3-8中,使用VMnet0的虛擬機(A0一、A0二、A03)與物理主機A、B能夠互相訪問。
若是虛擬機使用VMnet8,則虛擬機能夠經過主機網絡,單向(從虛擬機到主機、外網)訪問物理主機以外的網絡,而主機之外的網絡不能訪問使用VMnet8的虛擬機。但這個的前提是,主機要能訪問外網(或網絡上的其餘計算機),若是主機不能訪問外網,則配置爲VMnet8虛擬網卡的虛擬機,也不能訪問外網。
將圖3-5(圖3-6)中與VMnet8的虛擬網絡與虛擬機,簡化成圖3-9的方式。
圖3-9 VMnet8虛擬網絡
主機A的VMnet8虛擬網卡,鏈接到VMnet8虛擬交換機,VMnet8虛擬交換機鏈接到「虛擬路由器」,「虛擬路由器」再鏈接到「VMnet0虛擬網卡(也即主機物理網卡)」,並經過「VMnet0虛擬網卡」鏈接到「VMnet0虛擬交換機」,「VMnet0虛擬交換機」鏈接到主機物理網絡。這也就代表,鏈接到「VMnet8虛擬交換機」的計算機(虛擬機或主機),須要經過「虛擬路由器」→「VMnet0虛擬網卡」→「VMnet0虛擬交換機」的方向鏈接到主機物理網絡。
虛擬機A8一、A82爲物理機A上的鏈接到VMnet8虛擬交換機的虛擬機。則A8一、A82能夠訪問A(雙向互訪),能夠經過「虛擬路由器」單向訪問虛擬機A0一、A0二、A03,並經過A單向訪問A所屬的網絡上的其餘計算機B,並能夠單向訪問Internet網絡上的其餘計算機Z。但A所屬網絡上的其餘計算機及Internet網絡上的其餘計算機(默認狀況下)不能訪問A8一、A82,因此說,這裏的訪問是「單向訪問」。
上節所說的「默認狀況」,是指在虛擬機上,啓用NAT與DHCP服務而且虛擬機的IP地址是「自動得到IP地址與DNS狀況下」,而且主機物理網卡,網絡參數(IP地址、子網掩碼、網關、DNS)設置正確的狀況下。
在啓用NAT與DHCP服務的狀況下,虛擬機會自動得到合適的IP地址、子網掩碼、網關與DNS。
若是虛擬機A8一、A82沒有設置爲「自動得到IP地址與DNS地址」,但「手動」設置的IP地址、子網掩碼和網關地址、DNS地址,與DHCP服務器分配的類似時,也是能夠訪問外網的。例如,在圖3-5(圖3-6)中,VMnet8虛擬交換機使用的是192.168.80.0/24網段,只要虛擬機設置了192.168.80.3~192.168.80.253的地址、子網掩碼爲255.255.255.0、網關地址爲192.168.80.2,就能夠訪問A及網絡上的其餘主機。
若是物理網絡上的其餘計算機(例如B、Z),想要訪問A8一、A82,則應該經過「VMnet0虛擬交換機」→「VMnet0虛擬網卡」→「虛擬路由器」→「VMnet8虛擬交換機」到A8一、A82,但「虛擬路由器」默認配置,是禁止「外網」訪問「內網」,在這裏,VMnet0虛擬網卡及VMnet0虛擬交換機所屬的網絡,屬性「外網」,而「VMnet8虛擬交換機」所屬網絡,屬於內網。
若是配置了這個「虛擬路由器」,例如,使用「端口映射」狀況, Internet網絡上的其餘計算機,也是能夠訪問虛擬機A8一、A82的。
前面介紹了使用同一種虛擬網卡的虛擬機與主機之間的關係,那麼,在同一個物理主機中,使用不一樣虛擬網卡的虛擬機,它們之間是什麼關係呢?
圖3-10 虛擬網絡拓撲圖3-
從圖3-10中能夠看到,鏈接到VMnet1的虛擬機(A十一、A十二、A13),與鏈接到VMnet8的虛擬機以及鏈接到VMnet0的虛擬機(A0一、A0二、A03),默認狀況下,是不能互相訪問的。
若是它們之間要想互相訪問,必須在物理主機A上,啓用默認路由或者代理服務器功能,才能夠互相(或者單向)訪問。例如,物理主機能夠安裝Windows Server 2003(或Windows 2000 Server、Windows Server 2008),在該計算機上,啓用「路由和遠程訪問」功能,而且將該計算機作成一個「路由器」,這時候,各虛擬機之間,能夠互相訪問。
若是物理主機安裝的是Windows 2000、XP等操做系統,能夠啓用「Internet鏈接共享功能」,讓VMnet1單向訪問VMnet8或VMnet0,反之亦然。例如,可讓VMnet8單向訪問VMnet1等,這都是很容易的事情。
VMnet8在默認狀況下,不能訪問VMnet1,能夠經過虛擬路由器,單向訪問VMnet0。若是VMnet8想要訪問VMnet1,則像VMnet1訪問VMnet8同樣,在主機A上啓用「路由器」或「Internet鏈接共享服務」。
3 VMnet0默認不能訪問VMnet八、VMnet1
VMnet0默認狀況下,不能訪問VMnet1與VMnet8。若是要想訪問VMnet8,除了啓用「路由器」或「Internet鏈接共享外」,還能夠經過配置「VMnet8」到「VMnet0」之間的「虛擬路由器」,進行端口映射的方式,訪問VMnet8中的虛擬機。