虛擬機與主機通信三種方式總結

背景:ubuntu16.04安裝vmware14pro ,開了兩臺ubuntu12.04的虛擬機。第一臺基於NAT方式連接,第二臺基於Bridged方式連接。主機IP:192.168.100.163

問題:第一臺ping第二臺能ping通(NAT能ping通Bridge),第二臺ping第一臺顯示Time to live exceeded(Bridge不能ping通NAT),現總結學習如下:

VMware與主機的三種連接方式:


橋接模式(Bridegd):

Windows gets an IP from the same place your MAC does(虛擬機得到一個與主機相同網段的IP地址)可以看看到上圖左側虛擬機(虛擬機2)IP地址爲192.168.100.244與主機網段相同,子網掩碼相同。
對於虛擬機這端,橋接模式是一個總體,在一開始就虛擬了一個交換機,所有采用橋接模式的虛擬機都連接在這個交換機上。
對於主機這端,將主機網卡看做一個交換機,主機連接在這個交換機上。同時,網橋模式虛擬的交換機通過網橋的方式連接在這個交換機上。
總而言之,相當於有了兩層的交換機結構,但只涉及二層,所以處於主機這一交換機下的所有設備都在相同的網段。(下圖轉自:https://www.cnblogs.com/linjiaxin/p/6476480.html)

NAT

(Network Address Translation,網絡地址轉換),網上玄乎的解釋是:把內部私有網絡地址(IP地址)轉化成合法的IP地址的技術。(黑人問號臉)通俗理解如下:
衆所周知,IP地址爲4字節32位地址,被分爲ABC類,用4個十進制數字點號分開等等等。但是現在網絡四通八達,這些IP地址的數目是有限的,但設備仍然在劇烈的增長,IP地址肯定不夠用呀。
所以就有這種“打包”這種概念。也就是說,我給你們這一羣人只分配一個IP,然後你們內部再使用三種私有地址(192.168.0~255 / 10.0~255 / 172.16~31 )再進行對每個人的標識。那你們相當於有了兩層的IP地址。但是你在主機上看的看的時候只看得到最後的一層私有地址。你拿這個私有地址可以訪問和你在一個網絡的其他主機,但是如果你想去訪問外部,那是不合法的,所以當你想訪問外部時,需要先採用一種NAT機制,把你的地址轉化成最初分給你們這羣人的IP。
你可能想問了,那我怎麼區分不同的主機呢?其實NAT也分爲三種:靜態NAT、動態NAT、PAT(端口地址複用),上述我說的給一羣人分配一個IP地址也就是PAT。也就是說NAT在進行地址轉換時,會根據一些能唯一標識主機的東西比如說端口(TCP/UDP),sessionID(ICMP)等東西來區分不同的主機。
現在迴歸正題,VMware的NAT連接模式:Windows gets an IP address from one of the Fusion background service。Puts Windows on a different subnet than the Mac, so the VM can't talk to the same things on the Mac's network that the Mac can talk with.  It sort of puts a router between the Mac and the VM。 (下圖來源於:https://www.cnblogs.com/linjiaxin/p/6476480.html)


可以明顯的看到,此時虛擬機已經不在主機網段(192.168.1.*)上了。可以這樣理解,虛擬機連在NAT的虛擬交換機上後,這個交換機通過一個虛擬的NAT和DHCP設備連接到主機網卡上。也就相當於,主機網卡分配了一個IP給這一系列NAT連接的虛擬機,然後這組虛擬機再進行內部IP設置。這也就解釋了 puts Windows on a different subnet than the Mac,即形成了一個子層。也就相當於在MAC和NAT虛擬機組中設置了一個路由器。

這種情況下也就解決了萬一主機所在局域網裏的IP資源比較緊張的問題。
以上我們就能解釋,爲什麼Bridged模式不能ping通NAT模式,而NAT模式能ping通bridge了。因爲NAT模式下的你查看得到的IP是在主機IP下一層所形成的內網IP呀。而Bridge模式得到的IP是與主機在一層的IP。


Host-only:

Makes the VM isolated from the world except the MAC.(useful in development and testing setups)也就是說Host-only模式下,虛擬機只與主機進行通信與外網隔開。

總結:


在IP地址不夠的情況下,可以運用NAT技術(事實上家用路由器也正在這麼做)。
在網段下面形成更小的子網,除了要有DHCP動態分配IP地址外,一定要有NAT設備在聯網時將這些地址轉化爲合法的IP地址才能與外部進行通信。(也就是說家用的路由器一定會有NAT功能)
在網絡中形成子網是可以任意實現的,這個在子網中形成的IP地址是任意的,可重複的,你不能直接用這個IP地址定位到它

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