網絡原理,以及對VMware Workstation虛擬網絡VMnet0、VMnet1

 

       分類:            Network            2012-02-24 16:13    4433人閱讀    評論(2)    收藏    舉報    html

網絡vmware服務器路由器windowsserverlinux

網絡原理,以及對VMware Workstation虛擬網絡VMnet0、VMnet一、VMnet8的圖解c++

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

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處理來完 成,前者的性能遠賽過後者。       
        當這些概念清晰之後,再來看虛擬機以及虛擬設備就一目瞭然了。咱們大能夠將以軟件方式虛擬出的硬件設備大大方方的放在咱們的網絡結構中,就像他們真實存在同樣。windows

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服務器
ssh

圖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

相關文章
相關標籤/搜索