2010年2月26日 星期五

在 VirtualBox 中的網路卡模式設定

名詞定義
vbox --> VirtualBox 的簡稱
Host --> 執行 vbox 的電腦, 一般來說是一台真實的電腦, 除非你是在虛擬電腦上再安裝一次 vbox 並產生虛擬電腦中的虛擬電腦. (很饒舌吧!)
Guest --> 透過 vbox 產生出來的虛擬電腦.


虛擬機器的運用上, 有很大的部份都會運用到網路功能, 在網路的設定上, vbox 提供了 5 種不同的模式, 分別說明如下(以 vbox 3.x 為例):

1. 未掛附 (Not Attached)
會在 Guest 環境中出現一張網卡, 但是就像沒有插網路線一樣. 這和未勾選 "啟用網路卡" 不同, 沒有啟用網路卡時, 就好像在電腦上沒有安裝網卡, 而 未掛附是指未接網路線, 在測試程式時, 各軟體的執行行為些差異.

2. NAT(Network Address Translation) --> vbox的預設值
就像在 Guest 和 Host 之間有一道防火牆, Guest 可以透過這道防火牆連線到外部, 但外部不能連進來. 這個設定對 Guest 來說基本上不需什麼額外的設定, IP 的取得也都由 vbox 內建的 dhcpserver 提供. 當然相對也有一些限制, 像外部電腦廣播的 UDP封包就會收不到, 所以不能瀏覽網芳的電腦列表, 外部不能直接連線所以不能建立像 Web Server, FTP server 等服務. 還有一些細節, 可參考 vbox 的說明檔.

3. 橋接網路(Bridged Adapter)
vbox 會在 host 虛擬一張網卡, 過濾並綁定在 Host 上的其中一張網卡上的封包, 這樣可以讓 Guest 就好像一台實體的機器一樣, 取得一個實體的IP, 不管從 Host 或是 Guest 來看, 就好像各自擁有一張獨立的網卡, 並可任意連線到任一台機器(只要原本實體網卡可連線). 對 Host 以外的機器, 也可以認得 Guest的IP 並進行存取.

4. 內部網路(Internal Adapter)
和 橋接網路 很像, Guest 可以直接和外部的電腦進行溝通, 不過有一個限制就是 "外部的電腦" 僅限定由 vbox 產生的 Guest 虛擬電腦. 在 內部網路 可以達成的功能, 實際上皆可用 橋接網路取得, 但內部網路有 2 個額外的好處. 第一是速度, 因為只在 Guest 中溝通, 實際上並不一定需要透過實體的網路卡處理封包, 而是由 vbox 的虛擬網卡直接傳送資料, 效能較佳. 第二是安全性, 非 Guest 環境不能存取, 可減少被外部攻擊的機率.

5. 主機網路(Host-Only Adapter)
和 內部網路 很像, 但可連線的範圍更小, 只限定在同一台主機的 Guest 才能連線. 一般可以用在內部測試時使用, 不需和外部進行連線, 例如測試 Client/Server 程式, 即可在 Host 上建立2個 Guest 設定成 Host-Only 即可開始測試.

在上述的5種模式中, NAT 預設一定會啟動 DHCP 分配IP, Bridge 則和你的實體網卡一樣, 依實際環境決定是否需手動設定 IP. 而在 內部網路 和 主機網路 , 因為不能存取外部的 DHCP server, 所以想自動取得 IP, 就需啟動虛擬網卡的 DHCP 功能, 在 vbox 的 檔案 / 偏好設定 / 網路 / Host-Only networks 中可以選取虛擬網卡並啟動 DHCP server, 這樣你的電腦上各個 Guest 就都可以自動取得 IP 了.

 附上一張以 Windows XP 為 Host, Ubuntu (Linux) 為 Guest , 設定 橋接網路 開啟網芳目錄的畫面.

沒有留言:

張貼留言