VMware 的3 種網絡模型和虛擬機本機連接IP設置

 在說到VMware 的網絡模型之前,先說一下VMware 的幾個虛擬設備:
■ VMnet0:這是VMware 用於虛擬橋接網絡下的虛擬交換機;
■ VMnet1:這是VMware 用於虛擬Host-Only 網絡下的虛擬交換機;
■ VMnet8:這是VMware 用於虛擬NAT 網絡下的虛擬交換機;
■ VMware Network Adapter VMnet1:這是Host 用於與Host-Only 虛擬網絡進行通信的虛擬網卡;
■ VMware Network Adapter VMnet8:這是Host 用於與NAT 虛擬網絡進行通信的虛擬網卡;

關於橋接網絡

]Host 的物理網卡和Guest 的網卡在VMnet0 交換機上通過虛擬網橋進行橋接,這也就是說,我的物理網卡和Guest 的虛擬網卡(注:這個虛擬網卡不等於VMware Network Adapter VMnet1 或者VMware Network Adapter VMnet8)處於同等地位,此時的Guest 就好像我的Host 所在的一個網段上的另外一臺機器。我的Host 的物理網卡配置如下:IP 地址爲手工指定方式,網關爲192.168.0.1,那麼我的Guest 就應該和我的Host 處於同一個網段,它的配置可爲:
Ethernet adapter 本地連接:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : Broadcom NetXtreme 57xx Gigabit Controller
        Physical Address. . . . . . . . . : 00-1A-A0-A9-DC-1B
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . . : 192.168.0.2
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.0.1



IP 地址爲手工指定方式,網關爲192.168.0.1,那麼我的Guest 就應該和我的Host 處於同一個網段,它的配置爲:

Ethernet adapter Bridged:
        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : Broadcom NetXtreme 57xx Gigabit Controller
        Physical Address. . . . . . . . . : 00-1A-A0-A9-DC-1B
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . . : 192.168.0.10
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.0.1



ping一下虛擬機和真機的ip地址,檢查連接是否成功

關於NAT網絡

在NAT 網絡中,會使用到VMnet8 虛擬交換機,Host 上的VMware Network Adapter VMnet8 虛擬網卡被連接到VMnet8交換機上,來與Guest 進行通信,但是VMware Network Adapter VMnet8 虛擬網卡僅僅是用於和VMnet8 網段通信用的,它並不爲VMnet8 網段提供路由功能,處於虛擬NAT 網絡下的Guest 是使用虛擬的NAT 服務器來連接到Internet 的。VMware 功能非常強大,在NAT 網絡下,我們甚至可使用Port Forwarding 功能,來把Host 的某一個TCP 或者UDP 端口映射到Guest 上!我的VMware Network Adapter VMnet8 虛擬網卡的IP 地址配置如下:Ethernet adapter 本地連接:


Ethernet adapter VMware Network Adapter VMnet8:


        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
        Physical Address. . . . . . . . . : 00-50-56-C0-00-08
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.153.1
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :


IP地址是手工填寫的,但卻不是由我來指定的,而是VMware 在安裝的時候自動隨機指定的一個IP 地址(注意,不要修改VMware Network Adapter VMnet8 虛擬網卡所在的網絡ID,這樣的話會造成Host 和Guest 無法通信)。那麼,我的NAT 網絡的虛擬機的IP 地址也爲192.168.153.0 這個網段,其IP 地址配置爲:


Ethernet adapter NAT:
        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . . . . . : VMware PCI Ethernet Adapter
        Physical Address. . . . . . . . . . . . . : 00-50-56-C0-00-08
        Dhcp Enabled. . . . . . .. . . .  . . . . : Yes
        Autoconfigureration Enanble. . . . :Yes
        IP Address. . . . . . . .. . . .  . . . . : 192.168.153.10
        Subnet Mask . . . . . . .. . . .  . . . . : 255.255.255.0
        Default Gateway . . . .. . . .  . . . . . :192.168.153.2

        DHCP Server. . . . . . .. . . .  . . . . . :192.168.153.254.....................


關於Host-Only網絡

在Host-Only 網絡中,Host-Only 網絡被用來設計成一個與外界隔絕的(isolated)網絡,其實Host-Only 網絡和NAT 網絡非常相似,唯一不同的地方就是在Host-Only 網絡中,沒有用到NAT 服務,沒有服務器爲VMnet1 網絡做路由,它當然就沒有辦法訪問Internet 啦,可是如果此時我的Host 要和Guest 通信怎麼辦呢?當然就要用到VMware Network Adapter VMnet1 這塊虛擬網卡了。

如下圖,這是我的Host 上的VMware Network Adapter VMnet1 虛擬網卡的配置,同樣,VMware 也爲我自動隨機分配好了它的IP:


Ethernet adapter VMware Network Adapter VMnet1:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1
        Physical Address. . . . . . . . . : 00-50-56-C0-00-01
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.201.1
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :



那麼如果我把Guest 的網絡設置成了Host-Only 的話,把它的IP 獲取方式設置爲DHCP,它會到虛擬的DHCP 服務器上拿到IP,這個DHCP 服務器仍然是一個虛擬的DHCP 服務器(僅僅是一個系統服務而已),而且在下圖中,可以看到,這個DHCP 服務器的IP 地址仍然是192.168.X.254,這裏X=201,因爲要和我的VMnet1 的網絡ID 相同。所以,Guest 所獲得的IP和我的Host 的VMware Network Adapter VMnet1 虛擬網卡的IP 使用同一個網絡ID:
Windows IP Configuration
        Host Name . . . . . . . . . . . . : Lineage
        Primary Dns Suffix  . . . . . . . :
        Node Type . . . . . . . . . . . . : Unknown
        IP Routing Enabled. . . . . . . . : no
        WINS Proxy Enabled. . . . . . . . : No





Ethernet adapter Host-Only:
        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . . . . . : VMware PCI Ethernet Adapter
        Physical Address. . . . . . . . . . . . . : 00-50-58-C0-50-0d
        Dhcp Enabled. . . . . . .. . . .  . . . . : Yes
        Autoconfigureration Enanble. . . . :Yes
        IP Address. . . . . . . .. . . .  . . . . : 192.168.201.10
        Subnet Mask . . . . . . .. . . .  . . . . : 255.255.255.0
        Default Gateway . . . .. . . .  . . . . . :
        DHCP Server. . . . . . .. . . .  . . . . . :192.168.153.254
.....................



可以看到,在Host-Only 網絡下,Guest 的Default Gateway 被設置爲NULL,這是由於沒有默認路由器爲它到外部網絡提供路由的緣故,也即是上邊說到的Host-Only 網絡沒有NAT 服務器!如果使用route add 命令加上某個地址做爲它的路由器,它仍然不能訪問Internet(實際上也沒有地址可加)。這樣,我的Guest 雖然沒有辦法訪問Internet,但是仍然可以和我的Host進行通信,這正是因爲我的Host 上的VMware Network Adapter VMnet1 虛擬網卡起到了作用,它負責和VMnet1 網絡相連,爲我訪問Host-Only 網絡下的Guest 提供了通信接口。下圖顯示了在Host-Only 網絡中的Guest 與我的Host 的通信情況:


至於爲何要把Host-Only 網絡設置爲沒有Default Gateway 的方式,這是VMware 的設計使然,它就是讓我們建立一個與外界隔離(isolated)的網絡時而使用的。事實上,如果我足夠BT,也可以在Host 上來爲VMware Network Adapter VMnet1 虛擬網卡來做路由。比如,我可以用Windows 2000 的RRAS 來做,這樣的話,處於Host-Only 網絡下的Guest 就又可以上網了,它們只需要使用route add 命令把自己的Default Gateway 指向Host 上的VMware Network Adapter VMnet1 虛擬網卡即可,不過這樣做不推薦,也沒有必要.

關於Host-Only網絡

在Host-Only 網絡中,Host-Only 網絡被用來設計成一個與外界隔絕的(isolated)網絡,其實Host-Only 網絡和NAT 網絡非常相似,唯一不同的地方就是在Host-Only 網絡中,沒有用到NAT 服務,沒有服務器爲VMnet1 網絡做路由,它當然就沒有辦法訪問Internet 啦,可是如果此時我的Host 要和Guest 通信怎麼辦呢?當然就要用到VMware Network Adapter VMnet1 這塊虛擬網卡了。

如下圖,這是我的Host 上的VMware Network Adapter VMnet1 虛擬網卡的配置,同樣,VMware 也爲我自動隨機分配好了它的IP:


Ethernet adapter VMware Network Adapter VMnet1:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1
        Physical Address. . . . . . . . . : 00-50-56-C0-00-01
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.201.1
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :



那麼如果我把Guest 的網絡設置成了Host-Only 的話,把它的IP 獲取方式設置爲DHCP,它會到虛擬的DHCP 服務器上拿到IP,這個DHCP 服務器仍然是一個虛擬的DHCP 服務器(僅僅是一個系統服務而已),而且在下圖中,可以看到,這個DHCP 服務器的IP 地址仍然是192.168.X.254,這裏X=201,因爲要和我的VMnet1 的網絡ID 相同。所以,Guest 所獲得的IP和我的Host 的VMware Network Adapter VMnet1 虛擬網卡的IP 使用同一個網絡ID:
Windows IP Configuration
        Host Name . . . . . . . . . . . . : Lineage
        Primary Dns Suffix  . . . . . . . :
        Node Type . . . . . . . . . . . . : Unknown
        IP Routing Enabled. . . . . . . . : no
        WINS Proxy Enabled. . . . . . . . : No





Ethernet adapter Host-Only:
        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . . . . . : VMware PCI Ethernet Adapter
        Physical Address. . . . . . . . . . . . . : 00-50-58-C0-50-0d
        Dhcp Enabled. . . . . . .. . . .  . . . . : Yes
        Autoconfigureration Enanble. . . . :Yes
        IP Address. . . . . . . .. . . .  . . . . : 192.168.201.10
        Subnet Mask . . . . . . .. . . .  . . . . : 255.255.255.0
        Default Gateway . . . .. . . .  . . . . . :
        DHCP Server. . . . . . .. . . .  . . . . . :192.168.153.254
.....................



可以看到,在Host-Only 網絡下,Guest 的Default Gateway 被設置爲NULL,這是由於沒有默認路由器爲它到外部網絡提供路由的緣故,也即是上邊說到的Host-Only 網絡沒有NAT 服務器!如果使用route add 命令加上某個地址做爲它的路由器,它仍然不能訪問Internet(實際上也沒有地址可加)。這樣,我的Guest 雖然沒有辦法訪問Internet,但是仍然可以和我的Host進行通信,這正是因爲我的Host 上的VMware Network Adapter VMnet1 虛擬網卡起到了作用,它負責和VMnet1 網絡相連,爲我訪問Host-Only 網絡下的Guest 提供了通信接口。下圖顯示了在Host-Only 網絡中的Guest 與我的Host 的通信情況:


至於爲何要把Host-Only 網絡設置爲沒有Default Gateway 的方式,這是VMware 的設計使然,它就是讓我們建立一個與外界隔離(isolated)的網絡時而使用的。事實上,如果我足夠BT,也可以在Host 上來爲VMware Network Adapter VMnet1 虛擬網卡來做路由。比如,我可以用Windows 2000 的RRAS 來做,這樣的話,處於Host-Only 網絡下的Guest 就又可以上網了,它們只需要使用route add 命令把自己的Default Gateway 指向Host 上的VMware Network Adapter VMnet1 虛擬網卡即可,不過這樣做不推薦,也沒有必要.

至此,VMware 的3 種網絡,就應該可以理解可以看到,如果想要Guest 上網,在3 種網絡模型中,
最爲簡單的方式就是NAT,因爲它不需要任何的網卡設置,IP 地址也可以從虛擬的DHCP 服務器來獲得,要做的僅僅就是把它的網絡設置爲NAT 方式即可。


至於Bridged 模式,則需要額外的IP 地址,這有可能會實現不了,因爲並不是每個ISP 都那麼大方。
如果是Host-Only,則又需要設置RRAS,沒有幾個人會願意爲了讓虛擬機上網而換OS 的,所以就用NAT 最好了。


在這裏要強調的一點是,如果設置了Host-Only 網絡,非要爲VMnet1 做路由,一定要用RRAS,而不要用Windows XP 或者2000 的ICS,因爲它會自動把內網的接口地址改爲192.168.0.1。你在安裝虛擬機的時候,VMware 不會正好給你的VMware Network AdapterVMnet1 虛擬網卡分配爲192.168.0.1 的地址吧?這樣的話會造成VMware Network Adapter VMnet1 虛擬網卡和VMnet1 網段的網絡ID 不一致,自然,你的Guest 就沒有辦法和Host 通信了!


實際上經常還會遇到這樣的情況:比如VMware 爲我分配的網絡ID 在將來會被我用到,或者嫌VMware 爲你分配的網絡不好(比如它給你分了個192.168.148.0 的網絡ID),那麼可以到這裏來修改:
單擊VMware 的“Host”菜單,選擇“Virtual Network Settings ...”


選擇“Host Virtual Network Mapping”中,VMnet1 所在的虛擬網絡,單擊後邊的按鈕,選擇“Subnet”菜單,即可以調整你的網絡ID。



記住,在調整之後你的VMware Network Adapter VMnet1 和VMware Network Adapter VMnet8 也需要調整到相應的網絡ID,不然Host 和Guest 如何通信呢?

初學者在使用VMware 的時候,總是喜歡直接修改VMware Network Adapter VMnet1 和VMware Network Adapter
VMnet8 這兩塊虛擬網卡的IP 地址,以爲把它們設置爲與Host 在一個網段就可以實現通信和上網,實際上在看過這篇文章之後,應該明白,修改這兩塊虛擬網卡,對於實現網絡通信,是多麼的沒有幫助!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章