0.说明
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的翁牛特网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
本篇博文为《在实践中深入理解VMware虚拟机的上网模式》系列的其中一篇:NAT模式。
VMware虚拟机在我们学习过程中必不可少,不管是安装Linux操作系统来进行学习、搭建各种网络服务,拟或者是用来做集群测试、云计算平台OpenStack等的搭建,可以说,VMware虚拟机为我们带来了极大的便利,最直观的好处就是,我们可以节省很多用来购买各种设备的资金,同时也可以达到了学习各种技术的目的。
然而只要涉及到通过宿主机与VMware虚拟机中的操作系统进行通信,或者是VMware虚拟机中安装的各个操作系统之间需要通信,都离不开计算机网络的内容,事实,让虚拟机中的各个操作系统进行网络通信,也或者是让我们的宿主机与虚拟机进行通信,都是平常我们使用VMware虚拟机进行各种服务测试所离不开的话题。
因此,很有必要理解清楚VMware虚拟机所提供给我们的各种上网方式其中的较为深入的计算机网络通信原理,这样一来,对于我们需要搭建的各种环境,网络上的问题都可以迎刃而解,而不再需要到处查找各种资料,并且这对于以后要搭建的涉及到多台设备通信的实验环境都会有非常大的帮助。
博主较为深入地学习过华为与思科的相关级别认证的网络知识,并在去年通过了华为ICT最高级别认证HCIE-RS,因此本博文的撰写是站在一个网络工程师的角度来理解VMware虚拟机中各种上网模式的通信原理,虽还是难以真正透彻理解其中的一些细节,但是相信还是可以为各位朋友带来很大的帮助。
本博文的撰写方式还是以理论为主线,结合实际操作,在实践中深入理解VMware虚拟机的各种上网方式。
VMware虚拟机的上网方式有三种:NAT、桥接、仅主机模式,本篇介绍NAT模式。
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的网络虚拟化的细节才可以真正了解清楚的,但不管怎么说,上面的内容对于在网络通信上面,还是可以给我们带来很大的帮助的,真心希望可以帮到大家!
由于能力和时间有限,如果发现有问题的,望及时指出。
补充:
对于网络排错,可以参考博主之前写的一篇博文:《网络排错大讲解》。