1. 程式人生 > >虛擬機器網路配置及原理

虛擬機器網路配置及原理

有的時候我們需要部署一些web專案或者部署叢集,我們可以申請一些遠端的伺服器,當然還有比較方便和低成本的方法,就是使用虛擬機器,一般的虛擬機器都是安裝Linux作業系統的,至於安裝win系統的,嗯,沒見過。那我們先來看一下區域網的網路配置及工作原理吧。

上面的示意圖中,存在三臺伺服器與一臺主機,這些伺服器是存在於機房真是存在的,這些伺服器通過連線一個路由器或者交換機來實現通訊,當然前提條件是這些伺服器的ip地址要與他們的閘道器地址在同一個網段,什麼意思呢,是比如上面的路由器的ip地址192.168.33.1,然後其他的三臺伺服器的ip地址是192.168.33.2等,他們是屬於同一個分段的。那個這裡就會有一個網段地址的名詞,網段地址是如何定於或者計算的呢?是通過IP與子網掩碼的二進位制表示形式做與運算,得出一個IP地址就作為這個網段的地址。 就如同上面個三個伺服器的ip地址分別與子網掩碼做與運算之後,都是得到同一個IP地址:192.168.33.0。

然後我們的主機電腦通過連線一個路由器或者交換機就可以訪問我們的伺服器了。當然訪問伺服器的話,我們每次都屬於伺服器的IP地址是不是顯得很麻煩呢,所以這裡就有引出一個域名的概念,舉個很簡單的例子,www.baidu.com 就是百度的域名,而我們訪問的百度實質上是訪問百度遠端伺服器的IP地址,而不是域名。所謂域名只不過是方便我們進行輸入或記憶。就行人一樣,人是有名字的,當然每個人都有一個唯一的id,就是我們的身份證號,那你說我們記住一個人,是記住他的名字簡單呢還是記住他的身份證號呢,很顯然是名字嗎,這樣理解域名是不是就很通俗一些了。

那我們是如何配置伺服器的域名呢? 在我們區域網中,我們可以通過配置伺服器的hosts檔案,配置資訊是伺服器名稱和ip地址。當然,這裡肯定是每臺伺服器都要配置了,不然在一臺伺服器配置,其他的伺服器是不會識別的,只有所有的伺服器都配置了,大家達成一個共識,伺服器之間才能達成通訊。有一個問題,在網際網路中域名是怎麼樣配置的呢?總不能在所有的伺服器上都進行配置吧,這顯然是不行的吧,好,那我們就看一下DNS:

在網際網路中,各個網際網路公司比如百度等,我們訪問的域名都是通過在DNS服務商進行註冊,就和我們配置hosts檔案是一個道理的,當我們請求一個域名,比如www.baidu.com時,我們首先會到本地的hosts檔案中進行查詢,www.baidu.com對應的IP地址時什麼,如果能查到的話,我們就去請求這個IP地址,如果沒有找到的話,說明我們的hosts檔案中沒有相關的配置,這個時候我們的請求會打到DNS伺服器,他會解析我們請求的域名,然後返回該域名註冊的IP地址,我們拿到這個IP地址,才可以訪問這個地址所在的伺服器。

以上是我們真實的區域網中的伺服器叢集網路原理,那麼相比較上面的,我們今天在看一下虛擬機器的網路配置型別與原理吧。

 我們在自己的電腦上面安裝多臺虛擬機器,可以虛擬一個服務叢集,這些叢集之間的網路配置方式有三種:NAT/橋接/僅主機 。

先說一下NAT方式,也是比較推薦的一種方式。我們在筆記本上面安裝vmWare,安裝完成之後,他會在電腦上註冊兩臺網絡卡驅動,同時vmWare還有一個更加強大的功能,是他能虛擬出一個路由器,提供給vmWare裡面安裝的虛擬機器進行連線以實現服務叢集之間的通訊。當然,我們自己的膝上型電腦會存在一個真實的物理網絡卡,他可以連線到外真實網路。所以只要我們的主機與虛擬機器能夠進行互相通訊,那麼我們安裝的虛擬機器是可以訪問外網的,這也是推薦NAT配置方式的一個原因。

這一種是橋接方式,大家應該也很熟悉,他的區別是在於虛擬機器和我們自己的電腦共用一個物理的交換機或路由器,所以虛擬機器與我們的電腦是在同一個網段的,和這個區域網中的其他主機也是在一個網段的,此時,虛擬機器就相當我們的主機,我們可以通過虛擬機器ping通我們同事的主機。這種方式有一個比較明顯的缺點,一旦我們的電腦IP發生移動,虛擬機器的ip如果是靜態IP的話,虛擬機器和主機的IP不在同一個網段,這顯然是不行的,需要我們手動進行更改。

然後還有一種方式 : HOST-ONLY方式,也就是僅主機連線的方式,這種方式僅僅是與主機進行連線通訊,虛擬機器不能訪問外網,也不能訪問區域網中的其他主機。這種方式也是不推薦使用的。