網絡原理,以及對VMware Workstation虛擬網絡VMnet0、VMnet1、VMnet8的圖解

網絡原理,以及對VMware Workstation虛擬網絡VMnet0、VMnet1、VMnet8的圖解

借鑑了:http://hi.baidu.com/whitelocus/blog/item/d091ded88ac669e038012f5a.html

1. 文中符號的說明:

        <A/B>: 可以理解成A,也可以理解成B。
2. 術語
        調制解調器(Modem): 實現模擬信號與數字信號間的相互轉換,可以忽略成一條網線。
        路由器: 提供路由、DHCP、NAT等<功能/服務>的專門設備,連接不同的網絡(包括局域網與WAN之間的連接,提供互聯網連接)。
        網關: 網關實質上是一個網絡通向其他網絡的IP地址。比如有網絡A和網絡B,網絡A的IP地址範圍爲“192.168.1.1~192. 168.1.254”,子網掩碼爲255.255.255.0;網絡B的IP地址範圍爲“192.168.2.1~192.168.2.254”,子網掩碼爲255.255.255.0。在沒有路由器的情況下,兩個網絡之間是不能進行TCP/IP通信的,即使是兩個網絡連接在同一臺交換機(或集線器)上,TCP/IP協議也會根據子網掩碼(255.255.255.0)判定兩個網絡中的主機處在不同的網絡裏。而要實現這兩個網絡之間的通信,則必須通過網關。如果網絡A中的主機發現數據包的目的主機不在本地網絡中,就把數據包轉發給它自己的網關,再由網關轉發給網絡B的網關,網絡B的網關再轉發給網絡B的某個主機。只有設置好網關的IP地址,TCP/IP協議才能實現不同網絡之間的相互通信。那麼這個IP地址是哪臺機器的IP地址呢?網關的IP地址是具有路由功能的設備的IP地址,具有路由功能的設備有路由器、啓用了路由協議的服務器(實質上相當於一臺路由器)、代理服務器(也相當於一臺路由器)。
        默認網關: 如果搞清了什麼是網關,默認網關也就好理解了。就好像一個房間可以有多扇門一樣,一臺主機可以有多個網關。默認網關的意思是一臺主機如果找不到可用的網關,就把數據包發給默認指定的網關,由這個網關來處理數據包。現在主機使用的網關,一般指的是默認網關。默認網關一般填寫255.255.255.0。配置默認網關可以在 IP 路由表中創建一個默認路徑。需要特別注意的是:默認網關必須是電腦自己所在的網段中的IP地址,而不能填寫其他網段中的IP地址。
        網關舉例說明:
        如下圖2.1。假設你的名字叫小不點(很小),你住在一個大院子裏,你的鄰居有很多小夥伴,父母是你的網關。當你想跟院子裏的某個小夥伴玩,只要你在院子裏大喊一聲他的名字,他聽到了就會迴應你,並且跑出來跟你玩。但是你家長不允許你走出大門,你想與外界發生的一切聯繫,都必須由父母(網關)用電話幫助你聯繫。假如你想找你的同學小明聊天,小明家住在很遠的另外一個院子裏,他家裏也有父母(小明的網關)。但是你不知道小明家的電話號碼,不過你的班主任老師有一份你們班全體同學的名單和電話號碼對照表,你的老師就是你的DNS服務器。於是你在家裏和父母有了下面的對話:小不點:媽媽(或爸爸),我想找班主任查一下小明的電話號碼行嗎?家長:好,你等着。(接着你家長給你的班主任掛了一個電話,問清楚了小明的電話)問到了,他家的號碼是211.99.99.99。小不點:太好了!媽(或爸),我想找小明,你再幫我聯繫一下小明吧。家長:沒問題。(接着家長向電話局發出了請求接通小明家電話的請求,最後一關當然是被轉接到了小明家家長那裏,然後他家長把電話給轉到小明)。就這樣你和小明取得了聯繫。

圖2.1 網關舉例


       <交換機/多接口網橋>: 交換機和網橋的功能類似,基本上可以認爲是一樣的。如果真要說差異在哪裏:兩點,一是接口數量不同,交換機比網橋的接口數量多;二是功能的實現方式不同,功能是指交換機和網橋使用橋接技術,實現方式不同是指交換機通過專門的<集成電路/芯片>來實現橋接功能,而網橋則沒有專門的處理芯,所以交換機比網橋更快更智能。
        接口(interface): 路由器,交換機上那種直接插線的就稱爲接口。
-------------- 邪惡的分割線 ------------------------- 以上偏向硬件,以下偏向軟件 ---------------------------
        端口(port): 大家都知道標識WWW服務的是80,標識FTP服務的是21,這些數字就稱爲端口。比如www.baidu.com的IP是119.75.216.30,那麼訪問www.baidu.com實質上就是訪問了119.75.216.30的80端口119.75.216.30:80。
        路由服務器: 提供路由<功能/服務>的服務器。如在Windows 2003 Server上加入路由服務器角色就能提供路由<功能/服務>,相當於一臺路由器提供的路由<功能/服務>。
        DHCP服務器: (Dynamic Host Configuration Protocol, 動態主機配置協議)提供DHCP<功能/服務>的服務器,是一個局域網的網絡協議,使用UDP協議工作,主要有兩個用途:1. 給內部網絡或網絡服務供應商自動分配IP地址;2. 給用戶或者內部網絡管理員作爲對所有計算機作中央管理的手段。如在Windows 2003 Server上加入DHCP服務器角色就能提供DHCP<功能/服務>,相當於一臺路由器提供的DHCP<功能/服務>。
        DHCP的前身是 BOOTP。BOOTP 原本是用於無磁盤主機連接的網絡上面的:網絡主機使用 BOOT ROM 而不是磁盤啓動並連接上網絡,BOOTP則可以自動地爲那些主機設定 TCP/IP 環境。但 BOOTP 有一個缺點:在設定前須事先獲得客戶端的硬件地址,而且,與 IP 的對應是靜態的。換而言之,BOOTP 非常缺乏 "動態性" ,若在有限的 IP 資源環境中,BOOTP 的一一對應會造成非常嚴重的資源浪費。DHCP 可以說是 BOOTP 的增強版本,它分爲兩個部份:一個是服務器端,而另一個是客戶端。所有的 IP 網絡設定數據都由 DHCP 服務器集中管理,並負責處理客戶端的DHCP 要求;而客戶端則會使用從服務器分配下來的IP環境數據。比較起 BOOTP,DHCP 透過 "租約" 的概念,有效且動態的分配客戶端的 TCP/IP 設定,而且,作爲兼容考慮,DHCP 也完全照顧了 BOOTP Client 的需求。DHCP 的分配形式爲:首先,必須至少有一臺 DHCP服務器 工作在網絡上面,它會監聽網絡的 DHCP 請求,並與客戶端磋商TCP/IP 的設定環境。
        DHCP有三種IP分配方式:1. Manual Allocation (人工分配):獲得的IP也叫靜態地址,網絡管理員爲某些少數特定的在網計算機或者網絡設備綁定固定IP地址,且地址不會過期;2. Automatic Allocation (自動分配):一旦DHCP 客戶端第一次成功的從DHCP 服務器端租用到 IP 地址之後,就永遠使用這個地址;3. Dynamic Allocation (動態分配):當DHCP客戶端第一次從DHCP 服務器端租用到IP 地址之後,並非永久的使用該地址,只要租約到期,客戶端就得釋放(release)這個IP 地址,以給其它工作站使用。當然,客戶端可以比其它主機更優先的更新(renew)租約,或是租用其它的 IP 地址。動態分配顯然比手動分配更加靈活,尤其是當您的實際IP 地址不足的時候。

        NAT服務器: (Network Address Translation, 網絡地址轉換)提供NAT<功能/服務>的服務器:就是把在內部網絡中使用的IP地址轉換成外部網絡中使用的IP地址,把不可路由的IP地址轉化成可路由的IP地址,對外部網絡隱蔽內部網。NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。如在Windows 2003 Server上加入NAT服務器角色就能提供NAT<功能/服務>,相當於一臺路由器提供的NAT<功能/服務>。
        ①如下圖2.2。這個client 的gateway 設定爲NAT主機,所以當要連上Internet 的時候,該封包就會被送到NAT 主機啦,這個時候的封包Header 之source IP 爲192.168.1.100 ;
  ②而透過這個NAT 主機,她會將client 的對外聯機封包的source IP ( 192.168.1.100 ) 僞裝成 ppp0 ( 假設爲撥接情況)這個接口所具有的公有IP 囉,因爲是公有IP 了,所以這個封包就可以連上Internet 了!同時 NAT 主機會記憶這個聯機的封包是由哪一個( 192.168.1.100 ) client 端傳送來的;
  ③由Internet 傳送回來的封包,當然由NAT 主機來接收了,這個時候, NAT 主機會去查詢原本記錄的路由信息,並將目標 IP 由 ppp0 上面的公共 IP 改回原來的192.168.1.100 ;   
        ④最後則由 NAT 主機將該封包傳送給原先發送封包的 Client !

圖2.2 NAT流程示意




3. 硬件設備與軟件(虛擬)設備的理解

        先舉個例子,見圖3.1,路由器和帶雙網卡並安裝路由及防火牆<服務/功能>的服務器,組建一個多主機網絡。其中安裝在Windows 2003 Server上的路由<服務器角色/服務/功能>不正是一臺“虛擬路由器”嗎?使得Windows 2003 Server像一臺真的路由器一樣在這個網絡中發揮作用。實際上,如果在這臺Windows 2003 Server上再裝上軟件防火牆,用這樣的軟件方式也不正是虛擬出了一個網路上確實存在的硬件防火牆一樣嗎?
        所以,從功能出發來看,<物理/實際/硬件>設備和<虛擬/軟件>設備是同一的,可以將<虛擬/軟件>設備看成是實實在在的硬件設備。但是,從設計和性能出發,兩者有質的不同,前者是由專門設計的電子集成電路和微程序來實現功能,而後者是由軟件編程交由CPU處理來完成,前者的性能遠勝過後者。       
        當這些概念清晰以後,再來看虛擬機以及虛擬設備就一目瞭然了。我們大可以將以軟件方式虛擬出的硬件設備大大方方的放在我們的網絡結構中,就像他們真實存在一樣。

4. VMware Workstation的虛擬網絡
    4.1. 虛擬網絡組件
           虛擬<網卡/網絡適配器>:見圖4.1。安裝一個虛擬PC時自動安裝一塊虛擬<網卡/網絡適配器>,可添加多塊虛擬網卡。
           虛擬交換機:見圖4.1。安裝VM時就自動安裝了10臺虛擬交換機。
           虛擬網橋:只在虛擬網卡連接到VMnet0 (default Bridged)虛擬交換機上才應用虛擬網橋。
           虛擬DHCP服務器:見圖4.2。在虛擬網卡連接到VMnet1或VMnet8虛擬交換機時,自動安裝運行虛擬DHCP服務器並連接至這臺虛擬交換機。
           虛擬NAT服務器:見圖4.3。只在虛擬網卡連接到VMnet8 (NAT)虛擬交換機時才自動安裝運行虛擬NAT服務器,並連接至這臺虛擬交換機。
           主機虛擬<網卡/網絡適配器>:見圖4.4。相當於一塊確實存在的網卡,是連接主機和虛擬交換機用的網卡。

圖4.1 虛擬網卡及虛擬交換機

圖4.2 虛擬DHCP服務器

圖4.3 虛擬NAT服務器

圖4.4 主機虛擬<網卡/網絡適配器>



    4.2. VMnet0 (default Bridged)

        4.2.1. 用到的虛擬網絡組件
                  虛擬<網卡/網絡適配器>
                  虛擬交換機
                  虛擬網橋

        4.2.2 橋接網絡
        在橋接模式下,VMware虛擬出來的操作系統就像是局域網中的一獨立的主機,它可以訪問網內任何一臺機器。不過你需要多於一個的IP地址,並且需要手工爲虛擬系統配置IP地址、子網掩碼,而且還要和宿主機器處於同一網段,這樣虛擬系統才能和宿主機器進行通信。如果你想利用VMware在局域網內新建一個虛擬服務器,爲局域網用戶提供網絡服務,就應該選擇橋接模式。
        4.2.3. 虛擬網絡結構圖示
        可將虛擬機模擬接入主機所在的局域網。

        4.2.4. 一般家庭組網虛擬網絡結構


    4.3. VMnet1 (Host-only)
        4.3.1. 用到的虛擬網絡組件
                   虛擬<網卡/網絡適配器>
                   虛擬交換機
                   虛擬DHCP服務器
                   主機虛擬<網卡/網絡適配器>

        4.3.2. host-only網絡
        在某些特殊的網絡調試環境中,要求將真實環境和虛擬環境隔離開,這時你就可採用Host-only模式。在Host-only模式中,所有的虛擬系統是可以相互通信的,但虛擬系統和真實的網絡是被隔離開的。可以利用Windows XP裏面自帶的Internet連接共享(實際上是一個簡單的路由NAT)來讓虛擬機通過主機真實的網卡進行外網的訪問。虛擬系統的TCP/IP配置信息(如IP地址、網關地址、DNS服務器等),都是由VMnet1(Host-only)虛擬網絡的DHCP服務器來動態分配的。如果你想利用VMware創建一個與網內其他機器相隔離的虛擬系統,進行某些特殊的網絡調試工作,可以選擇Host-only模式。
        在Host-Only網絡中,Host-Only網絡被用來設計成一個與外界隔絕的網絡,其實Host-Only網絡和NAT網絡非常相似,唯一不同的地方就是在Host-Only網絡中,沒有用到NAT服務,沒有服務器爲VMnet1虛擬交換機做路由,它當然就沒有辦法訪問Internet啦,可是如果我的Host要和VPC通信呢?怎麼辦?對了!當然就要用到VMware Network Adapter VMnet1這塊虛擬網卡了。
        可以看到,在Host-Only網絡下,VPC的Default Gateway被設置爲NULL,這是由於沒有使用虛擬NAT服務器的緣故,但是,即便使用route add命令加上某個地址做它的路由,它仍然不能訪問Internet(實際上也沒有地址可加)。這樣,我的VPC雖然沒有辦法訪問Internet,但是仍然可以和我的Host進行通信。 
        事實上,如果我們足夠BT,也可以在Host上來以VMware Network Adapter VMnet1虛擬網卡來做路由,比如,我們可以用Windows 2000的RRAS來做,這樣的話,處於Host-Only網絡下的Guest(VPC)就又可以上網了,他們只需要使用route add命令把自己的Default Gateway改成VMware Network Adapter VMnet1網卡即可,不過這樣不推薦,也沒有必要。如果僅僅想讓虛擬機訪問互聯網,nat方式是最簡單的,基本上不需要做什麼操作,就能自動連接上。這也是默認的設置參數。
        作爲開發人員,我們通常需要主機,虛擬機,開發板 具有獨立的地址,能互相訪問。那麼我們可以使用下面兩種網絡配置方式:
        bridge and host-only。
        1. 橋接是最簡單的方式,一般是你有一個網關,你的windows主機和你VMWare裏的各種unix/linux系統,都通過這個網關來通訊。 
        2. 而主機方式,是在沒有網絡的情況下, windows主機操作系統能與VMWare虛擬機上的客戶操作系統(VPC)正常通訊。我們從VMWare的Virtual Network Edit裏可以看出,vnet0是用來實現橋接模式的,vnet1是用來實現主機模式的。主機和客戶機是直接通過vnet1通訊的。在主機方式下,windows主機操作系統不需要配置什麼了,我們打開cmd.exe,輸入ipconfig,就知道VMnet1的ip地址是什麼了,因爲這個ip就是VMWare虛擬機上的客戶操作系統(VPC)的網關ip地址。我的VMWare虛擬機上一般裝的是redhat,因爲linux系列裏redhat是最常見的,公司用的有suse, slaceware,unix使用solaris,freeBSD。那麼我們在客戶操作系統上配置網絡,主要注意的是,網關的IP就是你在windows主機操作系統裏用ipconfig命令查看到的VMnet1的ip地址。例如:我在windowsXP主機下用ipconfig看到VMnet1的IP地址是192.168.159.1,那我在redhat裏就把網關IP配置爲192.168.159.1,把redhat的IP配置爲192.168.159.2。我們從windowsXP主機cmd.exe裏ping 192.168.159.2,如果redhat啓動sshd服務器, 我們可以telnet 192.168.159.2 22,若連接成功則一切安裝OK,說明我們從windowsXP主機連接redhat系統沒有問題了。反之,我們怎麼從redhat系統連接windowsXP主機, 從redhat系統角度來看,VMnet1的IP地址就是windowsXP主機的地址,在redhat系統裏ping 192.168.159.1, 再telnet 192.168.159.1 139, 若連接成功則一切安裝OK,說明我們從redhat系統連接windowsXP主機沒有問題了。
        想學習unix/linux上c/c++開發或者其它,一個好方法就是在windows系統上裝VMWare,然後在WMWare裏安裝各種unix/linux系統,通過crt、winscp等shell工具來連接unix/linux系統進行操作, 這樣既不會因爲沒有windows系統而做其它事不方便,又能在一臺pc機器上安裝各種unix/linux系統。

        
        4.3.3. 虛擬網絡結構圖示


        4.3.4. 一般家庭組網虛擬網絡結構

    4.4. VMnet8 (NAT, Network Address Translation)
        4.4.1. 用到的虛擬網絡組件
                   虛擬網<網卡/網絡適配器> (虛擬網卡VMnet8)
                   虛擬交換機 (VMnet8)
                   虛擬DHCP服務器
                   主機虛擬<網卡/網絡適配器>
                   虛擬NAT設備

        4.4.2. NAT網絡
        在NAT網絡中,會使用到VMnet8虛擬交換機,Host上的VMware Network Adapter VMnet8虛擬網卡被連接到VMnet8交換機上,來與VPC進行通信,但是VMware Network Adapter VMnet8虛擬網卡僅僅是用於和VMnet8虛擬交換機網段通信用的,它並不爲VMnet8網段提供路由功能,處於虛擬NAT網絡下的VPC是使用虛擬的NAT服務器連接的Internet的。
        這時候,你的VPC和Host就可以實現互訪了,並且如果你的Host此時已經連接到了Internet,那麼你的VPC也就可以連上Internet了。那麼VMware Network Adapter VMnet8虛擬網卡在這裏扮演了一個什麼角色呢?它僅僅是爲Host和NAT虛擬網絡下的VPC通信提供一個接口,所以,即便Disable掉這塊虛擬網卡,Guest仍然是可以上網的,只是Host無法再訪問VMnet8網段而已。
        這種方式的時候,主機需要開啓vmdhcpvmnat服務。
        使用NAT模式,就是讓虛擬系統藉助NAT(網絡地址轉換)功能,通過宿主機器所在的網絡來訪問公網。也就是說,使用NAT模式可以實現在虛擬系統裏訪問互聯網。由於NAT服務協議對外部網絡隱蔽內部網絡,因此虛擬系統可以通過NAT服務器訪問宿主機所在局域網中的其他真實主機,而反過來卻不行,即宿主機以及宿主機所在網絡的其他主機(更何況其它外網)不能通過NAT服務器訪問虛擬機上的操作系統。(但是可以通過修改相關路由表,以讓虛擬機和外網中除宿主機以外的其他主機通過VMnet1/8虛擬網卡互訪。如4.3.4.圖中的紅色字體。對宿主機網絡來說,VMnet1/8網卡被視爲通往虛擬網絡的網關,反之亦然)採用NAT模式最大的優勢是虛擬系統接入互聯網非常簡單,你不需要進行任何其他的配置,只需要宿主機器能訪問互聯網即可。 如果你想利用VMware安裝一個新的虛擬系統,在虛擬系統中不用進行任何手工配置就能直接訪問互聯網,建議你採用NAT模式。
        4.4.3. 虛擬網絡結構圖示

        4.4.4. 一般家庭組網虛擬網絡結構


------------------------------------------------------------------------------------------------------------------------------------------

舉例:主機爲XP系統,VMare上爲Linux系統,Nat連接方式,設置如下:

1. 虛擬機設置:

    Edit -> Virtual Network Editor... -> DHCP選項卡。選中VMnet8,點Properties,設置其DHCP地址池,本VMare爲:192.168.244.128~192.168.244.254。

    換NAT選項卡,其Gateway IP address爲:192.168.244.2。

2. 設置虛擬網卡

   在主機的 網絡連接 裏,設置主機虛擬網卡VMnet8的IP地址爲 192.168.244.1,子網掩碼爲:255.255.255.0,默認網關爲:192.168.244.0。

3.  設置VMare上的Linux IP地址爲:192.168.244.128。該地址值要在DHCP地址池範圍內。

4. 設置主機網卡IP爲:192.168.1.15,子網掩碼爲:255.255.255.0,默認網關爲:192.168.1.1。

測試:

       主機ping 虛擬機:ping 192.168.244.128

       虛擬機 ping 主機:ping 192.168.1.15

發佈了6 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章