1. 程式人生 > >VM-003 VMmare 在實踐中深入理解VMware虛擬機器的上網模式:橋接模式

VM-003 VMmare 在實踐中深入理解VMware虛擬機器的上網模式:橋接模式

0.說明

    本篇博文為《在實踐中深入理解VMware虛擬機器的上網模式》系列的其中一篇:NAT模式。

    有關於深入理解VMware虛擬機器的上網模式的意義,可以參考本系列博文的另一篇《在實踐中深入理解VMware虛擬機器的上網模式:NAT模式》中的說明部分,這裡不再展開說明。

    本博文的撰寫方式還是以理論為主線,結合實際操作,在實踐中深入理解VMware虛擬機器的各種上網方式。

    VMware虛擬機器的上網方式有三種:NAT、橋接、僅主機模式,本篇介紹橋接模式。

1.實驗環境

    博主的實驗環境如下:

  • 宿主機作業系統:Windows 7

  • VMware Workstation版本:12.5.2 build-4638234

  • 虛擬機器作業系統:CentOS 6.5

  • 虛擬機器作業系統上網方式:橋接模式

    說明:為了後面的測試正常,請務必將宿主機和虛擬機器的作業系統的防火牆功能關閉。實際上虛擬機器使用哪一種作業系統是沒有影響的,為了方便測試驗證,應該使用自己熟悉的作業系統。

    對於上網模式的設定,可以參考下面的圖示:

wKioL1i1B9zwckGAAAGQazeNKVc539.png

2.橋接模式的理論知識

     當把我們的虛擬機器的上網方式設定為橋接模式時,虛擬機器、宿主機、各網絡卡之間的連線關係可用下圖來表示:

wKioL1i1CKzDDcCKAAFNypk6tUM774.jpg    事實上,上面的原理圖可以等價為下面的網路拓撲圖:

wKiom1i1CPyjfB8eAADtU7dC2hA756.jpg    因此,當虛擬機器使用橋接模式上網時,你可以把這臺虛擬機器完全看作是宿主機所在局域中的一臺真實主機,它使用的網路地址資訊跟宿主機的完全一樣。

    不過需要注意的是,由於我們的宿主機中可能會有多張網絡卡,因此,在VMware Workstation中,我們是可以設定我們的虛擬機器橋接到哪一張網絡卡上的:

wKioL1i1CfnzU21PAAG4MX81vJI873.png    如圖,博主是把當前的虛擬機器橋接到宿主機的無線網絡卡上,因此虛擬機器的網路地址資訊應該跟宿主機在無線網絡卡上所獲取到的網路地址資訊是在同一個網段的,即它們位於同一個區域網中。

3.在實踐中深入理解橋接模式的網路原理

    先在我們的宿主機上檢視網路地址資訊:

wKioL1i1CqnhFqbcAACFIp3sVy0010.png

    可以看到宿主機所在區域網的IP地址段為192.168.1.0/24,因為我的宿主機是接wifi來上網的,並且使用的是DHCP方式來獲取ip地址,所以我們可以在虛擬機器上設定使用dhcp的方式來獲取IP地址,CentOS的dhcp配置如下:

1234567891011121314151617[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0HWADDR=00:0c:29:3b:4c:6dTYPE=EthernetUUID=5ae16ecc-0149-487e-8dab-51afc75bd265ONBOOT=yesNM_CONTROLLED=yes#BOOTPROTO=staticBOOTPROTO=dhcpIPADDR=10.0.0.101NETMASK=255.255.255.0GATEWAY=10.0.0.2DNS1=202.96.128.86DNS2=202.96.128.166IPV6INIT=noUSERCTL=noPEERDNS=yes

    重啟CentOS的網路服務:

1234567[[email protected] ~]# /etc/init.d/network restartShutting down interface eth0:  [  OK  ]Shutting down loopback interface:  [  OK  ]Bringing up loopback interface:  [  OK  ]Bringing up interface eth0:  Determining IP information for eth0... done.[  OK  ]

    再檢視IP地址資訊:

123456789101112131415161718[[email protected] ~]# ifconfig eth0      Link encap:Ethernet  HWaddr 00:0C:29:3B:4C:6D  inet addr:192.168.1.106  Bcast:192.168.1.255  Mask:255.255.255.0inet6 addr: fe80::20c:29ff:fe3b:4c6d/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:31386 errors:0 dropped:0 overruns:0 frame:0TX packets:15738 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:14467018 (13.7 MiB)  TX bytes:1726371 (1.6 MiB)lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:16436  Metric:1RX packets:239 errors:0 dropped:0 overruns:0 frame:0TX packets:239 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:23198 (22.6 KiB)  TX bytes:23198 (22.6 KiB)

    這時可以測試宿主機與虛擬機器的連通情況,在宿主機上ping虛擬機器的IP地址:

wKiom1i1DGvTVWJKAACl0cLMD5A624.png

    或者在CentOS上ping宿主機:

1234567891011121314[[email protected] ~]# ping 192.168.1.100PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.64 bytes from 192.168.1.100: icmp_seq=1 ttl=128 time=0.530 ms64 bytes from 192.168.1.100: icmp_seq=2 ttl=128 time=0.482 ms64 bytes from 192.168.1.100: icmp_seq=3 ttl=128 time=0.508 ms64 bytes from 192.168.1.100: icmp_seq=4 ttl=128 time=0.579 ms64 bytes from 192.168.1.100: icmp_seq=5 ttl=128 time=0.447 ms64 bytes from 192.168.1.100: icmp_seq=6 ttl=128 time=0.448 ms64 bytes from 192.168.1.100: icmp_seq=7 ttl=128 time=0.552 ms64 bytes from 192.168.1.100: icmp_seq=8 ttl=128 time=0.220 ms^C--- 192.168.1.100 ping statistics ---8 packets transmitted, 8 received, 0% packet loss, time 7352msrtt min/avg/max/mdev = 0.220/0.470/0.579/0.107 ms

    因為虛擬機器和宿主機都是在同一個區域網中,所以正常情況下它們肯定是可以互通的,當出現通訊不正常的情況下,就需要注意看是否是因為開啟了防火牆而把資料丟棄掉,所以在這些測試中,都 是建議把防火牆關掉的。

    上面的IP地址資訊,對應到前面的原理圖上,如下:

wKioL1i1DbTQAV4tAAFsZK1fF4A283.jpg    再將其用網路拓撲圖來表示,就相當於:

wKioL1i1DeDCF_teAAEM7007D7Q761.jpg

    所以這樣一來我們就很清楚,當VMware虛擬機器使用橋接模式上網時,其背後的網路通訊原理和細節的一個完整過程了。

4.下一步應該做什麼

    上面對於虛擬機器使用的是DHCP分配的地址的方式,實際用手動分配也是可以的,這時它一樣可以和宿主機進行網路通訊,可以自行測試一下。

5.在實際當中的應用

    首先第一點是,當我們的虛擬機器出現網路問題的時候,都是需要先了解清楚網路的拓撲結構再進行網路排錯的,所以上面的內容就為我們提供了非常好的理論與實踐知識。

    另外,如果可以在理解這些網路知識的前提下再去搭建各種服務,做各種測試,可以讓我們做到胸有成竹的一種狀態,而不再是“霧裡看花,水中望月”了,相應在這樣的不斷嘗試中,我們的綜合操作能力一定會變得更強。

    不過仍然需要說明的是,上面的圖解仍然只是做參考,其中的很多細節都是需要了解VMware Workstation的網路虛擬化的細節才可以真正瞭解清楚的,但不管怎麼說,上面的內容對於在網路通訊上面,還是可以給我們帶來很大的幫助的,真心希望可以幫到大家!

    由於能力和時間有限,如果發現有問題的,望及時指出。

補充:

對於網路排錯,可以參考博主之前寫的一篇博文:《網路排錯大講解》