1. 程式人生 > >VirtualBox網路之nat網路

VirtualBox網路之nat網路

        NAT網路主要作用是用於虛擬機器與外網互通,它是宿主機內部的local網路,只有本主機內部可見,不能跨宿主機。

1.設定預設電腦儲存位置

VirualBox建立虛擬機器時會佔用宿主機的磁碟空間,預設情況下會是C盤,C盤一般是系統盤,不希望在C盤下儲存使用者資料,可通過如下步驟更改預設設定。啟動VitualBox後,點選選單欄中的管理按鍵,從彈出的下拉列表裡選擇全域性設定,然後再從彈出的對話方塊中選擇常規選項。預設虛擬電腦位置這一欄設定成資料盤下的某個目錄,如下圖1所示:

  

                                               圖1

2.建立NAT網路

在建立虛擬機器併為其指定NAT網路時,會彈出如下圖2所示的介面,其中包含網路地址轉換(NAT)與NAT網路兩個選項,這兩個選項有什麼區別呢?可以這樣理解,網路地址轉換(NAT)為VirtualBox內建的已經建立好的NAT網路,其網段為10.0.2.0/24,這個網路不允許使用者管理,為了直觀起見,在本例中建立自己的NAT網路。


                                                                        圖2

點選選單中的管理按鍵,選擇全域性設定,再從對話方塊中選擇網路,然後點選介面上的加號圖示,彈出NAT網路明細對話方塊。其中網路名稱隨意,網路CIDR一欄的地址不能與宿主機所屬的任何一個物理網路衝突,也不能與宿主機中已經存在的其它虛擬網路衝突,下圖3中,CIDR為10.0.3.0/24,VirtualBox會將10.0.3.1這個IP設定成閘道器,並且選中支援DHCP選擇。這樣就建立了網路號為10.0.3、具備DHCP功能、預設閘道器為10.0.3.1的NAT網路,這些功能都是Virtualbox通過一個服務程序實現的。

  

                                                     圖3

3.建立虛擬機器

NAT網路已經就緒,接下來可以建立虛擬機器了。

第一步:點選工具欄上的建立按鍵,在彈出的對話方塊中點選專家模式,如下圖4所示,輸入新建立虛擬機器的名稱,選擇相對應的型別、版本。為虛擬機器分配記憶體,這裡是1G,這個是建立者自行分配。選擇現在建立虛擬硬碟,並點選建立。


                                                            圖4

第二步:建立虛擬磁碟,虛擬機器也需要磁碟。在VirtualBox中,虛擬機器中的磁碟其實就是宿主機中的某個特殊格式的檔案,現在建立這個檔案。如下圖5所示。圖中ubuntu-01就是檔名,檔案大小設定成10G,虛擬磁碟檔案型別有六種,對於某些特殊的作業系統,作業系統中的特殊應用如資料庫,為了實現某些特殊的功能或者更好的IO效能可能會對這個有要求,本例中可任選其一,然後點選建立,就會在文章一開頭設定的目錄下,生成一個名為ubuntu-01的檔案,這個檔案就是虛擬機器的系統盤。如果有必要的話,可以建立多個這種檔案,然後將建立好的檔案掛接到虛擬機器上去,就像在物理機下新插入一張磁碟一樣。


                                                  圖5

第三步:建立網絡卡。完成以上兩步後,已經擁有了一個可以安裝作業系統的虛擬機器了,如下圖6所示,


                                          圖6

在安裝作業系統之前,可以對虛擬機器進行更詳細的控制,如指定CPU數,新增網絡卡等。先選中虛擬機器,然後點選工具欄上的設定按鍵,從彈出的對話方塊中選擇系統選項,然後再點處理器,如下圖7,可以看到這個虛擬機器預設使用一個CPU,就採用預設設定。


                                                                         圖7

然後再點選網路選項,如下圖8所示。首先只啟用網絡卡1,其它不啟用。連線方式選擇NAT網路,然後從介面名稱的下拉列表中選擇在第建立NET網路步驟中指定的NAT網路名稱。高階選項中採用預設值,Virtualbox自動生成的MAC地址,這個就是虛擬網絡卡的MAC地址了。


                                                                          圖8

虛擬機器CPU、磁碟、網絡卡都有了,就像一臺真正的物理機了。然後按相同步驟建立另外一臺虛擬機器ubuntu-02。在安裝作業系統之前,先俯瞰一下虛擬機器的目前的網路示意圖,看一下VirtualBox為做了那些事情,如下圖9。


                                                       圖9

首先,VirtualBox為建立了一個虛擬的二層交換機,兩臺虛擬機器中的網絡卡都聯接在這臺交換機上。同時,此交換機具備DHCP功能,管理10.0.3.0/24的地址池,它的閘道器地址是10.0.3.1。另外DHCP還負責管理DNS地址,這裡的DNS地址的來源是宿主機,VirtualBox從宿主機拿到後設置在這裡。當虛擬機器啟動時,DHCP服務會為它分配IP地址,設定閘道器,設定DNS伺服器地址。

其次,VirtualBox為建立了一個三層的虛擬路由器,路由器中的路由表來源於宿主機,其實是與宿主機共享路由表。同時,因為建立的是NAT網路,這個路由器除了一般的路由功能,還是一個配置了NAT功能的路由器,實現宿主機IP地址+埠號與虛擬機器IP地址+埠號之間的對映,最終實現與外部網路的通訊。

可以看出,已經實現了一個完整的內部網路,包括帶DHCP功能的二層交換機與帶NAT功能的三層路由器。

4.安裝作業系統

有了網路,有了虛擬機器,接下來就是安裝作業系統了。為兩臺虛擬機器安裝ubuntu作業系統,使用的ISO檔案為ubuntu-16.04.3-server-amd64.iso,沒有的話可以去官網先下載到本地。先選中建立好的虛擬機器,再點選工具欄中的啟動按鍵,會彈出一個對話方塊,如下圖10所示,在對話方塊中指定本地的iso檔案的路徑,然後再按啟動,餘下的步驟與在物理相上安裝作業系統一樣,此處不表。


                                                            圖10

為兩臺虛擬機器安裝好作業系統,然後啟動。確認一下ubuntu-01這臺虛擬機器的網路設定。

確認網絡卡配置,如下圖11


                                                  圖11

enp0s3就是在建立網絡卡步驟中建立,它分配到的IP地址為10.0.3.5。由圖9可知,這個IP是由宿主機中的DHCP指定。

接下來看一下路由表,如圖12。


                                                      圖12

共有兩條配置,使用的網絡卡都是dnp03s.當目錄主機屬於10.0.3這個網路時,直接交付,因為處於同一網段,所以不起路由,就是第二條配置。除10.0.3網段以外的目的主機,都走預設路由10.0.3.1,此時資料包就會通過圖9中的網路地址轉換,對映成宿主機IP,然後通過宿主機路由,最後通過宿主機上的網絡卡傳送出去,反之已然。

確認一下DNS配置,如圖13,與宿主機配置相同.


                                                           圖13

ping一下外網,如圖14,是通的,能正確解析域名。


                                                                             圖14

 ping一下另一臺虛擬機器,如圖15也是通的。


                                                            圖15

5.VirtualBox NAT網路常見問題及解決方法

問題1:安裝作業系統時提示無法通過DHCP服務配置網路

VirtualBox是通過某個服務程序提供網路服務的,如果建立好網路後長時間不用或者運行了很長時間,相關的程序可能會被動或者主動的down掉,可重啟VirtualBox,或者像如圖3中所示的將啟用網路處的對號去掉,然後再重新勾選,一般就可以解決了。

問題2:ping不通過外網

由網9可知道,與外網的通訊實際上是先通過NAT,然後由宿主機代為轉發。ping不通有可能是宿主機本身就不可以,有可能是因為宿主機防火牆的限制,這個時候可以關閉宿主機防火牆,也可能是宿主機所在網路的限制,網路管理員限制了特定埠以及特定流量包通過本網路。ping不通不等於不能聯外網。

問題3:無法解析域名。

這個問題是因為虛擬機器DNS伺服器IP地址設定不正確。一般情況下虛擬機器中的DNS設定與宿主機是一樣的,但是也不盡然。如果是在公司建立的網路,然後把電腦拿回家用,這個時候宿主機的DNS設定就會發生變化,而VirtualBox目前並不能實時的將宿主機的這種變化反映到虛擬機器中去,而虛擬機器中原來的DNS伺服器地址在新的網路環境下可能是無效的,從而無法解析域名。可以手動設定成正確的DNS伺服器地址,也可以像問題1一樣重新啟動VirtualBox,然後在虛擬機器中重新啟動一下網路服務,保證雙方一致。

問題4:無法聯到外網。

虛擬機器安裝好以了以後,在後續的操作時有意無意之間,改變了虛擬機器的路由表或者iptables設定,導致網路不通,手動恢復即可。

總結:如果遇到網路問題,首先重新啟動VirtualBox,無法解決的話就檢視虛擬機器網路配置,無非就是網絡卡配置、DNS配置、路由表、iptables等,找到問題解決即可。