深入淺出VMware的組網模式

2021-06-05 06:48:58 字數 2324 閱讀 3938

**:黎明的豐收

大家都知道vmware的三種組網模式,分別為bridge,nat,host-only。vmware認為使用這三種組網模式則可以搭建出任意的網路拓撲了,事實上也正是如此。如果你對網路很精通,那麼應該很容易就可以理解vmware的網路配置模式,然而即使如此,vmware由於只是乙個虛擬機器,沒有形象的拓撲展示出來。本文簡單的給出三種組網模式的形象化的圖示,另外,vmware的幫助文件中也有相當詳細的介紹vmnet的章節。

顧名思義,bridge模式就是橋接模式,虛擬機器裡面的網絡卡直接橋接在宿主機的某乙個物理網絡卡所在的網段。示意圖如下:

這種方式很多時候是為像我這樣的懶人提供的,然而在非dhcp的情況下,很容易造成ip位址衝突,因此如果不是非要將虛擬機器配置在乙個網段,就不要用bridge模式。bridge模式的組網拓撲如下:

所謂nat模式就是將虛擬機器網絡卡隱藏在了乙個nat裝置之後,在外界看來,只能看到宿主機物理網絡卡,甚至連nat裝置都看不到,nat裝置默默地轉換著虛擬機器內部出來的連線的源位址,如下圖所示:

然而,有乙個細節,那就是上圖中的菱形到底是如何實現的,vmware到底如何在不同的宿主作業系統下模擬出乙個一致的nat裝置的。為了實現的一致和簡單,vmware使用了使用者態連線**的方式來實現nat裝置,因此nat裝置其實就是乙個使用者態程序,它來執行位址轉換,如下圖所示:

所謂的位址轉換其實不是真正的ip網路意義上的位址轉換,而是乙個**。虛擬機器裡面發起的連線在宿主機的nat程序中完全被截獲,然後nat程序偷梁換柱代替虛擬機器裡面的連線單獨向目的地發起乙個連線,隨後和目的地通訊,然後將資料**給虛擬機器。我們可以通過乙個簡單試驗來說明這一點:

...虛擬機器裡面只能發出syn包,然而宿主機裡面到74.125.128.94的連線已經建立,說明nat程序是乙個使用者態的連線**。同樣的結論還可以通過tcp抓包來觀測到,怎麼觀測呢?很簡單,檢視序列號即可,虛擬機器裡面抓取的資料報的序列號和確認號和宿主機上抓取的「同樣連線」(實際上不是乙個連線,而是被**的)的序列號以及確認號不是一致的,而我們知道,常規的nat只修改五元素,不會修改序列號。

可見,由於nat是乙個**,nat模式可能會造成目的主機tcp連線統計的不準確,比如上述實驗中,虛擬機器明明沒有連線成功目的地,然而宿主機的nat程序卻已經建立了乙個tcp連線。使用nat模式,就需要知道它所帶來的一切***。最後nat模式的組網拓撲如下:

這種模式其實是最純粹的了,虛擬機器和宿主機的一塊網絡卡(虛擬網絡卡)直連,僅此而已,如下圖所示:

可是host-only模式的虛擬機器如何連線外網呢?虛擬機器可以將宿主機作為一台路由器來看待,如此一來,剩下的問題就是如何來配置這個路由器了。以下步驟是必須的:

linux:sysctl -w net.ipv4.ip_forward=1

mac os:sysctl -w net.inet.ip.forwarding=1

windows:開啟tcpip的ipenablerouter登錄檔項

3.1.配置snat。linux使用iptables配置出口網絡卡的snat;mac os使用natd以及ipfw配置;windows使用網絡卡的「共享」上網來配置

3.2.配置純路由,主要是解決回程路由的問題,然而很多外網伺服器的路由我們沒法配置,因此這個只適用於實驗環境 host-only模式的組網拓撲如下所示:

vmware在宿主機中虛擬了幾塊網絡卡,這些網絡卡實際上都是一些帶有多個port的二層或者三層網路裝置。本文到此為止沒有談到dhcp,實際上每種組網模式都可以有一台dhcp伺服器插入這些虛擬裝置的port,為虛擬機器裡面的網絡卡分配ip位址。

預設情況下,vmware提供了vmnet0/1/8三塊虛擬網絡卡,vmnet0外界看不到,它實際上是乙個純鏈路層bridge,該bridge裝置沒有任何三層功能,該bridge的其中乙個port就是宿主機的某一塊物理網絡卡。vmnet1專門給host-only來使用,vmnet8專門用於nat,這兩個虛擬網絡卡都有三層的功能,都可以配置ip位址,實實在在是一塊宿主機上可見的網絡卡啊,除此之外,這兩塊網絡卡同時也是bridge裝置,只是該brdige並沒有橋接任何宿主機上的任何物理網絡卡。

深入淺出VMware的組網模式

大家都知道vmware的三種組網模式,分別為bridge,nat,host only。vmware認為使用這三種組網模式則可以搭建出任意的網路拓撲了,事實上也正是如此。如果你對網路很精通,那麼應該很容易就可以理解vmware的網路配置模式,然而即使如此,vmware由於只是乙個虛擬機器,沒有形象的拓...

深入淺出VMware的組網模式

大家都知道vmware的三種組網模式,分別為bridge,nat,host only。vmware認為使用這三種組網模式則可以搭建出任意的網路拓撲了,事實上也正是如此。如果你對網路很精通,那麼應該很容易就可以理解vmware的網路配置模式,然而即使如此,vmware由於只是乙個虛擬機器,沒有形象的拓...

深入淺出模板方法模式

一 引子這是乙個很簡單的模式,卻被非常廣泛的使用。之所以簡單是因為在這個模式中僅僅使用到了繼承關係。繼承關係由於自身的缺陷,被專家們扣上了 罪惡 的帽子。使用委派關係代替繼承關係 盡量使用介面實現而不是抽象類繼承 等等專家警告,讓我們這些菜鳥對繼承 另眼相看 其實,繼承還是有很多自身的優點所在。只是...