APP下载

S D N技术在混合云网络架构中的应用研究

2015-04-13房秉毅杨绍光中国联通研究院北京100032

邮电设计技术 2015年7期
关键词:租户网络设备路由器

房秉毅,杨绍光(中国联通研究院,北京100032)

0 前言

2015 年的“两会”后,以“互联网+”为核心的时代正在开启,“互联网+”的核心是推动传统行业与互联网的深度融合,通过借助互联网技术和互联网平台,创造新的价值和新的发展生态。云计算作为互联网技术与应用的重要承载,企业业务部署由传统IT基础设施逐步转型云计算基础设施,在“互联网+”时代,将会深层次促进各行业企业拥抱互联网。

根据Wikipedia 对云计算的定义(见图1),企业拥有本地的IT基础设施,而企业外部的IT基础设施由公有云等第三方服务提供商提供。由企业本地IT 和云计算所构成的混合IT基础设施,形成混合云。

根据研究分析机构Gartner 的预测,在2017年,将有50%的企业部署混合云。混合云计算技术还处于新兴技术发展的缓慢期。在未来2~5 年,混合云将发展成熟并达到稳定期。在企业IT转型需求的驱动下,混合云为企业迈入云端构建了桥梁,实现企业网络在云端的互联和延伸。

对运营商来讲,为企业提供混合云服务,需要实现两方面的网络互联。首先,需要在云端满足多租户业务需求的云端虚拟网络,并建立企业网络与云端虚拟网络的安全接入;其次,还需要建立云端虚拟网络间的弹性互联,甚至包括多种云服务中的虚拟网络间的互联。如此复杂多变的网络结构,难以通过物理连线的调整或传统的网络技术实现。软件定义网络(SDN)提出将网络数据平面与控制平面分离,所实现的网络虚拟化,对混合云中实现灵活、可靠的网络管理至关重要。

图1 云计算定义及混合云中的网络互联

1 混合云网络功能分析

对于混合云服务环境下的用户业务部署,从逻辑上看,承载用户业务的网络环境可以分为虚拟网络内部和虚拟网络间。如图2 所示,对一个用户会构建多个虚拟网络,虚拟网络之间通过虚拟网关实现三层互联。对于分处两地或多地的虚拟网络来说,比如企业内部网络和云端的虚拟网络,将通过VPN隧道实现三层互联。因此混合云的最主要功能是实现虚拟私有云(VPC)网络。

图2 虚拟网络及其互联

虚拟私有云VPC 的网络架构图如图3 所示,通过overlay 技术,把混合云资源池的网络分为底层的物理承载网络和上层的虚拟overlay 网络。底层的物理网络即原有的由虚拟交换机、物理交换机、路由器等组成的云数据中心网络,用于提供基本的网络连通性。上层的overlay网络用于用户的业务承载网络。

图3 VPC架构图

通过这种overlay 的网络架构,在物理承载网络之上虚拟出多个逻辑上隔离的VPC,用户的私有数据被限制在VPC内部,保证了VPC之间的隔离性。同时用户的VPC 无论怎么规划,都不会影响到物理网络,也不会影响其他用户的网络规划,这样就可以做到用户对自己网络的独立规划,解除了物理网络和用户网络的耦合性。

VPC的功能需求主要有以下几点。

a)用户网络隔离:不同用户的VPC网络之间相互隔离,保证用户的安全性。

b)用户的主机资源在同一个VPC内:用户的主机包括虚拟机和物理机资源,这些主机资源在一个VPC内,保证了用户资源的互通性。

c)同一个VPC 内可划分子网:VPC 内部,用户可以根据自己的使用需要,划分不同的子网,并可以对IP地址进行自由规划。

d)为用户提供Internet 访问功能:用户可以通过地址绑定或者NAT方式访问Internet。

e)为用户提供DHCP 服务:支持DHCP server 功能,用户主机自动获取IP地址。

f)防火墙服务:提供虚拟或者物理防火墙,用户可以选择是否使用防火墙。

g)QoS 服务:根据用户业务流量优先级进行流量调度处理,对用户主机进行限速。

h)提供统计服务:对用户主机的网络流量进行统计,提供统计数据以及相关的数据分析功能。

i)提供网络冗余功能:提供端口冗余、网关冗余、路由冗余、VPN冗余等高可用性功能。

j)允许虚拟机迁移:用户虚拟机可以自由迁移,并且迁移后网络策略自动跟随。

k)提供远程VPN接入功能:允许用户的私有网络和VPC网络互通,形成统一的网络资源池。

2 基于S D N的混合云网络实现方案

Software-defined networking(SDN)是由美国斯坦福大学提出。将网络设备的控制平面从数据平面中分离出来,并让控制逻辑以软件方式运行于逻辑上独立地控制环境。这个架构可以让网络管理员,在不改动硬件设备的前提下,以中央控制方式,用程序重新规划网络,为控制网络流量提供了新的方法,也提供了核心网络及应用创新的良好平台。

SDN 架构图如图4 所示,数据层由只具有数据转发功能的设备组成,负责数据的转发、设备信息的上报等;控制层又称为网络操作系统层,是SDN 架构中的大脑,其抽取了原网络设备中的控制功能,负责制定流转发规则、状态信息收集、网络配置等控制功能;应用层通过调用控制层开放的API 接口,编程实现各种网络功能,如网络监控、防火墙、流量过滤等。

SDN 技术分离数据和控制平面,通过部署标准化网络硬件平台,使得许多网络设备中的软件可以按需安装、修改、卸载,而变身为运营商需要的设备,实现业务扩展。SDN的本质是逻辑集中控制层的可编程化。

图4 SDN架构图

VPC 应用于云计算数据中心,云计算资源池由云平台统一管理,实现对底层计算、存储、网络等物理资源的云化处理,并把相关资源作为服务提供给用户使用。目前Openstack是最炙手可热的云管理平台,其提供了开放的模块架构,以组件的方式对计算、存储、网络进行统一调度管理。其核心组件的架构如图5 所示。

图5 openstack架构图

本文以Openstack 作为云平台为例来对VPC 的实现方式进行分析。

云计算网络相对于传统网络有较大改变。云计算资源池中不但有传统的硬件网络设备,还增加了虚拟的软件网络设备(如虚拟交换机、虚拟路由器),增加了网络的复杂性。同时云计算的灵活性(如多租户共享资源、业务频繁启停等)要求对网络设备更加智能、快速地进行管理,网络必须适应业务的复杂性。这些都是传统网络捉襟见肘的地方。

实现overlay 的虚拟私有云,其关键在于overlay 的网络节点,负责网络流量的封装、解封装,是overlay 网络的核心部件。overlay网络节点可以部署在物理网络设备处,也可以部署在虚拟网络设备处。部署位置的不同也就衍生出2 种不同的overlay 实现方案,一种是软件方案,overlay节点部署在软件交换机处;另一种是硬件方案,overlay节点部署在硬件交换机处。

2.1 软件实现方式

软件实现方式下,overlay 网络由部署在云计算节点hypervisor 处的软件路由器(交换机)实现。SDN 方案中数据转发平面基于Overlay 网络,使用通用标准成熟协议实现,不依赖特定厂商硬件。

SDN软件方案主要由分布式控制器和分布式虚拟路由器组成,其系统架构如图6所示。

图6 软件实现方式架构图

系统提供基于REST API 的北向接口给上层的应用程序使用。这些API可以被用来和云管理平台进行集成,通过Neutron的插件方式和OpenStack的集成,也可以用来开发管理这个虚拟化系统的Web UI。

控制层使用XMPP、BGP、netconf 等协议作为南向的接口,通过BGP、netconf 和物理设备交互,通过XMPP 协议和虚拟路由器来进行通信,例如同步路由信息。东西向的接口主要还是BGP协议,通过BGP协议,各个控制程序同步信息,形成一个逻辑上中心化的控制层,不同的控制程序之间相当于热互备。

在数据转发层面,虚拟路由器之间支持多种Tun⁃nel 的方式,有VxLAN、MPLSoverGRE、MPLSoverUDP等。虚拟网络的路由信息通过XMPP同步到各个虚拟路由器,不存在一个中心“路由器”。

相对于传统的VLAN 来隔离网络的方式,SDN 系统则是通过ARP代理的方式来避免二层的广播影响,每一个Hpyervisor 上的虚拟路由器都可以响应虚拟机的ARP请求,而不再将ARP请求发到交换机上去。

在DHCP 方面,SDN 也实现了DHCP 服务的代理,可以自动响应虚拟机的DHCP 请求,不需要第三方的DHCP服务。

网络虚拟化软件平台系统使用特定的高层级服务数据模型,特定的低层级技术数据模型,通过转换引擎实现前后者的映射,此外,网络虚拟化软件平台系统还附带了一组特定的南向协议。

网络虚拟化软件平台系统中的模型化服务包括租户、虚拟网络、连接策略和安全策略。通过这些服务模型组件可以实现的基本业务主要有云计算网络和NFV(适用环境:云计算网络、多租户网络)。

低层级服务数据模型在网络虚拟化软件平台系统中主要使用overlay networking(网络构建模型:overlay)实现服务模型。

配置节点的转换引擎通过“编译器”实现高层级服务数据模型到低层级数据模型的转换映射。

控制节点使用的南向协议包括XMPP、BGP、Net⁃conf。

网络虚拟化软件平台系统是一个扩展平台,意味着可以通过组件扩展的方式去支持更多的用户部署环境,增加新的网络技术。

a)高层级服务数据模型可以扩展新的组件去支持新的服务,例如运营商核心网络的流量工程和流量日历(根据日期进行流量管理)。

b)低层级服务数据模型也可以进行扩展。数据模型可以使用不同的技术来实现,例如多租户可以使用VLAN实现,而不是overlay。

新的南向协议可以引入到控制节点中,这主要用于支持网络中使用不同协议的新类型的物理或者虚拟设备。例如可以引入特定厂商的网络设备中使用的CLI命令行接口,或者可能因为需要部署新的协议,新的组件需要引入到低层级技术数据层面中。

SDN 系统由配置节点、控制节点、计算节点、分析节点、OpenStack Neutron 插件等多个节点组成(见图7)。

图7 SDN与OpenStack集成

配置节点主要负责通过Rest API 来接受配置,并通过IFMAP协议将信息同步给控制节点。

控制节点主要负责接收通过IFMAP 传输过来的信息,保存这些信息,并和计算节点通过XMPP协议同步信息,同时控制节点还监听179端口,和其他的控制节点形成BGP PEER,同步路由信息。

计算节点主要由一个Agent 和虚拟路由器内核模块组成,负责数据面的转发。

OpenStack 插件主要有Neutron 插件和Libvrit 的VIF插件,前者主要负责和SDN系统同步网络信息,利用SDN系统管理网络,后者主要负责将虚拟机的网卡插入到虚拟路由器中,并将网卡信息同步给虚拟路由器的Agent。

分析节点主要负责收集各个节点的工作状态、log和系统信息,并提供类似SQL 式的查询。系统组成以数据为中心,数据的存储有Cassandra、ZooKeeper、Re⁃dis 等,Cassandra 存储具体的网络配置信息,Zookeeper存储服务信息,提供服务发现功能,这2个都支持集群模式,因此系统组成中的配置节点、控制节点、分析节点都可以支持多个同时部署,以达到HA的效果,如果一个单一的组件重启,重启后信息会从其他的节点同步,提高了系统的可靠性。

虚拟路由器是一个用户空间进程,在Linux 中运行,是一个本地的,轻量级控制平面,主要提供如下功能。

a)使用XMPP 实现和控制节点,例如路由的控制状态交换。

b)使用XMPP 从控制节点上接收低层级配置状态,例如路由进程和转发策略。

c)向分析节点汇报信息,例如日志、汇总和事件的分析状态。

d)向转发平面传递转发状态(下发转发表)。

e)查找VM 的状态和属性,和Nova 代理进行交互。

f)为每个新流的首包应用转发策略,在转发平面的流表中新增流表项。

g)为DHCP、ARP和MDNS提供代理,其他代理会在未来版本中添加。

每个虚拟路由器都会连接至少2 个控制节点,在active-active冗余模型中提供冗余。

虚拟路由器转发平面运行在Linux的kernel中,主要负责如下功能。

封装数据包到overlay 网络中,从overlay 网络中解封装数据包。

分配数据包到路由实例中,主要负责的功能有:

a)从overlay 网络中接受数据包,并基于MPLS 标签或者虚拟网络标识(VNI)分配到路由实例中。

b)为虚拟机提供虚拟接口,并绑定在路由实例中。

c)在转发信息表中查询目的地址,并将数据包发送到正确的目的地址,路由可以基于三层IP前缀或者二层MAC地址。

d)根据情况,使用流表应用转发策略:

(a)匹配流表中的数据包,并应用流表操作。

(b)根据情况,当转发规则在虚拟路由器中没有找到流规则时则挂起数据包,然后在流表中应用一条规则。

(c)挂起一些数据包,如DHCP、ARP、MDNS 等用于虚拟路由器中的代理。

2.2 硬件实现方式

硬件实现方式下,在overlay 网络硬件交换机处实现用户数据的封装、解封装,一般在TOR(Top of Rack)交换机处。

SDN硬件方案主要由分布式控制器和硬件交换机组成,其系统架构图如图8所示。

图8 硬件实现方式架构图

需要说明的一点是,硬件方案也需要虚拟交换机配合,对用户数据进行基本的VLAN 封装和解封。在此结构下,虚拟交换机把虚拟机发送的报文打上VLAN tag 后发送到接入交换机,接入交换机通过分层的方式,把租户的虚拟网络和底层用于隧道传输的物理网络进行分离,同时通过给每个租户分配一个虚拟网络,实现租户隔离。

以VxLAN封装来实现overlay为例,用户数据的转发流程如图9所示。

网络报文从虚拟机发出后,虚拟交换机在原始报文上打上VLAN tag标签后发送到接入交换机,接入交换机根据VLAN tag在报文外层封装VxLAN报文头,并转发成对端接入交换机所需的路由信息,然后把此报文发送到物理网络。对端接入交换机收到此报文后把外层报文头剥离后发送到虚拟交换机,虚拟交换机根据内层报文信息把此报文转发到相应的虚拟机。整个报文转发流程完成。

硬件实现方案原理与软件方案类似,区别是把实现overlay 封装和解封装的工作放在了硬件交换机上来做。其好处是减轻软件处理overlay 的压力,释放了此部分计算资源,保证了系统性能。其缺点也很明显,需要专门的支持overlay 功能的硬件设备,导致系统灵活性降低。

3 结束语

混合云为企业提供跨越企业网络和云端网络的混合IT 基础架构。混合云所提供的企业网络与云端网络的安全接入,以及云端网络互联,需要解决多租户、异构网络环境下的复杂管理问题。基于SDN 的虚拟网络虚拟化架构,通过构建overlay 网络的方式,解决了混合云平台中多租户网络的隔离问题,屏蔽了租户业务网络对底层物理网络的影响,使得用户可以自由规划自己的网络,在大规模混合云系统中得到越来越多的应用。

图9 硬件实现用户数据处理流程

目前虚拟私有云的实现方式主要有软件方式和硬件方式,各有其优缺点,适用于不同的场景。软件方案灵活性较高,对硬件网络设备没有依赖,适用于对原有系统的升级改造;硬件方案性能较好,不占用服务器的资源,但是需要专门的硬件网络设备,硬件方案成本比软件方案高。

[1] Wikipedia:cloud computing type[EB/OL].[2015-01-31].http://en.wikipedia.org/wiki/Cloud_computing.

[2] Gartner:hybrid cloud analysis and prediction[EB/OL].[2015-01-31]. http://www.networkcomputing.com/cloud-infrastructure/gartner-50--of-enterprises-use-hybrid-cloud-by-2017/d/d-id/1111769?%20.

[3] 李素粉,董晖,房秉毅,等.面向云化EPC资源的移动CDN融合架构研究[J].电信科学,2014(11).

[4] 杨绍光,房秉毅,毋涛.基于SDN的虚拟私有云研究[J].信息通信技术,2014(2).

猜你喜欢

租户网络设备路由器
买千兆路由器看接口参数
网络设备的安装与调试课程思政整体设计
维持生命
路由器每天都要关
路由器每天都要关
多租户数据隔离及加密研究
一种基于C# 的网络设备自动化登录工具的研制
基于多租户隔离的云安全建设
一种新型高效的多租户共享数据模型
基于MVC模式的多租户portlet应用研究*