1.VirtualBox四种网络选型原则
第一:每个网络只负载一种业务类型的数据流量,功能单一化。例如连接外网用一个网络、虚拟机之间互通用一个网络、虚拟机与主机之间互通又是一个网络。这样的话可使每种网络上的数据流量比较纯净,同时也可以避免因为网络故障而影响到全部的业务。
第二:在保证网络功能的前提下,单一的网络要保证最小的连通性、最大的隔离性。比如用于连接外网的网络,最好禁止掉连通宿主机,其它虚拟机这种额外的功能,可最大程序的提高效率。
第三:网络的独立性。当有多种技术可以达成某种网络功能时,选型时应选择对外部环境依赖程度最小、独立性最高的实现方式,避免因外宿主机换了一个无线网络环境,而影响到在宿主机上虚拟出来的网络。
第四:最后一条就是效率。当有多种选择时,数据流动路径最短的那一种,往住是效率最高的一种。
2.VirtualBox四种网络模式连通性汇总列表
前提条件是用VirtualBox创建出网络后,没有进行额外的配置,NAT网络没有进行端口映射、仅主机网络没有进行连接共享等。理论上,通过一定的技术手段,所有的模式对所有的网络都是可以连通的。
连通性 模式名称 | 外部网络 | 宿主机(有线网络) | 宿主机(无线网络) | 同宿主机虚拟机 | 跨宿主机虚拟机 |
NAT网络 | o | o | x | o | x |
桥接网卡 | o | o | o | o | o |
内部网络 | x | x | x | o | x |
仅主机(Host-Only) 网络 | x | o | o | o | x |
3.VirtualBox四种网络模式独立性,即对外部环境依赖性,分成高、中,低三档,越高说明越依赖于外部环境。
依赖性 模式名称 | 依赖性 | 原因说明 |
NAT网络 | 中 | NAT网络在二层上是一个独立的网络。但是在三层上需要由宿主机做NAT,及共享宿主机的路由表及DNS配置。当宿主机连接的网络发生变化时,宿主机中的DNS配置不会自动同步到虚拟机中,需要在宿主机中重启NAT网络,并在虚拟机中重启网络服务,手动实现同步 |
桥接网卡 | 高 | 桥接网卡完全共享宿主机所接入的网络,当宿主机网络发生变化时,虚拟机也相当于接入了全新的网络,IP地址也会发生变动,所以依赖性最高。 |
内部网络 | 低 | 内部网络是一个完全隔离的网络,其流量对于宿主机而言不可见,同样对于外部网络也不可见。宿主机外部网络的变化对内部网络没有影响,所以依赖性最低。但是原生内部网络不提供额外服务,需要由使用者自行配置,如使用dnsmasq提供DHCP服务等。 |
仅主机(Host-Only) 网络,不配置连接共享 | 低 | 因为不共宿主机的网络,所以宿主机的网络不会影响到仅主机网络,依赖性底。 |
仅主机(Host-Only) 网络,配置连接共享,以访问外网 | 中 | 配置了共享连接,比如宿主机由无线上网改成插入网线,则这个时候就需要重新设置共享连接,由共享无线适配器改成共享物理网卡,所以依赖性中等。 |
4.四种网络模式的典型应用,例如想用VirtualBox创建虚拟机,以安装部署OpenStack,那么应该用VirtualBox创建四个网络,每个网络都有单独的目的,每种网络各司其职,同时对外部的依赖性降到最低。
用途 模式名称 | 额外配置 | 用途 |
NAT网络 | 不配置端口映射 | 连接其上的虚拟机可以访问外部网络,外部网络不可以访问虚拟机。主要用途是用apt-get安装软件包等。 |
桥接网卡 | 无 | 当有多台宿主机时,用此网络实现跨宿主机的虚拟机之间的通信。一般出于个人测试的目的,只有一台笔记本宿主机,在这种情况下,不用创建此网络。 |
内部网络 | 用dnsmasq提供DHCP服务 | 用于同一宿主机下虚拟机之间的内部流量负载,dnsmasq也是部署在联接其上的虚拟机内部,与宿主机及外部网络完全隔离。 |
仅主机(Host-Only) 网络 | 不配置连接共享 | 用于与宿主机通信,例如通过WiinScp传输文件、从宿主机访问虚拟机上的WEB服务等。配置连接共享的目的是为了访问外网,而NAT是访问外网更优的方案,因为NAT依赖性低。 |