? ? ? ?引子
????????我们在使用vmware虚拟机时,配置频度最高的往往是网络配置,最让人困惑的往往也是网络设置,虚拟机如何实现和宿主机的通信?虚拟机如何实现与宿主机之外的外部主机通信?同一个宿主机内的多个虚拟机之间如何通信?这些问题是否常常困惑着你。打开虚拟机镜像我们可以看到有桥接模式、NAT模式、仅主机模式等多种方式可以选择,如下图所示:
?????????选择这些模式后到底发生了什么,还需要什么配置才能和虚拟机通上信,很多人可能无法构建起对应的网络形态图像,概念也是是是而非。而网上的方法,也大多数循着不同模式来讲解网络构型,这种就模式论模式的方式,对于初学者来说通常看起来很简单,一上手就犯难,出了问题不知道如何解决。本文希望跳出就着模式讲模式的俗套,让初学者能够更加容易理解虚拟机网络设置的本质所在。
????????在讲解虚拟机的网络前,我们回想下我们依靠物理机搭建网络时,我们是怎么办的呢?通常我们会准备一个交换机,用网线将所有物理机的网口和交换机的网口连接起来,在物理机的本地连接中将IP地址设置到同一个网段内,如果物理主机能够互相Ping通那说明网络就联通了。
????????那么vmware虚拟机的网络是如何构建的呢?答案是:和在物理环境中搭建一个网络的原理是一模一样的,毫无差别。
? ? ? ? 只不过虚拟机是无法独立存在的,必须运行在宿主机上,逻辑上可以看作是和物理机一样的主机,如果能够将虚拟机和宿主机通过交换机连起来,理论上就可以进行通信了。道理很简单,然而,虚拟机它本质上只是一个在宿主机上运行的程序,看不见摸不着,我们怎么去连接呢?答案当然是:这些交换机和网线也完全可以用软件去虚拟,我们完全可以在宿主机中预先构建好一系列虚拟网络。
????????那么虚拟机网络配置的本质到底是什么呢?下面就让我们带着问题去探索吧。
- 虚拟网络是怎么建起来的?虚拟网络是什么样子的?怎么编辑虚拟网络?
?????这些虚拟的交换机和网线谁来提供呢,那当然是vmware软件,在宿主机上安装完vmware后,我们除了能够直观看到桌面上的这个图标:
????????其实还包括两个宿主机开机自启动的服务:VMware NAT Service、VMware DHCP Service如下图所示,正是这两个服务为我们构建了虚拟机与宿主机之间的基础网络环境。
?????????默认情况下,这两个服务会在宿主机中虚拟化出来的网络设施包括:
- 三个虚拟交换机(VMnet0、VMnet1、VMnet8)
- 两张虚拟网卡(VMware Network Adapter VMnet1和VMware Network Adapter VMnet8)
- 一套虚拟NAT服务器+虚拟网关+虚拟DHCP服务器
- 若干虚拟网线。
????????其中两张虚拟网卡(VMware Network Adapter VMnet1和VMware Network Adapter VMnet8)我们还可以在宿主机的本地网络连接中查看到,如下图所示:
????????这也说明,这两张网卡并不是为虚拟机使用的,而是给宿主机使用的,等于又为宿主机安装了两张虚拟网卡,通过这两张虚拟网卡建立宿主机与虚拟交换机之间的虚拟连接,打通宿主机与虚拟机的网络通路。
???????? 那么这些虚拟交换机、虚拟网卡、物理网卡之间的连接关系是什么样的呢?其实,vmware已经为我们进行了周到的考虑,这三个虚拟交换机分别有不同的默认连接形式。
????????VMnet0的默认连接形式
????????若宿主机存在多张物理网卡,会选择其中一张物理网卡桥接到VMnet0上,至于选择哪一张去桥接,可以通过虚拟网络编辑器去设置(后文会详细讲)。这个桥接通路能够生效的前提是桥接的物理网卡对应的本地连接应该是有效状态的,所以,如果虚拟机和宿主机要利用Vmnet0通信,即使选择桥接的网卡没有和外部主机通信的需求,也要接上网线保证本地连接有效。默认情况下,选择为桥接模式的虚拟机会自动接入到Vmnet0虚拟
????????? VMnet1的默认连接形式
????????直接将宿主机的虚拟网卡Vmware network adapter Vmnet1与Vmnet1进行连接。默认情况下,选择仅主机模式的虚拟机会自动接入Vmnet1虚拟交换机。
????????VMnet8的默认连接形式
????????这种情况是最复杂的,宿主机的虚拟网卡Vmware network adapter Vmnet8会自动接入Vmnet8外,还有虚拟的NAT服务器和网关、虚拟的DHCP设备接入Vmnet8,同时也会将宿主机所有的物理网卡与虚拟的NAT服务器和网关进行互联。这种网络构型虚拟机不占用宿主机的网络IP资源,同时又能和宿主机的外部主机进行通信;NAT服务器实质就是一个网络地址转换服务。默认情况下,选择NAT模式的虚拟机会自动接入Vmnet8。
????????综上,我们在宿主机上安装完vmware软件后,其实就已经在宿主机上为我们构建了如下默认网络,等待虚拟机运行起来后选择接入。
?????????这个默认网络我们还能调整吗?答案当然是肯定的。Vmware为我们提供了“虚拟网络编辑器”去修改虚拟网络设置。运行虚拟网络编辑器的方法如下:
????????虚拟网络编辑器主界面:
????????我们设置的对象是虚拟网络交换机,所以首先需要选择VMnet0/ VMnet1/ VMnet8中的一个,再进行具体设置。
???????? 针对Vmnet0(桥接),主要就是设置需要桥接到的物理网卡,如下图所示:
???????? 针对Vmnet1(仅主机),主要设置VMware Network Adapter VMnet1虚拟网卡是否连接到虚拟交换机VMnet1上,还有就是DHCP设置。
?????????针对Vmnet8(NAT),主要配置NAT设置、DHCP设置、VMware Network Adapter VMnet8虚拟网卡是否连接到虚拟交换机VMnet8上,如下图所示:
?????????此外,还可以通过“创建网络”按钮,增加新的虚拟交换机,但这些交换机的类型只能在以上三种的范畴内。
?????????可以通过“恢复默认设置”,将虚拟网络一键恢复到默认状态。
?2. 怎么选择网络?
?????????选择网络发生在运行虚拟机前,我们对虚拟机的网络适配器的网络连接模式配置时。选择网络的本质就是为虚拟机在以上的虚拟网络中选择一个虚拟交换机接入,选择桥接模式、NAT模式或者仅主机模式后会将虚拟机自动接入到对应的虚拟交换机上,这种默认的对应关系是:
桥接模式 | VMnet0 | 仅主机模式 | VMnet1 | NAT模式 | VMnet8 |
????????对虚拟机的网络适配器的网络连接模式配置的界面如下:
????????如果我们在宿主机中同时运行三个虚拟机,分别设置到桥接模式、仅主机模式和NAT模式,那么这三个虚拟机运行起来后,宿主机内的网络构型变成了如下的形式:
3.怎么使用网络?
????????使用网络实质就是在虚拟机已经接入了虚拟交换机,按需配置接入虚拟交换机的网卡的IP等参数,进行数据传输。
????????类比于全部实物的情况就是,交换机已经加电,已经用网线将各个需要通信的网卡连接上了,只需要将各个网卡的参数配置到共同网段就可以通信了。例如,虚拟机设置为NAT模式下想和宿主机通信,那么用户需要做的就是:
????????首先,在虚拟机内部,设置其网卡的IP,子网掩码,网关等信息,如下图所示:
?????????然后在宿主机上,找到虚拟网卡VMware Network Adapter VMnet8,将其IP地址配置到虚拟机IP地址同一个网段,即可进行通信。
结语
????????总结起来,Vmware虚拟机网络的设置可以用“建网、选网、用网”三个阶段来概括,如下图所示。
?针对这三个阶段分别配置:
????????建网阶段利用“虚拟网络编辑器”调整网络构型
????????选网阶段对虚拟机的网络适配器网络连接模式配置
????????用网阶段我们对用网络通信需求的网卡进行配置
??通过本文的讲解,希望可以帮助你建立虚拟网络的系统认识,实现按需配置使用网络的愿望。
|