|
一、VMware三種網絡連接方式的概念
BRIDGED:
就是“橋”的意思,說起橋接,就不能不說局域網。比如我們有兩個局域網絡,他們的ip段都處于192.168.0.*,同時,我們希望把這兩個網絡鏈接起來,這中情況下,我們就可以采用橋接。這個時候,“橋”就是一個主機,這個機器擁有兩塊網卡,分別處于兩個局域網中,同時在“橋”上,運行著程序,讓局域網A中的所有數據包原封不動的流入B,反之亦然。這樣,局域網A和B就無縫的在鏈路層連接起來了(當然要保證兩個局域網沒有沖突的 IP)。這就是橋的作用,在鏈路層無縫的溝通兩個局域網。
而VMWare的橋也是同樣的道理,只不過,本來作為硬件的一塊網卡,現在由VMWare軟件虛擬而來罷了!當采用橋接時,VMWare會虛擬一塊網卡和真正的物理網卡進行橋接,這樣,發(fā)到物理網卡的所有數據包就到了VMWare虛擬機,而由VMWare發(fā)出的數據包也會通過橋從物理網卡的那端發(fā)出,這樣,如果物理網卡可以上網,那么橋接的軟網卡也沒有問題了,這就是橋接上網的原理了。
在橋接時,VMWare網卡和物理網卡應該處于同一個ip網段,所以在虛擬機中ping物理網卡ip,或者在主機中ping虛擬機網卡ip,都可以ping通。
NAT:
也就是network address translate的簡稱。網絡地址轉換,這個技術是為了讓象192.168.*.*這樣的私有ip段能夠訪問internet而開發(fā)的。私有ip段,可以由任何公司和個人使用,所以世界上有無數電腦使用了192.168.0.111這樣的地址,而這個地址絕對不能出現在internet上,因為這肯定會造成路由的失敗。但是,ip地址的稀缺讓我們必須采用這種共享ip的方案,同時還要允許這些機器訪問internet。這樣的前提下,NAT就應運而生了。
NAT技術應用在internet網關和路由器上,比如192.168.0.111這個地址要訪問internet,它的數據包就要通過一個網關或者路由器,而網關或者路由器擁有一個能訪問internet的ip地址,這樣的網關和路由器就要在收發(fā)數據包時,對數據包的IP協議層數據進行更改(即 NAT),以使私有網段的主機能夠順利訪問internet。
我想到的一個最典型的例子,就要算我的大學宿舍了。宿舍內部網段192.168.1.× ,通過路由器進入校園局域網10.10.110.×,然后通過學校網關,進入internet。這個過程中,宿舍的路由器做了一次NAT,而學校的網關又做了一次NAT。
VMWare的NAT上網采用的技術是一樣的,它在主機和虛擬機之間用軟件偽造出一塊網卡,這塊網卡和虛擬機的ip處于一個地址段。同時,在這塊網卡和主機的網絡接口之間進行NAT。虛擬機發(fā)出的每一塊數據包都會經過虛擬網卡,然后nat,然后由主機的接口發(fā)出。
在這種條件下,由于虛擬機和主機不在同一個ip段,但是主機相當于虛擬機的網關,所以虛擬機能ping到主機的ip,但是主機ping不到虛擬機的ip。
Host-only:
顧名思義,這種技術提供的是主機和虛擬機之間的網絡互訪,而不是虛擬機訪問internet的技術。如果你只想讓虛擬機和主機之間有數據交換,而不需要讓虛擬機訪問internet,就采用這個設置,但并不是說虛擬機不能實現上。
Host-only的條件下,VMWare在真正的Windows系統中,建立一塊軟網卡。這塊網卡可以在網絡連接中看到,這塊網卡的作用就是使windows看到虛擬機的IP。由于,這種技術就是將主機和虛擬機通過一個ip段的網卡聯系起來,所以雙都可以ping到對方。
二、實際問題
想明白了以上問題后,再去觀察實際中出現的問題,就很好理解了。在學校時候,我采用bridge技術使虛擬機訪問internet,而到家之后,采用了adsl上網,卻行不通了。
問題就在于,bridge是通過橋接虛擬機的網卡和物理網卡來實現虛擬機訪問internet的,這要求實際的物理網卡必須能訪問internet。學校采用的是局域網,這一點可以滿足,但是家里采用的adsl。adsl上網,采用的pppoe技術,就是在網卡之上建立起一個ppp連接。這種條件下,所有數據包是通過ppp封裝之后發(fā)出的,雖然也是從網卡發(fā)出,但是包的形式就和普通的internet數據包不一樣了。也就是說,實際的物理網卡已經沒有直接訪問internet的能力了。而必須通過ppp接口封裝的數據包,才能訪問internet。
為了使虛擬機能夠訪問internet,我們必須使虛擬機的數據包從ppp接口發(fā)出去,也就是從adsl的連接發(fā)出去。這個時候,NAT技術就可以派上用場了。只要采用NAT,讓虛擬機的數據包經由adsl連接來收發(fā),就可以解決上網問題了。理論如此,實際操作如下:
如上圖,選擇一塊虛擬網卡,作為NAT使用的網卡。并且,設置好虛擬網段(要和虛擬機里系統的ip處于一個網段)。

如上圖,將設置好的用于NAT的網卡和虛擬機的虛擬網卡綁定。
然后,進入虛擬機,設置IP,就可以上網了。
其實,無論在什么條件下,只要主機能上網,用NAT技術,都可以使虛擬機訪問internet;只有在主機網卡處在一個可以訪問internet的局域網中的時候,虛擬機才能通過bridge訪問internet;Host-only技術只用于主機和虛擬機互訪,于是否訪問internet無關。
三、知識點補充
NAT工作原理
NAT的基本工作原理是,當私有網主機和公共網主機通信的IP包經過NAT網關時,將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進行轉換。如圖1所示,NAT網關有2個網絡端口,其中公共網絡端口的IP地址是統一分配的公共 IP,為202.204.65.2;私有網絡端口的IP地址是保留地址,為192.168.1.1。私有網中的主機192.168.1.2向公共網中的主機166.111.80.200發(fā)送了1個IP包(Des=166.111.80.200,Src=192.168.1.2)。當IP包經過NAT網關時,NAT會將IP包的源IP轉換為NAT的公共IP并轉發(fā)到公共網,此時IP包(Des=166.111.80.200,Src= 202.204.65.2)中已經不含任何私有網IP的信息。由于IP包的源IP已經被轉換成NAT的公共IP,響應的IP包(Des= 202.204.65.2,Src=166.111.80.200)將被發(fā)送到NAT。這時,NAT會將IP包的目的IP轉換成私有網中主機的IP,然后將IP包(Des=192.168.1.2,Src=166.111.80.200)轉發(fā)到私有網。對于通信雙方而言,這種地址的轉換過程是完全透明的。
圖 1 NAT工作原理圖
1. NAT的實現方法
NAT 功能通常被集成到路由器、防火墻、ISDN路由器或者單獨的NAT設備中。比如Cisco路由器中已經加入這一功能,網絡管理員只需在路由器的IOS中設置NAT功能,就可以實現對內部網絡的屏蔽。,其他如Linux中的IP偽裝(IP Masquerade),FreeBSD中的NATD或Windows98的Sygate軟件和Windows 2000 、2003都包含了這一功能。
2. NAT分類
(1)源NAT(Source NAT,SNAT):修改數據包的源地址。源NAT改變第一個數據包的來源地址,它永遠會在數據包發(fā)送到網絡之前完成,數據包偽裝就是一具SNAT的例子。
(2)目的NAT(Destination NAT,DNAT):修改數據包的目的地址。Destination NAT剛好與SNAT相反,它是改變第一個數據懈的目的地地址,如平衡負載、端口轉發(fā)和透明代理就是屬于DNAT。
|