在做虚拟化的时候,服务器的硬件都被看成资源池中的资源,网络、硬盘、CPU、内存均不例外。网络服务,通过“虚拟交换机”的形式来提供:
- 虚拟机的网络连接到相同虚拟交换机,即可互访,类似于多个PC连接到同一个物理交换机;
- 不同虚拟网络之间互相独立,处于物理上的隔离状态;
- 如果虚拟交换机被桥接到物理网卡,那这个虚拟网络便拥有了直接访问外网的资格;
- 如果虚拟交换机与物理网络之间不进行桥接,而是利用防火墙进行NAT转发,虚拟网络便被隔离在了NAT网络之下,可出不可进;
- 如果虚拟交换机与物理网络之间既没有桥接也没有NAT转发,虚拟网络就形成了一个孤岛,只有岛民之间才可以进行互相交流。
例如,部署项目时,将外网服务关联到桥接网络;将数据库、缓存等内部服务关联到“仅本地/host-only”虚拟网络,就可以实现内外部服务隔离的效果。单台服务器虚拟化作为服务器紧张时的一种解决方案,可以参考下面的架构进行部署。
多台服务器做虚拟化时,需要由物理交换机进行连接,网络划分仍然采用上图的方式,不同的是各个网络不再是虚拟化服务器中的虚拟网络,而是物理交换机上的vlan。同时,因为网络接口足够,所以可以直接将虚拟机连接到桥接网络;而服务器侧做网卡bonding配合交换机侧做端口汇聚(eth-trunk、etherchannel),则可以获得链路冗余和更高的带宽。
桌面端(virtual box、vmware workstation)也可以借鉴以上组网方式,在一台电脑上组建复杂网络,本质上完全一样,甚至还可以用多个软件协同组建网络。
下面这个拓扑不具备实用价值,仅仅为了演示多个软件协同组网的效果(使用vmware虚拟机当外网防火墙,virtualBox虚拟机当二层路由,GNS模拟器充当汇聚交换机供部分终端接入,整个网络由GNS、 virtualBox、vmware三个软件共同组成;最外层防火墙关联到vmware的NAT网络,经由物理机连接互联网):
配置完成测试结果(ping 114.114.114.114测外网,ping隔壁路由器下的设备测内网)
最后奉上一个物理机做虚拟化,双wan接口虚拟机充当外网防火墙进行多拨联网的实际案例(虚拟机的网口几乎没有成本,性能允许、ISP允许的情况下可以随意増加数量):