深入理解VMware虚拟机网络通信原理

VMware虚拟机的上网方式有三种:NAT、桥接、仅主机模式,本篇介绍桥接模式和NAT模式。



1.实验环境

博主的实验环境如下:

  • 宿主机操作系统:Windows 7
  • VMware Workstation版本:12.5.2 build-4638234
  • 虚拟机操作系统:CentOS 6.5
  • 虚拟机操作系统上网方式:桥接模式

说明:为了后面的测试正常,请务必将宿主机和虚拟机的操作系统的防火墙功能关闭。实际上虚拟机使用哪一种操作系统是没有影响的,为了方便测试验证,应该使用自己熟悉的操作系统。

对于上网模式的设置,可以参考下面的图示:



2.桥接模式的理论知识

当把我们的虚拟机的上网方式设置为桥接模式时,虚拟机、宿主机、各网卡之间的连接关系可用下图来表示:

    事实上,上面的原理图可以等价为下面的网络拓扑图:

    因此,当虚拟机使用桥接模式上网时,你可以把这台虚拟机完全看作是宿主机所在局域中的一台真实主机,它使用的网络地址信息跟宿主机的完全一样。

不过需要注意的是,由于我们的宿主机中可能会有多张网卡,因此,在VMware Workstation中,我们是可以设定我们的虚拟机桥接到哪一张网卡上的:

    如图,博主是把当前的虚拟机桥接到宿主机的无线网卡上,因此虚拟机的网络地址信息应该跟宿主机在无线网卡上所获取到的网络地址信息是在同一个网段的,即它们位于同一个局域网中。



3.在实践中深入理解桥接模式的网络原理

先在我们的宿主机上查看网络地址信息:

可以看到宿主机所在局域网的IP地址段为192.168.1.0/24,因为我的宿主机是接wifi来上网的,并且使用的是DHCP方式来获取ip地址,所以我们可以在虚拟机上设置使用dhcp的方式来获取IP地址,CentOS的dhcp配置如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth0

HWADDR=00:0c:29:3b:4c:6d

TYPE=Ethernet

UUID=5ae16ecc-0149-487e-8dab-51afc75bd265

ONBOOT=yes

NM_CONTROLLED=yes

#BOOTPROTO=static

BOOTPROTO=dhcp

IPADDR=10.0.0.101

NETMASK=255.255.255.0

GATEWAY=10.0.0.2

DNS1=202.96.128.86

DNS2=202.96.128.166

IPV6INIT=no

USERCTL=no

PEERDNS=yes

重启CentOS的网络服务:


1

2

3

4

5

6

7

[[email protected] ~]# /etc/init.d/network restart

Shutting 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地址信息:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[[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.0

          inet6 addr: fe80::20c:29ff:fe3b:4c6d/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:31386 errors:0 dropped:0 overruns:0 frame:0

          TX packets:15738 errors:0 dropped:0 overruns:0 carrier:0

          collisions: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.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:239 errors:0 dropped:0 overruns:0 frame:0

          TX packets:239 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:23198 (22.6 KiB)  TX bytes:23198 (22.6 KiB)

这时可以测试宿主机与虚拟机的连通情况,在宿主机上ping虚拟机的IP地址:

或者在CentOS上ping宿主机:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

[[email protected] ~]# ping 192.168.1.100

PING 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 ms

64 bytes from 192.168.1.100: icmp_seq=2 ttl=128 time=0.482 ms

64 bytes from 192.168.1.100: icmp_seq=3 ttl=128 time=0.508 ms

64 bytes from 192.168.1.100: icmp_seq=4 ttl=128 time=0.579 ms

64 bytes from 192.168.1.100: icmp_seq=5 ttl=128 time=0.447 ms

64 bytes from 192.168.1.100: icmp_seq=6 ttl=128 time=0.448 ms

64 bytes from 192.168.1.100: icmp_seq=7 ttl=128 time=0.552 ms

64 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 7352ms

rtt min/avg/max/mdev = 0.220/0.470/0.579/0.107 ms

因为虚拟机和宿主机都是在同一个局域网中,所以正常情况下它们肯定是可以互通的,当出现通信不正常的情况下,就需要注意看是否是因为开启了防火墙而把数据丢弃掉,所以在这些测试中,都 是建议把防火墙关掉的。

上面的IP地址信息,对应到前面的原理图上,如下:

    再将其用网络拓扑图来表示,就相当于:

所以这样一来我们就很清楚,当VMware虚拟机使用桥接模式上网时,其背后的网络通信原理和细节的一个完整过程了。



4.下一步应该做什么

上面对于虚拟机使用的是DHCP分配的地址的方式,实际用手动分配也是可以的,这时它一样可以和宿主机进行网络通信,可以自行测试一下。



5.在实际当中的应用

首先第一点是,当我们的虚拟机出现网络问题的时候,都是需要先了解清楚网络的拓扑结构再进行网络排错的,所以上面的内容就为我们提供了非常好的理论与实践知识。

另外,如果可以在理解这些网络知识的前提下再去搭建各种服务,做各种测试,可以让我们做到胸有成竹的一种状态,而不再是“雾里看花,水中望月”了,相应在这样的不断尝试中,我们的综合操作能力一定会变得更强。

不过仍然需要说明的是,上面的图解仍然只是做参考,其中的很多细节都是需要了解VMware Workstation的网络虚拟化的细节才可以真正了解清楚的,但不管怎么说,上面的内容对于在网络通信上面,还是可以给我们带来很大的帮助的,真心希望可以帮到大家!

由于能力和时间有限,如果发现有问题的,望及时指出。




1.实验环境

博主的实验环境如下:

  • 宿主机操作系统:Windows 7
  • VMware Workstation版本:12.5.2 build-4638234
  • 虚拟机操作系统:Windows 7
  • 虚拟机操作系统上网方式:NAT模式

说明:为了后面的测试正常,请务必将宿主机和虚拟机的操作系统的防火墙功能关闭。

对于上网模式的设置,可以参考下面的图示:

Windows 7的上网方式设置:



2.NAT模式的理论知识

当把我们的虚拟机的上网方式设置为NAT模式时,虚拟机、宿主机、各网卡之间的连接关系可用下图来表示:

    其实在看了上面的图解分析之后,整体的网络拓扑是非常清晰的,在接下来的步骤,就通过我们的实验环境来进行验证。



3.在实践中深入理解NAT模式的网络原理

在实验环境中我们可以看到,我们是通过NAT方式来进行上网的,当设置好了NAT方式后,在虚拟机操作系统Windows 7中,查看IP地址信息:

而这时候,你会发现,宿主机跟虚拟机的通信是没有问题的:

在宿主机上ping虚拟机:

那么为什么可以正常通信呢?以及虚拟机中的IP地址网段为什么是10.0.0.0/24的呢?

当使用NAT模式上网时,VMware会自动为我们的虚拟机操作系统进行IP地址的分配,此时在虚拟机内部有一个DHCP服务器,而其所分配的地址网段是可以在VMware中进行设置的。

在VMware Workstation中选择“编辑”—“虚拟网络编辑器”,即可以进行设置:

    从上面可以看到,这里我们设置的网段就是10.0.0.0/24了。

另外我们的宿主机是通过VMnet8这块虚拟网卡来与虚拟机操作系统进行通信的,你可以在宿主机的网络设置中看到这块虚拟网卡:

因为这块虚拟网卡是用来与虚拟机操作系统进行通信的,所以它所被分配的地址也是10.0.0.0/24的,可以查看一下其地址:

    所以实际上,当我们的宿主机与虚拟机操作系统进行通信时,是使用10.0.0.1这个源地址向虚拟机的操作系统发送数据包的。我们可以在虚拟机操作系统上去ping这个地址,会发现通信是没有问题的:

那么对于虚拟机操作系统的网关10.0.0.2这个地址是在哪里的呢?

其实就是对应我们上面网络图解中的NAT服务器的虚拟网卡地址,只是这个地址我们只能通过在虚拟机操作系统中看到。

所以将上面我们所提及的地址以及网段信息,对应到我们的图解中去,如下:

    这样一来,整体的网络信息就非常清晰了,另外上面可以看到,宿主机物理网卡的地址为192.168.1.100/24,这是我的笔记本所在局域网所分配给我的IP地址。

通过上面的图解分析,对于虚拟机操作系统的网络通信就可以有很清楚的认识了:

  • 当虚拟机与宿主机进行通信时:其实就是10.0.0.1/24与10.0.0.132/24这两个地址进行通信;
  • 当虚拟机与外网进行通信时:虚拟机先把数据发送到网关10.0.0.2/24,然后再通过NAT服务器把地址转换为192.168.1.100/24,然后再与外网进行通信;
  • 如果把Vmnet8这块虚拟网卡禁用,还是不影响虚拟机访问互联网,只是宿主机与虚拟机的通信会受到影响,从上面的图示中不难看出。

这样一来,通信的过程就非常清晰了!此外,如果我们有很多台虚拟机,并且上网方式都为NAT模式,那么实际上就相当于这些虚拟机都位于同一个局域网当中,那么虚拟机与宿主机的通信、虚拟机访问外网与上面的过程是一样的,而虚拟机与虚拟机之间的通信则是同一个局域网中的通信,所以也没有什么问题,相应有了上面的图解,这一切都会变得清晰很多。

需要补充的是,对于虚拟机提供的DHCP服务和NAT服务,其实在我们安装VMware Workstation的宿主机上是可以看到这些服务的:

    这样一来也可以与我们的理论进行了一定的对应。



4.下一步应该做什么

可以考虑有多台虚拟机的情况,正如上面所说的,可以尝试测试它们的连通性,对上面的图解(尤其重要)进行验证,但是前提是你一定要具备一定的网络知识。



5.在实际当中的应用

首先第一点是,当我们的虚拟机出现网络问题的时候,都是需要先了解清楚网络的拓扑结构再进行网络排错的,所以上面的内容就为我们提供了非常好的理论与实践知识。

另外,如果可以在理解这些网络知识的前提下再去搭建各种服务,做各种测试,可以让我们做到胸有成竹的一种状态,而不再是“雾里看花,水中望月”了,相应在这样的不断尝试中,我们的综合操作能力一定会变得更强。

不过仍然需要说明的是,上面的图解仍然只是做参考,其中的很多细节都是需要了解VMware Workstation的网络虚拟化的细节才可以真正了解清楚的,但不管怎么说,上面的内容对于在网络通信上面,还是可以给我们带来很大的帮助的,真心希望可以帮到大家!

由于能力和时间有限,如果发现有问题的,望及时指出。

原文地址:https://www.cnblogs.com/sddai/p/9280119.html

时间: 2024-10-07 04:52:37

深入理解VMware虚拟机网络通信原理的相关文章

在实践中深入理解VMware虚拟机的上网模式:NAT模式

0.说明 本篇博文为<在实践中深入理解VMware虚拟机的上网模式>系列的其中一篇:NAT模式. VMware虚拟机在我们学习过程中必不可少,不管是安装Linux操作系统来进行学习.搭建各种网络服务,拟或者是用来做集群测试.云计算平台OpenStack等的搭建,可以说,VMware虚拟机为我们带来了极大的便利,最直观的好处就是,我们可以节省很多用来购买各种设备的资金,同时也可以达到了学习各种技术的目的. 然而只要涉及到通过宿主机与VMware虚拟机中的操作系统进行通信,或者是VMware虚拟机

vmware nat模式原理探究,实现虚拟机跨网段管理

vmware nat模式原理探究: 理解nat模式,我们能更加了解主机与虚拟机之间如何通信,以及虚拟机如何实现上网. 以及便于我们分析虚拟机与主机无法通信和无法上外网的问题. 下面通过实战:虚拟网络拓扑,抓包分析. 为什么要探究nat模式? 从日常需求出发: 我们电脑上用到的虚拟机越来越多,需要固定IP,方便管理. 网络环境经常会变,我们可能在家办公和在公司办公网段不一样,每次要改为同一个网段再连接使用,比较麻烦. 首先理解vmware的三种模式: bridge模式:相当于一台hub,真实主机与

VMware虚拟机的三种联网方法及原理

博客分类: 操作系统 虚拟机Vmware互联网网络应用网络协议 一.Brigde——桥接  :默认使用VMnet0 1.原理: Bridge  桥"就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在"桥"上,运行着程序,让局域网A中的所有数据包原封不动的流入B,反之亦然.这样,局域网A和B就无缝的在链路层连接起来了,在桥接时,VMWare网卡和物理网卡应该处于同一IP网段  当然要保证两个局域网没有冲突的IP. VMWare 的桥也是同样的道理,只不过,本来作为

VMware虚拟机三种联网方法及原理

Brigde――桥接:默认使用VMnet0 原理: Bridge 桥"就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在"桥"上,运行着程序,让局域网A中的所有数据包原封不动的流入B,反之亦然.这样,局域网A和B就无缝的在链路层连接起来了,在桥接时,VMWare网卡和物理网卡应该处于同一IP网段 当然要保证两个局域网没有冲突的IP. VMWare 的桥也是同样的道理,只不过,本来作为硬件的一块网卡,现在由VMWare软件虚拟了!当采用桥接时,VMWare会虚拟一

深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)视频教程

14套java精品高级架构课,缓存架构,深入Jvm虚拟机,全文检索Elasticsearch,Dubbo分布式Restful 服务,并发原理编程,SpringBoot,SpringCloud,RocketMQ中间件,Mysql分布式集群,服务架构,运 维架构视频教程 14套精品课程介绍: 1.14套精 品是最新整理的课程,都是当下最火的技术,最火的课程,也是全网课程的精品: 2.14套资 源包含:全套完整高清视频.完整源码.配套文档: 3.知识也 是需要投资的,有投入才会有产出(保证投入产出比是

深入理解VMware虚拟网络

这篇文章是在毕业后接触vmare虚拟机中的网络部分的启蒙文章,相当值得研读,让我认识到了看不见的还有很多,知道的真的太少.如果能同过这篇文章 理解vmware的网络构成原理,再理解vmare vsphere 架构中的网络时候会有很大的帮助.甚至会对帮助理解VMware很多的模块有帮助:如VMotion ,  HA 等等 =========================================================== VMware Workstation是一款非常不错的虚拟机

vmware虚拟机三种网络模式详解_转

原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 由于Linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费.那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有vmware workstations和virtual box等.在使用虚拟机软件的时候,很多初学者都会遇到很多问题,而vmware的网络连接问题是大家

(1)VMware虚拟机安装与创建虚拟机

VMware简介: VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统. VMware主要特点: 不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统. 本机系统可以与虚拟机系统网络通信 可以设定并且随时修改虚拟机操作系统的硬件环境 安装VMware虚拟机: 建议的VMware配置: cpu:建议主频为1GHz以上. 内存:建议1GB以上. 硬盘:建议分区空闲空间8GB以上. 1.

VMware虚拟机三种网络模式详解

Bridged(桥接模式) 由于Linux目前很热门,越来越多的人在学习Linux,但是买一台服务放家里来学习,实在是很浪费.那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有VMware Workstations和VirtualBox等.在使用虚拟机软件的时候,很多初学者都会遇到很多问题,而VMware的网络连接问题是大家遇到最多问题之一.在学习交流群里面,几乎每天都会有同学问到这些问题,写这篇详解也是因为群里童鞋网络出故障,然后在帮他解决的过程中,对自己的理解也做一个总结.接下