一种基于SDN全物理交换机部署OpenStack的实现

2016-04-11 14:04许延伟许凯
电脑知识与技术 2016年4期
关键词:流表网络资源交换机

许延伟+许凯

摘要:该文提出一种基于SDN全物理交换机部署OpenStakc网络实现方法,使得OpenStack可以利用SDN强大的网络管理优势,实现了对网络资源的统一高效的管理。该文方法中OpenStack不再对网络资源进行虚拟化管理,而是把网络管理工作交付SDN控制器来完成,OpenStack直接接入物理交换机,实现了OpenStack与SDN的整合。

关键词:软件定义网络;OpenStack

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)04-0066-04

An Implementation to Deployed OpenStack on SDN Physical Switches

XU Yan-wei, XU Kai

(National Engineering Research Center for Broadband Networks & Applications, Shanghai 200336, China)

Abstract: In this paper, we proposes an implementation to deployed OpenStack on SDN physical switches, OpenStack could manage network resources effectively by using SDN. In this implementation, OpenStack did not need to manage network resources directly, the SDN did it; and OpenStack kindly connect to physical switches, we successfully integrated OpenStack and SDN.

Key words: SDN ; OpenStack

云计算(Cloud Computing)于2006年由google首次提出,经过近十年的发展技术日渐成熟,云计算[1]也越来越普及,云提供的弹性、动态的服务日益受人瞩目。它使用户能够通过网络按照自己的需求从一个共享的、可配置的资源池中获取计算、存储、网络等资源。

随着OpenStack[2]项目的出现,云平台的搭建也越来越简单。最初OpenStack项目由Nova,OSwift和Glance组成,网络部分由Nova提供Flat Network配置和VLAN进行隔离,这种简单的网络能力使得租户很难设立多级网络(Flat Networking模式),同时没有扩展性可言,因此并没有受到公众的重视。从OpenStack的Quantum[3]项目开始,OpenStack在接口设备(比如vNIC)间提供“网络连接即服务”。Quantum使得租户可以轻松建立虚拟网络,模块化的架构和标准的API可方便实现防火墙和ACL的Plugin。在大量涌现的Plugin中,和网络最相关的就是OpenFlow控制器RYU[4]的plugin,但是RYU开源的Plugin缺乏云计算最基本的特性:扩展性。

本文将为OpenStack的Juno版本设计一个更具扩展性的Neutron/ml2 plugin,同时利用SDN的集中支持并控制整个OpenFlow物理交换机网络。

1 相关技术

1.1 OpenStack

OpenStack是一个开源云操作系统,是Infrastructure as a Service (IaaS) 中的一员。从2010年首次发布以来,现已成为互联网中使用最为广泛的云堆栈之一。OpenStack利用虚拟化技术,使用接口API实现了跨服务器网络的虚拟机管理。通过该平台,用户可以分别以租户和管理员的身份进行登录,租户启动虚拟机实例进行操作,可以动态申请不同的计算资源、存储资源、网络资源;管理员管理用户访问网络规则和资源的分配。OpenStack 云平台是通过组件交互模式来提供云服务,各个组件可以任意分配到不同的物理节点,具有良好的灵活性与扩展性,如图1所示。

1.2 Neutron

Neutron[5]是OpenStack 项目中负责提供网络服务的组件。Neutron 的设计目标是实现“网络即服务”,在设计上遵循了基于“软件定义网络”实现网络虚拟化的原则,在实现上充分利用各种网络相关的技术。

Neutron负责虚拟化网络资源并进行管理,通过RestFull API以及 RPC service为上层提供服务,利用Plugin对网络资源进行虚拟化并管理,如图2所示。

Neutron负责管理以下实体

网络:隔离的二层网络域。可以是虚拟的网络或者逻辑的网络。同一个网络中的主机彼此在二层网络中可见。网络是最基础,子网以及端口都需要关联到网络。

子网:隔离的三层网络域。每个虚拟机器有一个IP,同一个子网的主机彼此在三层网络可见。一个子网可能会有一个网关、一组 DNS 和一个主机路由表。

端口:网络上虚拟、逻辑或交换端口。虚拟机挂载网卡到特定的端口上,通过该端口访问网络。

如图3所示,现行的Neutron Plugin把网络资源虚拟化为Computer节点以及Network节点。在OpenStack中,所有网络有关的逻辑管理均在Network节点中实现,例如DNS、DHCP以及路由等。Compute节点上只需要对所部属的虚拟机提供基本的网络功能支持,包括隔离不同租户的虚拟机和进行一些基本的安全策略管理(即Security Group)。

另外OpenStack网络允许创建和附加第三方插件,第三方插件可以实现适应不同的网络设备,使得OpenStack部署和架构更加的灵活。

1.3 软件定义网络(SDN)

SDN(Software Defined Network)[6]是把传统网络设备紧密耦合的网络架构分拆为应用、控制、数据转发3层分离的体系架构,其核心技术是通过实现网络设备的控制权和转发权的相互独立,从而灵活、方便的控制数据包的转发,提供了一种可编程的网络管理模式。

在软件定义网络中,控制器通过南向接口(OpenFlow[7]协议)获取底层网络设备信息,进行统一部署、集中管理以及灵活控制,从而解决了分散网络设备的管理控制问题。同时,控制器提供了可编程扩展的北向接口,按不同需求设计的功能应用软件可以直接运行在控制器上,利用控制器对全局网络设备进行统一管理。

2 基于SDN全物理交换机部署OpenStack

传统化网络中存在品牌各异的交换机、终端、路由器、以及其他设备,在这些网络设备中使用着大量封闭、专有的内部接口以及协议。所以对现有传统化网络进行有效的统一管理十分困难。OpenStack为了解决现有传统化网络统一管理的问题,提出了虚拟化网络资源管理方法。在现行的OpenStack网络模块Neutron网络管理主要分为Vlan[8]、Gre[9]、Vxlan[10]三种模式。这三种模式共同点在于首先在底层对网络资源进行虚拟化,把所有网络资源虚拟化为虚拟网络节点;通过对虚拟节点的统一管理配置来实现对网络资源的统一管理。虚拟节点之间通过虚拟网桥相互通信,在网桥之间加入安全策略管理层,以进行访问控制;虚拟节点之间通过统一的DHCP服务划分子网,实现不同租户之间的隔离。

软件定义网络技术的发展实现了对网络资源的有效的统一管理,使得我们可以通过软件来控制网络访问,还可以进行全局流量管理、访问控制等高级网络管理功能。本文提出一种基于SDN的全物理交换机部属OpenStack的方法,使得OpenStack可以利用SDN来统一管理其网络资源。

3 基于SDN的OpenStack网络模块

SDN控制前台:SDN的全局控制模块,包含路由模块、DHCP模块、安全模块。

路由模块:根据交换机的拓扑结构信息以及路由选择策略计算得到任意两个所述交换机之间的路由路径信息,根据路由路径信息生成相应的OpenFlow流表。可以通过配置相应的三层网关,实现三层网络通信。

DHCP模块:动态IP分配模块,根据相应策略划分子网,实现租户的网络隔离;并负责IP池的创建、管理、回收等工作。

安全模块:OpenStack的网络安全策略共功能的实现,可以在该模块部属防火墙,实现内网、外网之间的访问控制,该模块可以根据相应的安全策略生成特定的OpenFlow流表,并下发到对应OpenFlow交换机。

SDN控制器后台:实现了对OpenFlow物理交换机的管理工作。利用OpenFlow协议控制物理交换机。实时统计网络的流量以及网络拓扑信息,负责下发流表到对应交换机。

OpenFlow交换机层:物理层交换机,根据SDN控制器下发的流表转发数据包。

OpenStack平台:OpenStack无需关心底层网络实现,所有网络管理工作交付SDN模块网络模块来进行统一管理。

OpenStack虚拟机之间不再通过网桥进行通讯,而是通过物理交换机直接建立一个点对点的连接。OpenStack平台不再参与后台网络的构建,把网络构建,连通与维护全部交于上述的SDN控制器,SDN控制器会自动识别拓扑、计算路由路径、下发流表。

4 基于SDN的全物理交换机部署OpenStack

步骤1:启动OpenStack,通常的模式是OpenStack控制节点、网络节点和计算节点分布在不同的服务器上,不同的节点之间用管理网段相互通讯。

步骤2:SDN控制器以OpenStack Neutron插件的方式实现启动,在ml2_conf中配置本项目的控制器,然后启动SDN控制器后台。

步骤3:接入OpenFlow物理交换机,物理交换机之间使用网线互连,物理交换机和OpenStack的网络节点服务器使用网线互连,在OpenStack网络节点服务器相应增加通往物理交换机的port。

步骤3:SDN控制器识别完整个网络拓扑,包括所有的物理交换机,OpenStack虚拟交换机以及实例,连接到物理交换机的主机信息,开始计算路径,下发流表;根据相应的安全策略生成相应的流表并下发。

步骤4:SDN控制器启动一个监控线程监控拓扑的变化,当新增、删除交换机或者新增、删除改变交换机的某个端口时,线程会重新通知控制器计算受影响的节点的路径,重新下发流表。网络拓扑的变化仅会影响通过路该交换机端口的路径,所以只是流表局部下发,并不会影响拓扑中通过其余正常交换机进行通信的主机。

步骤4:至此OpenStack网络已经完成对整个物理交换机层的管控,可以轻松地在各网段配置实例、网络,通过SDN控制器前台配置的三层网关也可以跨网段通信,也可以通过网络节点的对外接口实现外网通信需求。实现了OpenStack网络模块现有的所有功能。

相比现行OpenStack网络模块实现本文提出的方法具有以下优势:

OpenStack平台管理的网络为全OpenFlow物理交换机。区别于现在通常的实现方式为全虚拟交换机,虚拟网关的模式。

重新定义了OpenStack平台内各交换机之间的连接方式:交换机之间不再使用二层网络通信的方式,而是通过流表控制的方式通信。物理交换机和OpenStack虚拟交换机之间通过点对点方式进行连接。

OpenStack平台管理方式保持不变,本文提出的网络管理模块对于OpenStack平台保持透明,OpenStack完全可以不关心后台网络;控制器以插件的方式运行,负责整个交换机网络的路径计算,流表下发,使整个网络实现互通。

使得OpenStack平台的网络管理更加方便,可以更加便捷的配置网络的高级管理功能比如QoS、流量管理功能等。

5 结束语

本文提出了一种基于SDN控制器,对于全物理OpenFlow交换机网络的OpenStack解决方案。该解决方案可以实现OpenStack平台对于全物理OpenFlow交换机网络的管控。OpenFlow交换机层对于OpenStack层透明,OpenStack平台管理模式不变,也不关心下层交换机之间是如何运作的。SDN控制器负责下发流表完成网络连通。基于SDN全物理交换机部署OpenStack可充分体现SDN的优势,利用SDN实现了对OpenStack网络资源的高效统一的管理。

参考文献:

[1] Mell P, Grance T. The NIST definition of cloud computing[Z]. 2011.

[2] Stack O. Open source software for building private and public cloud[Z]. 2013.

[3] Quantum N. OpenFlow Plugin[EB/OL].http://wiki.openstack.org.Quantum-NEC-OpenFlow-Plugin.

[4] Online-Document, Ryu Network[EB/OL].http://osrg.github.io/ryu/resources.html#books.

[5] Denton J. Learning OpenStack Networking (Neutron)[M]. Packt Publishing Ltd, 2014.

[6] Fundation O N. Software-defined networking: The new norm for networks[M]. ONF White Paper, 2012.

[7] McKeown N. OpenFlow: enabling innovation in campus networks[J]. ACM SIGCOMM Computer Communication Review, 2008, 38(2): 69-74.

[8] 应旭锋. 浅谈 VLAN 技术在局域网内的实施和应用[J]. 中国医学教育技术, 2010(1): 47-48.

[9] 唐琴. GRE 隧道技术在大型企业网中的应用[J]. 电脑知识与技术: 学术交流, 2008(8): 800-802.

[10] 缪仕福. VXLAN 网络技术研究[J]. 科技资讯, 2015(4): 9.

猜你喜欢
流表网络资源交换机
基于时序与集合的SDN流表更新策略
基于缓存策略的OpenFlow流表存储优化方案研究
修复损坏的交换机NOS
简析yangUI流表控制
软件定义网络中一种两步式多级流表构建算法
使用链路聚合进行交换机互联
网络资源在高中班级管理中的运用
谈网络资源在大学计算机教学中的应用
PoE交换机雷击浪涌防护设计
罗克韦尔自动化交换机Allen-Bradley ArmorStratix 5700