温涛 虞红芳 李乐民
摘要:网络虚拟化过程中主要诞生过4类过渡技术:虚拟局域网络(VLAN)、虚拟专用网络(VPN)、主动可编程网络(APN)、覆盖网络。网络虚拟化的研究现在主要集中于3个领域:云计算应用、平台化实现、软件定义网络。认为网络虚拟化的未来在性能保障、可靠性、易用性和完备性等方面需要加强,为此未来的网络虚拟化需要优化自身服务结构,并向无线网络、光网络等领域推广,此外还需要提供更加友好的可编程接口(API)以及网络功能。
关键词: 网络虚拟化;云计算;软件定义网络;网络功能虚拟化
互联网从诞生至今已经有40余年,在科学技术和日常生活中都取得了巨大的成功,如今它的踪影已经遍布我们生活的各个角落。然而随着应用规模的不断扩大,互联网本身的僵化现象也越发明显。一方面,互联网的核心架构多是基于早期的设想构建起来的,已经难以满足现在复杂多变的网络需求;另一方面,互联网的基础服务提供商构成复杂,他们之间存在的利益冲突也使得任何新的网络技术或对现有技术的重大调整都变得异常困难[1-3]。为了克服解决这些问题,人们付出了很多的努力,这也为网络虚拟化(NV)的诞生和发展创造了坚实的条件。
与服务器虚拟化类似,网络虚拟化旨在在一个共享的物理网络资源之上创建多个虚拟网络(VN),同时每个虚拟网络可以独立地部署以及管理[4]。网络虚拟化概念及相关技术的引入使得网络结构的动态化和多元化成为可能,被认为是解决现有网络体系僵化问题,构建下一代互联网最好的方案[1-3]。然而网络虚拟化技术体系庞大,涉及领域众多,易于让人产生认识上的困惑,因此对于网络虚拟化的合理定义就显得尤为重要。作为虚拟化技术的分支,网络虚拟化本质上还是一种资源共享技术。有鉴于此,网络虚拟化应当泛指任何用于抽象物理网络资源的技术,这些技术使物理网络资源功能池化,达到资源任意的分割或者合并的目的,用以构建满足上层服务需求的虚拟网络。
网络虚拟化的一般结构如图1所示。在这种架构之下,用户可以根据需要定制自己的网络,用户的需求会被一个虚拟网络层接纳,虚拟网络层完成需求到底层资源的映射,再将网络以服务的形式返回给用户。这种模式很好地屏蔽了底层的硬件细节,简化了网络管理的复杂性,提升了网络服务的层次和质量,同时也提高网络资源的利用率。
1 网络虚拟化的过去
1.1 历史上网络虚拟化技术
网络虚拟化作为一个单独的概念存在并没有多长时间,其背后的技术发展却是有了相当的积淀。网络虚拟化发展历程如图2所示。回顾整个互联网的发展过程,就可以清楚地发现人们早就意识到了网络服务与硬件解耦的必要性,也因此诞生许多过渡的技术,其中最重要的4类分别是:虚拟局域网络(VLAN)、虚拟专用网络(VPN)、主动可编程网络(APN)、覆盖网络。
(1)虚拟局域网络
VLAN[5]是一种通过将局域网内的设备逻辑地而不是物理地划分成一个个网段从而实现虚拟工作组的技术。在传统的以太网中,单一的广播域使得网络对于资源的管理手段有限。VLAN技术的出现使得网络管理人员可以将同一物理局域网内的用户划分到不同的逻辑子网中,具有加强广播控制、简化网络管理、降低建设成本、提高网络安全等方面的作用。VLAN技术的实现方式也是纷繁多样,包含基于端口、基于媒体访问控制(MAC)、基于IP甚至是基于用户自定义的实现方式。IEEE 802.1Q协议的发布统一了不同厂商的标签格式,进一步完善了VLAN的体系结构,也加速了VLAN的发展。
(2)虚拟专用网络
VPN[6]是指在公用网络上建立起来的“虚拟”的专用网络,它的任意两个节点间并无传统专用网络所需要的端到端的物理链路,而是构建在公用网络供应商所提供的物理网络之上,通过隧道技术实现站点间的互联,以达到共享物理网络资源的目的,所以说它是一种逻辑网络。VPN通常用于一些组织或者公司来互连它们的子部门,也可以用于个人远端接入公司内部网络。按照互连方式可以将VPN划分为3大类:一层VPN、二层VPN和三层VPN,其中二层VPN和三层VPN技术已经相当成熟并被广泛应用,而一层VPN才刚刚起步。
(3)主动可编程网络
APN技术是希望将物理网络的资源通过网络可编程接口(NAPI)的形式暴露出来,使得用户可以自定义指定报文的处理方式。APN实现方式上主要有两大类,第一类是利用电信技术中的信令方式将网络中传输和控制层面区分开来,抽象出来的控制层面就可以开放网络的可编程接口,允许服务提供者控制网络的状态;第二类则是利用网络本身的资源,将控制信息封装在报文内部,路由器在收到报文时再按照其带内信息处理,达到自定义处理报文的目的。不难看出,第二类在报文级粒度的处理带给APN更多的灵活性,更加适应复杂的网络模型。
(4)覆盖网络
覆盖网络是构建在已有网络上的一个逻辑网络,利用隧道或封装等技术将感知节点互连起来,报文只在感知节点上处理,而在感知节点之外透明的传输。在覆盖网络中,虚拟的是网络的拓扑,所有的感知节点以及它们之间的联系构成了这个逻辑拓扑。覆盖网络技术无需特定的底层网络支持,也不需要改变网络的任何特性,因此常常被用于部署新的网络服务或者优化现有网络服务。
1.2 具有代表性的网络虚拟化项目
网络虚拟化的发展其实还得益于众多相关项目的支持。这些项目多是为测试和实验而搭建的网络平台,与针对具体问题产生的技术相比,它们更加完整地实现了网络虚拟化的构想。其中最具代表性的是X-Bone[7]、PlanetLab[8]和GENI[9]。
(1)X-Bone
排除早期的MBone和6Bone,X-Bone算是第一个比较成熟和完整的网络虚拟化实现工具。X-Bone主要采用封装技术实现虚拟网络,后来扩展成为了虚拟互联网(VI),即由一组虚拟主机和虚拟路由器以及连接其中的隧道链路构成的IP网络,支持动态资源的发现、部署和监控功能。VI能虚拟出因特网的所有部件:主机、路由器,以及它们之间的链路,做到了覆盖网和底层物理网络的完全解耦,支持并发性、递归性和可恢复性。可恢复性的支持则要求因特网主机和路由器支持基于入端接口的分组和转发。endprint
(2)PlanetLab
PlanetLab是普灵斯顿大学牵头创建的一个网络研究测试平台,主要用于计算机网络和分布式系统的研究,旨在提升互联网的智能化和适应力,它也是现如今影响最为广泛的网络虚拟化项目。PlanetLab的目标是创建一个面向服务的网络架构,融合分布式系统和网络系统的优点。其覆盖网包括两个主要的组件:运行于每个节点的虚拟机监视器,提供面向抽象资源的控制接口;用于控制覆盖网的管理服务。PlanetLab基于4个设计原则建立:第一,支持分层,即每个应用程序请求并运行在覆盖网的单个切片上;第二,支持高度去中心化的控制结构,使结点能依照本地策略执行命令;第三,覆盖网管理被分成多个子服务运行在各自的切片上,而非处于中心的单个管理服务;最后,覆盖网支持已有的编程接口,通过内部改动保持可编程接口(API)的不变性,确保服务开发的长期性而非临时性的测试。
(3)GENI
GENI是由美国国家科学基金会发起的一个全球范围的网络虚拟化项目,旨在集合原有的网络虚拟化技术成果来建立一个更为开放和大规模的网络测试平台,为探索下一代互联网提供条件。GENI的主要设计目标包括:可分层式资源共享,普适性(为研究者提供灵活的初始化平台)、精确性、多样性和可扩展性,受控的独立性和具备监视设备的能力。GENI提出了通过对资源在时间和空间上分片来实现虚拟化。为了平衡性能,GENI对两种虚拟化方案进行了折中。若有充足的容量支持部署研究,则采用基于时间分片;否则,从空间上分配资源,优先满足高优先级的项目,而非让所有人都得到资源。
2 网络虚拟化的现在
早期的网络虚拟化的相关工作多在解决一些具体的问题,欠缺完整的技术体系与合理的组织结构。现在的网络虚拟化,一方面借助于云计算的平台来全面展示其优异的性能;另一方面整合自身的体系结构,以平台化的方式提供更为友好全面的服务。除此之外,软件定义网络(SDN)的兴起也为网络虚拟化提供了一个新的思路,如何利用SDN去实现网络虚拟化已然成为了一个热门的话题。
2.1 网络虚拟化与云计算
一直以来网络虚拟化都缺少一个杀手级的应用,云计算的出现对于网络虚拟化来说是一次千载难逢的机会。首先,云计算对于网络性能以及结构上的复杂要求恰恰是网络虚拟化追求的目标,二者在思想上天然的契合;其次,网络虚拟化与云计算中大量使用的服务器虚拟化可以有效地配合,二者在技术上可以完美地互补。
目前关于两者的研究主要集中在联合部署服务的架构方面,一种面向服务的层次结构(SOA)[10]如图3所示。在这种结构中,底部是资源层,它由网络和云计算的物理基础架构组成。在资源层之上是网络虚拟化层,在这一层中,基于SOA的网络虚拟化将封装不同的网络基础设施资源并将其转化为网络服务,而通过云计算基础设施供应商提供的计算资源将被抽象为符合SOA架构的云服务。服务供应层位于虚拟化层之上,这一层用于发现及选择网络服务和云服务,并将其聚合为网络-云混合服务,用以满足终端用户的需求。在这个结构下,网络资源的虚拟、访问和管理以及在云系统中的CPU能力和内存/磁盘空间等计算资源都是通过统一的机制来进行管理。因此,在这个基于SOA的架构下,网络资源可以被视为商品组件的一部分和云服务一起聚合成一种混合的网络-云服务结构。
2.2 网络虚拟化平台化
网络虚拟化本身的功能虽然已经相当齐备,然而各类技术都存在着一定的局限性,需要对网络虚拟化技术进行统一整合。这方面的主要成果主要来自产业界,其中Nicira公司的NVP[11]、Cisco公司的OnePK[12]以及Juniper公司的Junosphere[13]平台最具代表性。
(1)NVP
Nicira公司的NVP是一个纯软件实现的产品,它将网络的控制功能从底层的网络硬件中解耦出来,交由虚拟的网络层面处理。NVP架构如图4所示。在这个虚拟的网络层面上,NVP重构了整个网络。这种网络的虚拟化极大地简化了网络的构建和管理,已经在AT&T、eBay、Fidelity Investments、NTT和Rackspace等公司广泛应用。NVP两大核心的组件分别是OpenvSwitch和中心控制器。OpenvSwitch是一种开源的虚拟交换机,在NVP中被部署在现有网络的周围,实现物理网络资源虚拟化。中心控制器控制着所有的OpenvSwitch节点和网络连接,并将虚拟化后的网络资源以API的形式暴露出来。NVP具有良好的独立性,不需要更改现有的网络中的服务架构和配置方案,同时,它的实现完全依赖于软件模型,无需特定的硬件支持,这些都有效地推动了其发展。
(2)OnePK
Cisco公司的OnePK是一套方便开发者在Cisco的设备上自动部署服务的工具。OnePK架构如图5所示。借助于Cisco的路由器和交换机的可编程性,OnePK可以让网络高效地适应变化的应用需求,提供更高灵活性的同时,降低了运营维护的成本,让网络的性能充分释放出来。OnePK的架构中包含3个主要组件:表示层、OnePK API和通信信道。表示层由北向API库组成,供应用开发人员使用,其中包含针对特定网络的独立API。OnePK API指的是OnePK面向底层设备的南向API,它的作用是抽象统一化因系统和平台不同而带来的硬件差异。通信信道处于前两者之间,包含认证和管理功能,提供上层应用到下层设备之间的一个快速、安全的通道。OnePK支持包括C、Java、Python、REST等多种开发语言以及不同的部署模式,提供的API兼容所有的Cisco设备(目前也只适用Cisco设备)。
(3)Junosphere
Juniper公司的Junosphere是一套借助于云计算架构实现的虚拟网络平台,其完全依托于自身的基础设施,对外提供Web访问服务。Junosphere架构如图6所示。在Junosphere云中,用户可以方便地创建和运行虚拟网络,扩展网络规模也无需额外的配置工作。Junosphere从硬件到软件都是封闭的,以牺牲一定灵活性的代价换来了更安全可靠的服务保障,能够更好的满足商业级的应用。endprint
2.3 网络虚拟化与SDN
网络虚拟化与SDN因为存在许多类似的地方而常常被人混淆,其实SDN要做的是从底层数据平面分离出一个逻辑的中心控制平面,而网络虚拟化根据逻辑网络对底层网络进行抽象,两者并非一个概念[14]。不过思想上的相似性确是加强了它们之间的联系。首先,SDN作为重构网络的技术被认为是实现网络虚拟化的一种有效的手段,如上文中提及的Nicira公司的NVP完全就可以按照SDN的方式进行部署;其次,SDN网络的性能测试可以借助于已有的网络虚拟化工具如Mininet实现;最后,网络虚拟化可以通过虚拟SDN交换机(事实上就是一些流表)来实现节点虚拟化。
利用SDN去部署实现网络虚拟化之所以得到越来越多的重视,更重要的原因是在于SDN优良的结构体系。两层分立的模型使得SDN可以实现两种不同级别的网络虚拟化,即数据平面虚拟化和控制平面虚拟化,区别在于后者实现了SDN的控制器部分的虚拟化,从而能够提供功能更加强大的API。目前SDN在支持虚拟化方面还存在着一些问题,首先是SDN本身的问题,SDN控制器虽然强大,但是中心化的特征很容易使其成为整个网络的性能“瓶颈”,而且也容易产生安全隐患,如何去中心化(如采用控制器分布式部署或多控制器备份机制)是SDN实际部署网络虚拟化首先要完成的任务;其次,SDN是基于流的方式实现网络的功能,要实现网路虚拟化中对于网络资源的隔离的需求就要实现流的有效隔离,在这一方面SDN还有待加强;最后,在网络虚拟化中,不同的流的服务质量(QoS)要求差异巨大,SDN需要区分服务,避免时延要求高的流进入控制器部分。
目前许多的主流的SDN控制器,如OpenDaylight、OpenContrial等都宣称支持网络虚拟化,像FLowvisor、FlowN以及Advisor等更是专门为实现网络虚拟化开发的SDN组件。
3 网络虚拟化的未来
回顾发展历程以及当下的研究热点,不难发现网络虚拟化的一个明显的趋势:技术作为支持被模糊化,服务作为核心被抽象出来。这主要是受到云计算中的一切即服务(XaaS)思想的影响。现在的网络虚拟化还仅仅是为了支持其他服务而存在的底层支撑,它的许多能力因为复杂的特性无法完全展现出来。未来的网络虚拟化应该向着网络即服务(NaaS)的方向发展,底层的硬件被统一抽象功能化,对外暴露给用户的就是一系列的API。用户不再像以前只能使用网络,而无法操作网络本身,这对于定制个性化的网络意义重大,而API的访问机制也可以保证了服务的高效性和安全性。随着工业化与信息化融合进程的快速推进以及物联网、云计算等技术的规模发展,IP网络规模、业务规模和用户规模势必将进一步扩大,未来网络虚拟化在打造智能高效的网络服务方面必定大有可为。
网络虚拟化在无线网络和光网络中的推广是其发展的另一个趋势。作为传统网络的重要组成部分,无线网络和光网络的虚拟化必将能进一步提供网络虚拟化的实用价值。不过因为物理资源上的特殊性,它们在网络虚拟化的实现上存在着不小的差异。在无线网络领域,网络虚拟化的实现主要有3种思路:基于数据和流的实现、基于协议的实现、基于频谱的实现。3种思路对虚拟化实现的粒度越来越细,难度也越来越大。在光网络领域,虚拟化的实现则分为3个部分:光交叉连接器(OXC)和单波长级光信号交换的设备(ROADM)的虚拟化、次波长交换虚拟化、光链路的虚拟化。
网络功能虚拟化(NFV)[15-16]是2013年初才提出的一个新概念,作为网络虚拟化的一个新的分支,其主要目的是简化网络部署,旨在利用已有的高性能的服务器、交换机和存储设备等代替昂贵的传统网络设备部署网络服务。就目前来看,网络功能虚拟化可以看作是网络虚拟化中节点虚拟化的一种实现思路,利用已有的服务器虚拟化技术和过剩的服务器资源来实现虚拟网络中的功能节点可以说是一举多得。不过未来,网络功能虚拟化的含义不会止步于此,在服务化的思路里,一个虚拟网络就是一个网络功能。网络功能虚拟化可以站在一个全新的高度去指导和管理网络虚拟化所产生的虚拟网络资源。原则上,该技术可运用到固定和移动网络的任何数据处理层面和控制层面。T-NOVA[17]项目是FP7支持的NFV项目,其主张利用NFV为用户提供自定义的网络功能,进行增值服务的部署,达到NFVaaS的目标。
NFV的架构如图7所示。其定义了3个主要的工作领域:
(1)虚拟化网络功能
虚拟化网络功能(VNF)即能够运行在网络功能虚拟化基础设施(NFVI)中的软件部署的网络功能。
(2)络功能虚拟化基础设施
网络功能虚拟化基础设施(NFVI)也包括了相应的物理资源以及如何将这些资源进行虚拟化的策略,同时NFVI支持VNF的执行。
(3)NFV的管理运营模块
NFV的管理运营模块同时包括了对支持设施虚拟化的物理以及软件资源和VNF的管理以及规划,它的重点是管理和规划整个NFV架构中需要进行虚拟化的任务和进程。
作为一个新兴的概念,其标准化的过程才刚刚开始,技术方面也有待完善。然而按照目前的发展势头来看,NFV在内容分发网络(CDN)、IP多媒体子系统和虚拟路由器/安全网关等领域将大有可为。
4 结束语
网络虚拟化在技术和项目领域的积淀已经相当深厚,当下云计算、平台化实现以及SDN等相关领域的研究也异常火热。不过,网络虚拟化在性能保障、可靠性、易用性和完备性等方面需要加强。未来的网络虚拟化需要优化自身服务结构,并向无线网络、光网络等领域推广,同时还要提供更加友好的API以及网络功能。网络虚拟化在发展过程中存在的许多关键问题还没有令人满意的解决方案,值得进一步研究。作为未来互联网发展的一个重要方向,网络虚拟化必将对网络结构、服务等领域造成深远的影响。endprint
参考文献
[1] CHOWDHURY N M K, BOUTABA R. Network virtualization: state of the art and research challenges [J]. Communications Magazine, IEEE, 2009, 47(7):20-26.
[2] CHOWDHURY N M, BOUTABA R. A survey of network virtualization [J]. Computer Networks, 2010, 54(5): 862-876.
[3] WANG A, IYER M, DUTTA R, et al. Network Virtualization: Technologies, Perspectives, and Frontiers [J]. Journal of Lightwave Technology, 2013, 31(4): 523-537.
[4] KHAN A, ZUGENMAIER A, JURCA D, et al. Network virtualization: a hypervisor for the Internet? [J]. Communications Magazine, IEEE, 2012, 50(1): 136-143.
[5] COMMITTEE L S. IEEE Standard for Local and Metropolitan Area Networks—Virtual Bridged Local Area Networks [S]. IEEE Std 802.1Q-2005, 2006.
[6] FERGUSON P, HUSTON G. What is a VPN? [R]. Tech. Rep., Cisco Systems, 1998.
[7] TOUCH J, HOTZ S. The X-Bone [C]//Proceedings of the IEEE Global Telecommunications Conference (GLOBECOM), Sydney, 1998, 1: 44-52.
[8] PlanetLab: An open platform for developing, deploying, and accessing planetary-scale services [EB/OL]. (2014-03-01). http://www.planet-lab.org/.
[9] GENI: Global Environment for Network Innovations [EB/OL]. (2014-03-01). http://www.geni.net/.
[10] DUAN Q, YAN Y, VASILAKOS A V. A survey on service-oriented network virtualization toward convergence of networking and cloud computing [J]. Network and Service Management, IEEE Transactions on, 2012, 9(4): 373-392.
[11] Nicira. Its time to virtualize the network [EB/OL]. (2014-03-01). http://nicira.com/en/network-virtualization-platform.
[12] Cisco OnePK [EB/OL]. (2014-03-01). http://www.cisco.com/c/en/us/products/ios-nx-os-software/onepk.html.
[13] Juniper Junosphere [EB/OL]. (2014-03-01). http://www.juniper.net/us/en/products-services/software/junos-platform/junosphere/.
[14] DRUTSKOY D, KELLER E, REXFORD J. Scalable network virtualization in software-defined networks [J]. IEEE Internet Computing, 2013,17(2 ):20-27. doi: 10.1109/MIC.2012.144.
[15] Network Functions Virtualisation [R]. Introductory White Paper. SDN and OpenFlow World Congress. October 22-24, 2012.
[16] NFV. Network Functions Virtualisation (NFV); Architectural Framework [R]. Technical Body: NFV, 1998.
[17] T-NOVA [EB/OL]. (2014-03-01). http://www.t-nova.eu/.endprint