2011年3月20日 星期日

VMware的網路環境介紹

《VMware》

  一般網路上的封包,在區域網路內是用廣播的方式,網路卡判斷本機的實體位址相符時,才會收下這封包,而丟棄其它封包。

  而VMware在安裝後,除了實體的網路卡,本身已經有一個實體位址(MAC Address)外,會另外新增兩片網路卡(Host-only及NAT)及數個網段(VMnet),這兩片網路卡的功用是:

□VMware虛擬的NAT網卡:
連接到一個類似IP分享器的LAN環境,Host OS會使用192.168.n.1這個IP來代表實體主機,192.168.n.2則是VMware建立的虛擬閘道(Gateway)。(註:這個n是每次安裝VMware後隨機產生的,可以修改)

□VMware虛擬的Host-only網卡:
在虛擬的VMnet環境內,會使用192.168.h.1這個IP來代表實體主機,192.168.h.2則是一台動態主機伺服器(DHCP Server),沒有其它功能。(註:這個h是每次安裝VMware後隨機產生的,可以修改)

所以可以知道,一台裝好VMware的主機,至少會有三張網卡(邏輯上的):

1. 實體的網路卡,裡面至少要啟動VMware Bridge。

2. 虛擬NAT網路卡,使用位址(IP: 192.168.n.1)及使用閘道(Gateway: 192.168.n.2)。

3. 虛擬Host-only網路卡,使用位址(IP: 192.168.h.1),但無閘道。

  而在新增VM時,同一台VM最多可以有三張網卡(以VMware Workstataion 5.x為例),有四種選擇:Bridge、NAT、Host-only、VMnet。這四種的差別,就在於:

□Bridge:由於每新增一片VM用的網卡,也會產生一組實體位址(MAC Address),所以如果VM執行中,有使用到Bridge網路時,就會把實體的網路卡改為雜湊模式,而任何透過Bridge的動作,就像把VM跟Host OS接在同一個Hub上,Host OS接在怎樣的網路環境,VM的Bridge網路都會接到相同的網路環境。

□NAT:由於VMware會建立一個網段192.168.n.x,而由192.168.n.2擔任DHCP及Gateway功能,所以有VM新增NAT網卡時,就會接到192.168.n.x這個網段,並且可能會取得192.168.n.3~254的IP,可以透過192.168.n.2對外連線,或者向192.168.n.1存取Host OS的資源。

□Host-only:類似NAT網段,會由VMware建立192.168.h.x網段,而由192.168.h.2擔任DHCP主機,但是這個網段沒有Gateway,不直接與其他網段連線,也可以向192.168.h.1存取Host OS的資源。

□VMnet:沒有預設任何IP,只是接在同一個VMnet內的虛擬網卡,都可以互傳資料。

那麼,這樣的環境該怎樣應用呢?
首先,確定VM會用到的網路架構
比如要測試iptables功能,主機1需要兩片網卡:

a. 對外採用Bridge,設定正確的IP。

b. 對內採用VMnet A。

主機2是Client端,只需要一張網卡,接在VMnet A上。

其次,執行,就這樣....沒有了....

其實VMware模擬的網路環境算蠻多種的,但是實際應用上,很容易在架構上搞混,例如:

1. 測試用的主機不該使用Bridge:由於測試用的主機可能有DHCP Server功能,或者電腦名稱,網域名稱與現有環境相同,接在Bridge會造成現有環境衝突。

2. 不同網段間的IP範圍不該相同:由於IP網路的特性,同一個網段會採用廣播的方式,不同網段則是送往Gateway或丟棄,但是許多使用者將不同網段設定了相同IP,就會造成VM無法判斷該送往那個虛擬的網段,導致完全無法連線。

3. 被字義上混淆。由於NAT/Bridge/Host-only的字義,沒有看說明的可能會有自己的解讀方式,造成使用上的混淆。

所以,建議在使用VMware測試前,務必做到:

1. 去看一些網路基礎與概論的資料(ISO/OSI, TCP/IP),了解橋接器(Bridge)、路由器(Router)、網路位址轉譯(NAT)等用詞的概念。

2. 先準備一個架構圖,畫出不同網段,各網段連接的主機,各網段的IP。

3. 決定各主機需要的網路卡類型。

4. 才開始運作。

沒有留言: