基于 SDN 的虚拟私有云研究
本文中主要介绍了虚拟私有云系统的功能特点;针对目前云计算资源池网络隔离较差和配置比较复杂的问题,分析云计算资源池对于虚拟私有云的需求。同时,还对基于SDN技术实现虚拟私有云的两种主要方式进行分析,对每种方式的技术原理及架构进行描述、对两种方式的优缺点进行比较。
引言
云计算的大规模运营给传统网络架构和应用部署带来挑战[1-2],新一代网络支撑这种巨型的计算服务,不论是技术革新还是架构变化,都需要服务于云计算的核心要求,即动态、弹性、灵活,并实现网络部署的简捷化。具体来说传统网络面临的挑战主要4点。1)服务器的利用率从20%提高到80%,服务器端口流量大幅提升,对数据中心网络承载性能提出巨大挑战,对网络可靠性要求也更高;2)多种应用部署在同一台物理服务器上运行,使网络流量在同一台物理服务器上产生叠加,流量模型更加不可控;3)服务器虚拟化技术的应用必然伴随着虚拟机的迁移,这种迁移需要一个苛刻的网络环境来保障;4)虚拟机的部署和迁移,使得安全策略的部署变得复杂和无助,需要一个动态的机制来对数据中心进行防护[3]。
云计算平台中,虚拟机在物理服务器之间进行迁移,为避免虚拟机迁移后路由的震荡和修改网络规划,迁移通常只在在二层域进行,因此,云计算平台需要具备一个性能更高、二层域更大的网络环境为迁移提供保障。在传统的数据中心网络中,都是通过STP+VRRP的方式进行网络拓扑设计,但由于 STP+VRRP的设计和维护都比较复杂,其在很大程度上阻碍了二层域的扩大,随着服务器的数量和网络设备的增多,这种网络设计方式将会变得无法实施。同时,虚拟机的迁移对网络的可用性要求也非常高,在STP+VRRP的组网中,如果链路出现故障,其收敛时间都在秒级,这就增加了应用系统迁移的限制。
通过分析云计算对传统网络基础架构带来的挑战,我们可以从两个方面来应对。一是通过构建高性能、高可靠的网络,以应对云计算给网络带来的压力;二是通过构建虚拟化网络来满足云计算中由于虚拟机部署、迁移以及安全策略实施对网络提出的灵活性、安全性的要求。
1 虚拟私有云系统功能分析
以亚马逊为首的公有云运营商提出VPC(Virtual Private Cloud)的概念[3]。其主要思想是把原有的物理网络作为底层的网络通路,在此之上构建一层虚拟的网络,用来承载用户的业务数据。从而解决用户之间的隔离问题以及用户业务对底层承载网络的相互影响问题[4]。
VPC的架构图如图1所示。通过Overlay技术,把云计算资源池的网络分为底层的物理承载网络和上层的虚拟Overlay网络。底层的物理网络即原有的由虚拟交换机、物理交换机、路由器等组成的云数据中心网络,用于提供基本的网络连通性。上层的Overlay网络用于用户的业务承载网络 [5-6]。
图1 VPC架构图
通过这种Overlay的网络架构,在物理承载网络之上虚拟出多个逻辑上隔离的VPC,用户的私有数据被限制在VPC内部,以保证VPC之间的隔离性。同时,用户的VPC无论怎么规划,都不会影响到物理网络,也不会影响其他用户的网络规划,这样就可以做到用户对自己网络的独立规划,解除了物理网络和用户网络的耦合性。
VPC的功能需求主要有以下几点。1)用户网络隔离。不同用户的VPC网络之间相互隔离,以保证用户的安全性。2)用户的主机资源在同一个VPC 内。用户的主机包括虚拟机和物理机资源,这些主机资源在一个VPC内,以保证用户资源的互通性。3)同一个VPC内可划分子网。VPC内部,用户可以根据自己的使用需要划分不同的子网,并可以对IP地址进行自由规划。4)为用户提供Internet访问功能。用户可以通过地址绑定或者NAT方式访问 Internet。5)为用户提供DHCP服务。支持DHCP server功能,用户主机自动获取IP地址。6)防火墙服务。提供虚拟或者物理防火墙,用户可以选择是否使用防火墙。7)QoS服务。根据用户业务流量优先级进行流量调度处理,对用户主机进行限速。8)提供统计服务。对用户主机的网络流量进行统计,提供统计数据以及相关的数据分析功能。9)提供网络冗余功能。提供端口冗余、网关冗余、路由冗余、VPN冗余等高可用性功能。10)允许虚拟机迁移。用户虚拟机可以自由迁移,并且迁移后网络策略自动跟随。 11)提供远程VPN接入功能。允许用户的私有网络和VPC网络互通,形成统一的网络资源池。
2 基于SDN的虚拟私有云实现方式
2.1 概述
Software Defined Network(软件定义网络,SDN)由美国斯坦福大学提出,它是指将网络设备的控制平面(control plane)从数据平面(data plane)中分离出来,并让控制逻辑以软件方式运行于逻辑上独立的控制环境。这个架构可以让网络管理员在不改动硬件设备的前提下,以中央控制方式,用程序重新规划网络,为控制网络流量提供新的方法,也提供核心网络及应用创新的良好平台。
SDN架构图如图2所示。数据层由只具有数据转发功能的设备组成,它负责数据的转发、设备信息的上报等;控制层又称为网络操作系统层,是SDN架构中的大脑,其抽取了原网络设备中的控制功能,负责制定流转发规则、状态信息收集、网络配置等控制功能;应用层通过调用控制层开放的API接口,编程实现各种网络功能,如网络监控、防火墙、流量过滤等。
图2 SDN架构图
SDN技术分离数据和控制平面,通过部署标准化网络硬件平台,使得许多网络设备中的软件可以按需安装、修改、卸载而变身为运营商需要的设备,实现业务扩展。SDN的本质是逻辑集中控制层的可编程化。
VPC应用于云计算数据中心,云计算资源池由云平台统一管理,实现对底层计算、存储、网络等物理资源的云化处理,并把相关资源作为服务提供给用户使用。目前,Openstack是最炙手可热的云管理平台,其提供开放的模块架构,以组件的方式对计算、存储、网络统一调度管理。其核心组件架构如图3所示。本文以Openstack作为云平台为例来对VPC的实现方式进行分析。
图3 OpenStack架构图
云计算网络相对于传统网络有较大改变。云计算资源池中不但有传统的硬件网络设备,还增加了虚拟的软件网络设备(如:虚拟交换机、虚拟路由器),也因此增加了网络的复杂性。同时,云计算的灵活性(比如:多租户共享资源、业务频繁启停等)要求对网络设备更加智能、快速地进行管理,网络必须适应业务的复杂性。这些都是传统网络捉襟见肘的地方。
实现Overlay的虚拟私有云,关键在于Overlay的网络节点,其负责网络流量的封装、解封装,是Overlay网络的核心部件。 Overlay网络节点可以部署在物理网络设备处,也可以部署在虚拟网络设备处。部署位置的不同也就衍生出两种不同的Overlay实现方案。一种是软件方案,Overlay节点部署在软件交换机处;另一种是硬件方案,Overlay节点部署在硬件交换机处。
2.2 软件实现方式
软件实现方式下,Overlay网络由部署在云计算节点hypervisor处的软件路由器(交换机)实现。SDN方案中数据转发平面基于Overlay 网络,使用通用标准成熟协议实现,不依赖特定厂商硬件。
SDN软件方案主要由分布式控制器和分布式虚拟路由器组成,其系统架构图如图4所示。
图4 软件实现方式架构图
系统提供基于REST API的北向接口给上层的应用程序使用。这些API可以被用来和云管理平台进行集成,通过Neutron的插件方式和OpenStack的集成也可以用来开发管理这个虚拟化系统的WEB UI。
控制层使用XMPP、BGP、netconf等协议作为南向的接口,通过BGP、netconf和物理设备交互,通过XMPP协议和虚拟路由器进行通信,例如同步路由信息。东西向的接口主要还是BGP协议,通过BGP协议,各个控制程序同步信息,形成一个逻辑上中心化的控制层,不同的控制程序之间相当于热互备。
在数据转发层面,虚拟路由器之间支持多种Tunnel的方式,有VxLAN、MPLSoverGRE、MPLSoverUDP等。虚拟网络的路由信息通过XMPP同步到各个虚拟路由器,不存在一个中心“路由器”。
相对于传统的VLAN来隔离网络的方式, SDN系统则是通过ARP代理的方式来避免二层广播的影响,每一个Hpyervisor上的虚拟路由器都可以响应虚拟机的ARP请求,而不再将ARP请求发到交换机上去。
在DHCP方面,SDN也实现了DHCP服务的代理,可以自动响应虚拟机的DHCP请求,不需要第三方的DHCP服务。
网络虚拟化软件平台系统使用特定的高层级服务数据模型和特定的低层级技术数据模型,通过转换引擎实现前后者的映射,此外,网络虚拟化软件平台系统还附带了一组特定的南向协议。
网络虚拟化软件平台系统中的模型化服务包括租户、虚拟网络、连接策略和安全策略。通过这些服务模型组件可以实现的基本业务主要有云计算网络和NFV(适用环境:云计算网络、多租户网络)。
低层级服务数据模型在网络虚拟化软件平台系统中主要使用Overlay Networking(网络构建模型:Overlay)实现服务模型。
配置节点的转换引擎通过“编译器”实现高层级服务数据模型到低层级数据模型的转换映射。
控制节点使用的南向协议包括XMPP、BGP、Netconf。
网络虚拟化软件平台系统是一个扩展平台,意味着我们可以通过组件扩展的方式去支持更多的用户部署环境,增加新的网络技术。
1) 高级服务数据模型可以扩展新的组件去支持新的服务,例如运营商核心网络的流量工程和流量日历(根据日期进行流量管理)。
2) 低层次的服务数据模型也可以进行扩展。数据模型使用不同的技术来实现,例如多租户可以使用VLAN实现,而不是Overlay。
新的南向协议可以引入到控制节点中,这主要用于支持网络中使用不同协议的新类型的物理或者虚拟设备。例如,可以引入特定厂商的网络设备中使用的CLI命令行接口,或者可能因为需要部署新的协议,新的组件需要引入到低层级技术数据层面中。
SDN系统由多个节点组成,即配置节点、控制节点、计算节点、分析节点、OpenStack Neutron插件(如图5所示)。
图5 SDN与OpenStack集成
配置节点主要负责通过Rest API来接受配置,并通过IFMAP协议将信息同步给控制节点。
控制节点主要负责接收通过IFMAP传输过来的信息,保存这些信息,并和计算节点通过XMPP协议同步信息,同时,控制节点还监听179端口,和其他的控制节点形成BGP PEER,同步路由信息。
计算节点主要由一个Agent和虚拟路由器内核模块组成,负责数据面的转发。
OpenStack插件主要有Neutron插件和Libvrit的VIF插件,前者主要负责和SDN系统同步网络信息,利用SDN系统管理网络,后者主要负责将虚拟机的网卡插入到虚拟路由器中,并将网卡信息同步给虚拟路由器的Agent。
分析节点主要负责收集各个节点的工作状态、log和系统信息,并提供类似SQL式的查询。系统组成以数据为中心,数据的存储有Cassandra、 ZooKeeper、Redis等,Cassandra存储具体的网络配置信息,Zookeeper存储服务信息,提供服务发现功能,这两个都支持集群模式,因此,系统组成中的配置节点、控制节点、分析节点都可以支持多个同事部署,以达到HA的效果,如果一个单一的组件重启,重启后信息会从其他的节点同步,可提高系统的可靠性。
虚拟路由器是一个用户空间进程,在Linux中运行,是一个本地的轻量级控制平面,它主要有七个功能。1)使用XMPP实现和控制节点,例如路由的控制状态交换。2)使用XMPP从控制节点上接收低层级配置状态,例如路由进程和转发策略。3)向分析节点汇报信息,例如日志,汇总事件的分析状态。4) 向转发平面传递转发状态(下发转发表)。5)查找VM的状态和属性,和Nova代理进行交互。6)为每个新流的首包应用转发策略,在转发平面的流表中新增流表项。7)为DHCP、ARP和MDNS提供代理,其他代理会在未来版本中添加。
每个虚拟路由器都会连接至少两个控制节点,在active-active冗余模型中提供冗余。虚拟路由器转发平面运行在Linux的kernel 中,主要负责如下功能。1)封装数据包到Overlay网络中,从Overlay网络中解封装数据包。2)分配数据包到路由实例中。①从Overlay网络中接受数据包,并基于MPLS标签或者虚拟网络标识(VNI)分配到路由实例中。②为虚拟机提供虚拟接口,并绑定在路由实例中。③在转发信息表中查询目的地址,并将数据包发送到正确的目的地址,路由可以基于三层IP前缀或者二层MAC地址。④根据情况使用流表应用转发策略。如匹配流表中的数据包,并应用流表操作;根据情况,当转发规则在虚拟路由器中没有找到流规则时则挂起数据包,然后在流表中应用一条规则;挂起一些数据包,如DHCP、ARP、MDNS 等用于虚拟路由器中的代理。
2.3 硬件实现方式
硬件实现方式下,Overlay网络硬件交换机处实现用户数据的封装、解封装,一般在TOR(Top of Rack)交换机处。
SDN硬件方案主要由分布式控制器和硬件交换机组成,其系统架构图如图6所示。
图6 硬件实现方式架构图
需要说明的一点,硬件方案也需要虚拟交换机配合,对用户数据进行基本的VLAN封装和解封。在此结构下,虚拟交换机把虚拟机发送的报文打上VLAN tag后发送到接入交换机,接入交换机通过分层的方式,把租户的虚拟网络和底层用于隧道传输的物理网络进行分离,同时,通过给每个租户分配一个虚拟网络实现租户隔离。
以VxLAN封装来实现Overlay为例,用户数据的转发流程如图7所示。
图7 硬件实现用户数据处理流程
网络报文从虚拟机发出后,虚拟交换机在原始报文打上VLAN tag标签后发送到接入交换机,接入交换机根据VLAN tag在报文外层封装VxLAN报文头以及转发到对端接入交换机所需的路由信息,然后,把此报文发送到物理网络。对端接入交换机收到此报文后把外层报文头剥离后发送到虚拟交换机,虚拟交换机根据内层报文信息把此报文转发到相应的虚拟机。整个报文转发流程完成。
硬件实现方案原理与软件方案类似,区别是把实现Overlay封装和解封装的工作放在了硬件交换机上来做。其好处是减轻软件处理Overlay的压力,释放了此部分计算资源,保证了系统性能。其缺点也很明显,需要专门支持Overlay功能的硬件设备,导致系统灵活性降低。
3 总结
基于SDN的虚拟私有云通过构建Overlay网络的方式解决了云计算系统中多租户网络的隔离问题,屏蔽了租户业务网络对底层物理网络的影响,使得用户可以自由规划自己的网络,在大规模云计算系统中得到越来越多的应用。目前,虚拟私有云的实现方式主要有软件方式和硬件方式,各有其优缺点,适用于不同的场景。软件方案灵活性较高,对硬件网络设备没有依赖,适用于对原有系统的升级改造;硬件方案性能较好,不占用服务器的资源,但是需要专门的硬件网络设备,硬件成本比软件方案高。
参考文献
[1] Michael stephens ten trends & Technologiesfor 2009 [EB/OL].(2009-12-12)[2015-01-20].http://tametheweb. com/2009/01/12/ten-trendstechnologies-for-2009
[2] 刘鹏.云计算[M].北京:电子工业出版杜,2010
[3] 孙鑫.面向云环境数据中心的高效资源调度机制研究[D/OL].[2015-01-20].http://cdmd.cnki.com.cn/Article/CDMD-10013-1012499167.htm
[4] AmazonElastic Compute Cloud[EB/OL].(2014-02-01) [2015-01-20].http://awsdocs.s3.amazonaws.com/EC2/latest/ec2-ug-zh_cn.pdf
[5] 薛淼,符刚,朱斌,等.基于SDN-NFV的核心网演进关键技术研究[J].邮电设计技术,2014(3):16-22
[6] 李素粉,董晖,房秉毅,等.面向云化EPC资源的移动CDN融合架构研究[J].电信科学,2014(11):27-32
作者简介:
杨绍光:硕士,工程师,研究方向为云计算、网络虚拟化。
房秉毅:博士,高级工程师,研究方向为云计算、下一代网络通信技术。