VituralBox中虚拟机网络
说起来惭愧,桌面虚拟机软件使用好几年了,但是对于虚拟机网络与主机的关系一直不是很清楚。趁学习KVM的机会,总结一下VituralBox中虚拟机网络连接情况。
主机环境:mac OS(IP 192.168.1.117) + VirtualBox 5.2.12
虚拟机环境:Ubuntu 16.04
安装完虚拟机后进入,没有修改任何配置。可以看到此时虚拟机IP地址为10.0.2.15,并且可以ping通主机IP:192.168.1.117。
但主机ping不通虚拟机。
这是因为虚拟机安装时默认为NAT地址转换模式。那么什么叫NAT地址转换呢。我们稍后将进行详细介绍。
查看虚拟机设置管理,可以看到当前为NAT模式。而VituralBox中网络连接有五种方式。它们分别是:
1、NAT 网络地址转换模式(NAT,Network Address Translation)
2、Bridged Adapter 桥接模式
3、Internal 内部网络模式
4、Host-only Adapter 主机模式
5、通用驱动
(图片来源)
一、NAT模式
在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(通信消息不需要加密)。
在路由器中,就借助NAT实现了内部网络与外部进行同。如图(图片来源)
在本实环境中,虚拟机10.0.2.15通过NAT将数据包的源IP换为主机IP192.168.1.117,而主机属于路由器的内部网路,主机发送的数据包又通过NAT将源地址转换为路由器的IP地址与外界进行通信。这里路由器的IP地址为我们向电信等通信提供商购买的网络账号的IP地址。
虚拟机与主机的关系:
虚拟机可以通过网络单向访问到主机,主机无法通过网络访问到虚拟机。虚拟机与虚拟机之间各自完全独立,无法通过网络访问彼此。
二、桥接模式
在一台主机上的虚拟机是没有物理网卡的,这时虚拟机数据的发送和接收就需要通过主机上的物理网卡,需要主机的内核来处理这些问题,这无疑增加了主机内核的负担,也延长了虚拟机的反应速度,如果搭建网桥,使得虚拟机的内核可以在一定程度上使用主机的物理网卡,就可以解决这个问题了。
三、Internal模式
内网模式,顾名思义就是内部网络模式,虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。
虚拟机与主机关系:
不能相互访问,彼此不属于同一个网络,无法相互访问。
虚拟机与网络中其他主机关系:
不能相互访问,理由同上。
虚拟机与虚拟机关系:
可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。
四、 Host-only Adapter模式
主机模式,这是一种比较复杂的模式,前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。
我们可以理解为Vbox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。
虚拟机与主机关系
默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。
虚拟机与网络主机关系
默认不能相互访问,原因同上,通过设置,可以实现相互访问。
虚拟机与虚拟机关系
默认可以相互访问,都是同处于一个网段。