在面向公众服务的IaaS中,网络虚拟化是必不可少的部分。IaaS网络虚拟化技术分为两类:一类是以VPN、VLAN等为代表的传统网络虚拟化技术,主要侧重于网络侧的虚拟化,例如将多个网络虚拟成一个大的网络(如VPN),或者将一个大的网络虚拟成多个小的网络(如VLAN);另一类则是以虚拟网卡和虚拟网桥为代表的、随着云计算的兴起而发展的网络虚拟化技术,主要侧重于主机内部的网络虚拟化,例如将一块网卡虚拟成多块物理网卡。除此以外,随着云计算的兴起,网络设备厂商也推出了具备虚拟化功能的网络设备。
网络虚拟化概述
网络虚拟化是将多个硬件或软件网络资源及相关的网络功能集成到一个可用软件中统一管控的过程,并且对于网络应用而言,该网络环境的实现方式是透明的。该网络环境称为虚拟网络,形成该虚拟网络的过程称为网络虚拟化。更具体的,如果一个网络不能通过软件被统一管理,而需要通过改变物理组网结构才能完成网络环境的改变,则不能被称作虚拟网络。
在不同的应用场景下,虚拟网络的架构是多种多样的。例如,对于一个企业内部的私有云环境来说,虚拟机的用户一般是企业内部员工,可信度较高,因此对网络安全性的要求相对较低;同时,对虚拟机的访问往往是从企业内部网络发起的,虚拟机也不需要为公网用户提供服务,因此网络架构的设计可以不考虑或较少考虑公网IP地址的管理问题。相反,如果是为公网用户提供数据中心业务,对这些问题都必须给予特别的重视。
不同的虚拟网络架构需要相应的技术作为支撑。当前,以VPN、VLAN等为代表的传统网络虚拟化技术已经非常成熟,而随着云计算的发展,很多新的问题不断涌现,对网络虚拟化提出了更大的挑战。对于IaaS服务而言,交付给用户的不再是物理机而是虚拟机。虚拟机的优势在于其更加灵活、可配置性更好,可以满足用户更加动态的需求。因此,网络虚拟化技术也必须跟随这一脚步,满足用户对更加灵活、更加动态的网络结构的需求,同时还必须保证这一灵活性的加入不会降低网络的安全性。
以一个实际应用场景为例:用户从“云”中租用了3台虚拟机,其中一台虚拟机作为前端Web服务器,另外两台虚拟机作为后端数据库服务器;前端Web服务器拥有两个IP地址,分别是用于被公网访客访问的公网IP地址和用于与后端数据库服务器通信的内网IP地址。因为虚拟机所在物理机的物理网络配置是相对固定的,所以如何根据用户需求在这3台虚拟机之间构建灵活的虚拟局域网是一个关键问题。另外,这3台虚拟机可能会和其他虚拟机共同部署在同一物理机上,如何保证数据不被窃听、不被伪造成为对网络虚拟化技术提出的新需求。
因此,在云计算环境下,网络虚拟化技术需要解决如下问题。
(1)如何实现物理机内部的虚拟网络?
(2)外部网络如何动态调整以适应虚拟机对网络不断变化的要求?
(3)如何确保虚拟网络环境的安全性?如何对物理机内、外部的虚拟网络进行统一管理?
这些问题都是在云计算环境下产生的新问题,需要在主机网络虚拟化技术、网络交换设备虚拟化技术和IaaS服务实际运营等各个关键技术环节着手解决。