深入理解VMware虛擬網絡

VMware Workstation是一款非常不錯的虛擬機軟件,許多愛好者用VMware Workstation設計多種實現環境做測試。VMware Workstation的虛擬網絡部分,功能非常的強大,但對於初學者來說,稍顯複雜。基於此,本文將深入介紹VMware的虛擬網絡,讓讀者深刻理解VMware虛擬網絡之間的關係,從而可以設計多種複雜的廣域網、局域網的實驗環境,滿足讀者的實驗需求。由於VMware Server與VMware Workstation一體相乘,所以本文的內容也同樣適用於VMware Server。同時,VMware Workstation的虛擬網絡,也是VMware企業產品VMware ESX Server的基礎,熟悉了VMware Workstation的虛擬網絡後,對大家深入學習、使用VMware Server也有一定的幫助作用。

3.1 VMware虛擬網絡概述

VMware Workstation(或VMware Server)安裝在物理計算機,這臺計算機稱作“主機”,假設這臺主機有一塊物理網卡,並且連接到網絡的一臺交換機中,此時,網絡拓撲如圖3-1所示。

clip_p_w_picpath002[4]

圖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、VMnet1、VMnet8,其中VMnet0的網絡屬性爲“物理網卡”,VMnet1與VMnet8的網絡屬性爲“虛擬網卡”。在默認情況下,VMnet1虛擬網卡的定義是“僅主機虛擬網絡”,VMnet8虛擬網卡的定義是“NAT網絡”,同時,主機物理網卡被定義爲“橋接網絡”,主機物理網卡也可以稱爲VMnet0

在默認情況下,VMware Workstation虛擬網絡拓撲關係如圖3-2所示。

clip_p_w_picpath004

圖3-2 虛擬機網絡拓撲

在圖3-2中,有3個虛擬交換機、2塊虛擬網卡、1塊物理網卡、1個虛擬路由器,組成了默認虛擬網絡的整個結構。當VMware Workstation(或VMware Server)安裝的時候,會從192.168.x.0/24(在以前的某個版本中,也用過172.16.0.0/12的地址段,但很快放棄了)的地址中,隨機選擇2個地址段,並將每個段的第1個地址分配給對應的虛擬網卡(VMnet1與VMnet8)使用。

在圖3-2中, VMnet1使用了192.168.10.0/24、VMnet8使用了192.168.80.0/24的地址段,這是我習慣使用的地址段,你可以根據自己的愛好與習慣設置。如果你想修改這些IP地址,在後文會有介紹。

在圖3-2中,還有1個虛擬DHCP服務器沒有標出,該虛擬DHCP服務器,用來爲使用VMnet1、VMnet8(或其他)虛擬網卡(或者說連接到VMnet1、VMnet8虛擬交換機)的虛擬機自動分配IP地址、子網掩碼、網關與DNS等參數。

3.2 虛擬機與虛擬網卡、網絡屬性

在VMware Workstation中,每個虛擬機最多可以支持10塊虛擬網卡,這些虛擬網卡,可以(根據需要)連接到不同的虛擬網絡,例如圖3-2中的VMnet1、VMnet8或VMnet0虛擬交換機。有兩種情況可以選擇虛擬網絡,一種是在創建虛擬機的時候,另一種是在創建虛擬機後,在“虛擬機設置”中修改虛擬網絡屬性。

(1)在創建虛擬機的時候,在“Network Type(網絡屬性)”頁中,在“Network connection(網絡連接)”選項組中,爲當前虛擬機選擇連接到的虛擬網絡,如圖3-3所示。

clip_p_w_picpath006

圖3-3 網絡屬性

(2)在虛擬機創建完成後,修改“虛擬機設置”,也可以修改虛擬網絡屬性,如圖3-4所示。

clip_p_w_picpath008

圖3-4 修改虛擬機設置

不管是在創建虛擬機的時候,選擇網絡屬性,還是在“虛擬機設置”頁中,每塊虛擬網卡,都有3種選擇,分別是VMnet0(橋接網絡)、VMnet1(僅主機網絡)與VMnet8(NAT網絡)三種連接屬性,還有一種是“不使用網絡連接”,就是表明這塊虛擬網卡,不連接到任何網絡。下面分別介紹連接到VMnet1、VMnet8、VMnet0虛擬交換機時的網絡屬性。

【說明】(1)在VMware Workstation 6.0之後,新增加了“Team”功能,同時在“Team”中也增加了Team虛擬交換機。在Team中的虛擬機,除了可以使用VMnet0、VMnet1、VMnet8等虛擬交換機外,還可以使用Team中的虛擬交換機。

(2)VMware Workstation(或VMware Server),除了VMnet0、VMnet1、VMnet8虛擬交換機外,還可以創建(或添加)VMnet2~VMnet7、VMnet9等虛擬交換機,這些虛擬交換機的屬性,可以在“僅主機網絡”、“橋接網絡”、“NAT網絡”之間選擇。

3.3 VMnet1、VMnet8、VMnet0虛擬網卡的關係

在VMware Workstation或VMware Server的虛擬機中,虛擬機之間、主機之間的網絡關係可以參照圖3-5所示的網絡拓撲。

clip_p_w_picpath002[6]

圖3-5 虛擬機與主機網絡拓撲

在圖3-5中,虛擬機A11、A12、~、虛擬機A03等,是VMware Workstation(或VMware Server)創建的虛擬機。虛擬機A11、A12、A13使用VMnet1(僅主機網絡)虛擬網卡,則在圖3-5的網絡拓撲中,“相當於”連接到VMnet1虛擬交換機;虛擬機A81、A82使用VMnet8虛擬網卡(NAT網絡,則相當於連接到VMnet8虛擬交換機);虛擬機A01、A02、A03使用VMnet0虛擬網卡(橋接網絡,相當於連接到VMnet0虛擬交換機)。

物理主機B,代表與物理主機A屬於同一局域網內的其他一臺或多臺計算機。這裏面的“同一局域網”,表示可以是同一子網(VLAN)的計算機,也可以是不同子網的計算機。

Internet計算機Z,代表Internet網絡上的其他計算機或服務器,可以是一臺或多臺的計算機。

將圖3-5的關係,畫成網絡拓撲的方式,如圖3-6所示。

clip_p_w_picpath004[4]

圖3-6 簡化後的網絡拓撲

下面介紹各虛擬機之間與主機之間的網絡關係。

3.3.1 虛擬機使用VMnet1虛擬網卡

當虛擬機選擇使用VMnet1虛擬網卡時,表示這臺虛擬機連接到VMnet1虛擬交換機。

VMnet1,官方定義“僅主機網絡”,其默認的網絡行爲,只與主機或其他使用VMnet1虛擬網卡的虛擬機有網絡連接。使用VMnet1虛擬網卡的虛擬機,不能訪問與物理主機之外的其他計算機.

在圖3-5(圖3-6)中,虛擬機A11、A12、A13使用VMnet1虛擬網卡,表明連接到VMnet1虛擬交換機。在圖3-5(圖3-6)的網絡拓撲中,虛擬機A11、A12、A13、物理主機A之間可以互相通訊。將圖3-5(圖3-6)中與VMnet1相關的計算機,簡化成圖3-7所示的拓撲。

clip_p_w_picpath006[4]

圖3-7 VMnet1虛擬網絡拓撲圖3-

1在同一交換機上的計算機怎樣才能通訊

深入理解:“可以互相通訊”,這句話表示,當A11、A12、A13、A都連接到VMnet1虛擬交換機時,這4臺計算機可以互相通訊,但不一定能通訊。爲什麼呢?如果A11、A12、A13、A沒有設置同一子網的IP地址,這是不能互相通訊(互相訪問)的;或者雖然設置同一網段的地址,但A11、A12、A13、A有防火牆,禁止其他計算機訪問,這時也是不能通訊的。

只有當A11、A12、A13、A連接到同一個虛擬交換機,並且在網一網段(IP地址還不能衝突)、並且沒有防火牆(或者有防火牆,但允許其他計算機訪問)時,纔有可能通訊。

小實驗:在VMware Workstation中創建1臺虛擬機,VMnet1虛擬網卡,設置與主機VMnet1相同網段的IP地址,或者在虛擬機中設置“自動獲得IP地址”,關閉主機與虛擬機的防火牆,嘗試用“網上鄰居”或使用ping命令,檢查這個虛擬機與主機能否互相通訊。

2 注意主機多塊網卡

還要注意物理主機A,在A上有三塊網卡(1塊物理網卡、2塊虛擬網卡),分別是VMnet1、VMnet8和物理網絡(稱爲VMnet0),如果A11、A12、A13是192.168.10.0/24網段的計算機,但VMnet1不是192.168.10.0/24網段的,但你在VMnet8或VMnet0設置的是與A11、A12、A13同一網段的地址(例如192.168.10.0/24)時,A與A11(或A12、A13)也是不能通訊的。

3 在同一交換機上的計算機只要是同一網段的地址即可

另外,還需要說明,雖然在“虛擬網絡設置”中,設置VMnet1虛擬網段使用192.168.10.0/24網段,但在使用中,當A11、A12、A13連接到同一個虛擬交換機時,只要A11、A12、A13、物理機A的VMnet1虛擬網卡,設置同一網段的地址(可以是192.168.10.0/24,也可以是其他網段,但最好不要與VMnet8、VMnet0網段衝突),A11、A12、A13、A就可以互相通訊。

4 使用VMnet1虛擬網卡的計算機默認不能訪問外網

使用VMnet1虛擬網卡的計算機,不能訪問外網,外網也不能訪問VMnet1虛擬網卡的計算機。在圖3-5(圖3-6)的網絡中,虛擬機A11、A12、A13與B、Z沒有網絡關係,它們不能互相訪問。

3.3.2 虛擬機使用VMnet0虛擬網卡

如果虛擬機使用“橋接方式”,即VMnet0,則虛擬機相當於主機網絡中的一臺計算機,虛擬機如果選擇VMnet0(或橋接網絡),則通過“VMnet0虛擬交換機”連接到主機所屬網絡,這時與主機“VMnet0虛擬網卡”是否設置IP地址無關。

在圖3-5(圖3-6)的網絡拓撲中可以看到,如果虛擬機A01、A02、A03使用VMnet0虛擬交換機,不管主機VMnet0虛擬網卡,是否設置了正確的IP地址、子網掩碼與網關,只要A01、A02、A03設置了正確的IP地址、子網掩碼、網關等參數,是可以訪問主機之外網絡上的其他計算機(例如B),以及Internet網絡上的其他計算機(例如Z)。VMnet0虛擬機、虛擬網絡拓撲如圖3-8所示。

clip_p_w_picpath008[4]

圖3-8 VMnet0虛擬網絡

其中B及Z,即可以是物理計算機,可以也是使用了VMnet0虛擬網卡的虛擬機。在圖3-8中,使用VMnet0的虛擬機(A01、A02、A03)與物理主機A、B可以互相訪問。

3.3.3 虛擬機使用VMnet8虛擬網卡

如果虛擬機使用VMnet8,則虛擬機可以通過主機網絡,單向(從虛擬機到主機、外網)訪問物理主機之外的網絡,而主機以外的網絡不能訪問使用VMnet8的虛擬機。但這個的前提是,主機要能訪問外網(或網絡上的其他計算機),如果主機不能訪問外網,則配置爲VMnet8虛擬網卡的虛擬機,也不能訪問外網。

將圖3-5(圖3-6)中與VMnet8的虛擬網絡與虛擬機,簡化成圖3-9的方式。

clip_p_w_picpath010

圖3-9 VMnet8虛擬網絡

主機A的VMnet8虛擬網卡,連接到VMnet8虛擬交換機,VMnet8虛擬交換機連接到“虛擬路由器”,“虛擬路由器”再連接到“VMnet0虛擬網卡(也即主機物理網卡)”,並通過“VMnet0虛擬網卡”連接到“VMnet0虛擬交換機”,“VMnet0虛擬交換機”連接到主機物理網絡。這也就表明,連接到“VMnet8虛擬交換機”的計算機(虛擬機或主機),需要通過“虛擬路由器”→“VMnet0虛擬網卡”→“VMnet0虛擬交換機”的方向連接到主機物理網絡。

1 NAT中的單向訪問關係

虛擬機A81、A82爲物理機A上的連接到VMnet8虛擬交換機的虛擬機。則A81、A82可以訪問A(雙向互訪),可以通過“虛擬路由器”單向訪問虛擬機A01、A02、A03,並通過A單向訪問A所屬的網絡上的其他計算機B,並可以單向訪問Internet網絡上的其他計算機Z。但A所屬網絡上的其他計算機及Internet網絡上的其他計算機(默認情況下)不能訪問A81、A82,所以說,這裏的訪問是“單向訪問”。

2 NAT中的默認情況

上節所說的“默認情況”,是指在虛擬機上,啓用NAT與DHCP服務並且虛擬機的IP地址是“自動獲得IP地址與DNS情況下”,並且主機物理網卡,網絡參數(IP地址、子網掩碼、網關、DNS)設置正確的情況下。

在啓用NAT與DHCP服務的情況下,虛擬機會自動獲得合適的IP地址、子網掩碼、網關與DNS。

如果虛擬機A81、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及網絡上的其他主機。

3 允許外網訪問NAT的虛擬機

如果物理網絡上的其他計算機(例如B、Z),想要訪問A81、A82,則應該通過“VMnet0虛擬交換機”→“VMnet0虛擬網卡”→“虛擬路由器”→“VMnet8虛擬交換機”到A81、A82,但“虛擬路由器”默認配置,是禁止“外網”訪問“內網”,在這裏,VMnet0虛擬網卡及VMnet0虛擬交換機所屬的網絡,屬性“外網”,而“VMnet8虛擬交換機”所屬網絡,屬於內網。

如果配置了這個“虛擬路由器”,例如,使用“端口映射”情況, Internet網絡上的其他計算機,也是可以訪問虛擬機A81、A82的。

3.3.4 使用不同虛擬網卡的虛擬機之間的網絡關係

前面介紹了使用同一種虛擬網卡的虛擬機與主機之間的關係,那麼,在同一個物理主機中,使用不同虛擬網卡的虛擬機,它們之間是什麼關係呢?

clip_p_w_picpath011

圖3-10 虛擬網絡拓撲圖3-

1 VMnet1默認不能訪問VMnet8與VMnet0

從圖3-10中可以看到,連接到VMnet1的虛擬機(A11、A12、A13),與連接到VMnet8的虛擬機以及連接到VMnet0的虛擬機(A01、A02、A03),默認情況下,是不能互相訪問的。

如果它們之間要想互相訪問,必須在物理主機A上,啓用默認路由或者代理服務器功能,纔可以互相(或者單向)訪問。例如,物理主機可以安裝Windows Server 2003(或Windows 2000 Server、Windows Server 2008),在該計算機上,啓用“路由和遠程訪問”功能,並且將該計算機做成一個“路由器”,這時候,各虛擬機之間,可以互相訪問

如果物理主機安裝的是Windows 2000、XP等操作系統,可以啓用“Internet連接共享功能”,讓VMnet1單向訪問VMnet8或VMnet0,反之亦然。例如,可以讓VMnet8單向訪問VMnet1等,這都是很容易的事情。

2 VMnet8默認不能訪問VMnet1

VMnet8在默認情況下,不能訪問VMnet1,可以通過虛擬路由器,單向訪問VMnet0。如果VMnet8想要訪問VMnet1,則像VMnet1訪問VMnet8一樣,在主機A上啓用“路由器”或“Internet連接共享服務”。

3 VMnet0默認不能訪問VMnet8、VMnet1

VMnet0默認情況下,不能訪問VMnet1與VMnet8。如果要想訪問VMnet8,除了啓用“路由器”或“Internet連接共享外”,還可以通過配置“VMnet8”到“VMnet0”之間的“虛擬路由器”,進行端口映射的方式,訪問VMnet8中的虛擬機。

轉:http://wangchunhai.blog.51cto.com/225186/381225

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