APP下载

云计算环境中软件定义网络研究应用

2020-07-22宋焱宏

电脑知识与技术 2020年12期
关键词:软件定义网络云计算架构

宋焱宏

摘要:云计算可以根据实际需求提供灵活多样的服务,正成为Ⅱ模式的应用趋势,其中大部分采用软件定义网络(SDN)作为其网络架构,控制平面和数据平面相互分离,以简化网络管理、保证网络隔离。该文基于SDN技术的发展现状,介绍了OpenFlow交换、控制器和SDN技术的关键组成和研究进展,及其在网络中的应用。最后,分析了云计算环境中SDN技术存在的问题,并提出相关解决建议。

关键词:云计算;软件定义网络(SDN);OpenFlow;架构

中图分类号:TP319 文献标识码:A

文章编号:1009-3044(2020)12-0045-02

1简介

云计算可以提供按需、弹性和可访问的计算服务,越来越多的以企事业单位为代表的用户开始接受这一范式的转变,将其数据库和应用转移到采用存储虚拟化、计算虚拟化和网络虚拟化技术的云上。存储和计算虚拟化已发展多年,但网络虚拟化一直是一个挑战,有很多不同的实现方案,如虚拟局域网(VLAN)、虚拟专用网(VPN)、虚拟可扩展局域网(VXLAN)等,这也促使软件定义网络(SDN)的研究走到了最前沿。在云计算促进计算和存储资源管理的同时,SDN及其支持技术Open-Flow提出了解决阻碍当今互联网发展的另一个难题,如复杂的网络管理和不安全的网络隔离。除了SDN/OpenFlow已经被提出作为下一代互联网架构的候选之外,微软、谷歌、阿里巴巴、腾讯等许多世界知名企业已经在其内部数据中心采用了SDN/OpenFlow。云计算和SDN/OpenFlow虚拟化网络携手提供企业IT服务的时代即将来临。

云服务正处于爆炸式增长中,企业级用户也正将数据中心聚合起来,以便利用虚拟化技术带来的可预测性、连续性和高服务质量。同时,网络高效节能性和安全稳定性也越来越重要。网络运营商、服务和产品提供商需要新的网络解决方案,以有效应对当前不断变化的网络环境和日益增长的需求。软件定义网络作为一种有效满足上述需求的网络技术,能够支持未来网络功能和智能应用的动态特性,同时也能够简化硬件、软件并管理降低运营成本。本文基于软件定义网络研究的应用,分析云计算环境中,软件定义网络在性能、可扩展性、安全性和互操作性方面面临的挑战,并提出相关解决建议。

2软件定义网络架构

与OSI模型中格式良好的数据平面抽象不同,传统网络体系结构中的互联网控制平面是由各种复杂的网络功能协议组成的。因此,不难想象,随着添加更多的功能,以分布式方式管理这些协议变得效率低下且容易出错。SDN是一种网络架构,它将网络交换机的控制平面和数据平面分离,并将控制平面移动到一个称为网络控制器的集中应用程序中。网络控制器通过OpenFlow等独立于供应商的接口来管理整个网络,Open-Flow定义了数据平面中的低级包转发行为。然后,开发人员可以从更高的层次对网络进行编程,而不必考虑物理设备中数据包处理和转发的较低层次细节。

软件定义网络(SDN)架构如图1所示,其组成模块主要包括数据平面、控制平面和网络应用程序等。在SDN分离控制平面和数据转发平面的原理驱动下,SDN的使能技术OpenFlow规范了两个平面之间的信息交换。OpenFlow体系架构如图2所示,由OpenFlow控制器、OpenFlow开关和OpenFlow协议组成。

Openflow交换机:在Openflow架构中,转发设备或Openflow交换机包含一个或多个流表和一个抽象层,该抽象层通过Openflow协议与控制器安全通信。流程表由流程条目组成,每个条目决定如何处理和转发属于流的数据包。流条目通常包括:(1)匹配字段,用于匹配传人的数据包,匹配字段可以包含在数据包头、入口端口等中找到的信息;(2)只要发生匹配就应用的操作,指示如何处理匹配的数据包;以及(3)计数器,用于收集特定数据流的统计信息,按接收数据包个数、字节数和流持续时间搜索。当数据包到达OpenFlow交换机时,交换机选择最高优先级匹配规则,更新流量计数器,并执行指定的操作。交换机还生成事件,例如加入网络时的“加入”事件,或链接上下时的“端口更改”事件。

Openflow控制器:Openflow网络有一个集中编程模型,其中一个(或几个)软件控制器管理底层交换机。控制器在交换机中安装规则,读取交换机收集的流量统计信息,以及对网络事件的响应。控制器应用程序被定义为每个事件(如数据包到达、规则超时和交换机连接)的处理程序,这些事件可以安装新规则或发出新的流量统计请求。控制器应用程序的一个常见习惯用法是通过在数据平面中安装直接处理后续数据包的规则来响应数据包到达。将数据包发送到控制器会带来开销和延迟,因此大多数应用程序都会尽量减少必须发送到控制器的通信量。在本文中,我们使用POX控制器作为虚拟网络的核心对象,这是NOX的最新版本。大多数OpenFlow应用程序都是在NOX(POX)控制器平台上编写的,该平台为用Python或C++编写的应用程序提供OpenFlow API。这些控制器应用程序是可以执行任意计算并保持任意状态的通用程序。

Openflow协议:控制器和交换机之间的通信通过Openflow协议进行,Openflow协议定义了一组消息,这些消息可以通过安全通道在这些实体之间交换。使用OpenFlow协议,远程控制器可以从交换机的流表中添加、更新或删除流条目。这种情况可以是被动的(响应数据包到达)或主动的。

3軟件定义网络应用

SDN能提高网络内可编程性,并支持未来网络功能的动态特性。随着带宽需求的增加,通过SDN的更新或升级,支持多个100GE信道附加功能和处理能力将实现无缝对接。SDN实现灵活、集中控制以及节点之间的开放接口,提升了网络效率与适应性。软件定义网络运用于云计算环境中,可以提高云计算数据中心的管理效率,并且可以给云计算用户提供网络虚拟化、虚拟防火墙等服务。

由于传统网络设备(交换机、路由器)的固件是由设备制造商锁定和控制,所以SDN希望将网络控制与物理网络拓扑分离,从而摆脱硬件对网络架构的限制。这样企业便可以像升级、安装软件一样对网络架构进行修改,满足企业对整个网站架构进行调整、扩容或升级的需求。而底层的交换机、路由器等硬件则无须替换,节省大量成本的同时,网络架构迭代周期将大大缩短。在传统云计算平台中,例如OpenStackEssex以及之前的版本,云计算管理器统一对底层网络设备进行虚拟化,实现对各类网络资源的管理,例如用户的虚拟网络创建等操作。这种架构带来的主要问题是,当用户数量大幅增长时,需要维护的网络信息也急剧增长,甚至可能以几何级增长,致使维护工作变得更為复杂。以OpenStackFolsom及之后版本的云计算平台为例,SDN的应用实现了计算资源和网络资源的分别管理,前者由云计算管理器进行管理,后者完全交由SDN控制器进行管理。

然而,进入大数据时代以来,在云计算环境中,SDN的性能、可伸缩性、安全性和互操作性方面均面临一些挑战。当前的研究已致力于解决这些问题,为行业提供可行的解决方案。此外,混合可编程体系结构还可以用来解决SDN引入的性能和可扩展性问题,该模型的目标是优化网络中的流处理原始数据网络是由计算设备与数据和网络节点的组合构成的,用于在源和目标之间传输数据。通过虚拟化技术提供“X”即服务(Xaas)的能力增加了网络中的数据量。这为一种新的通信方法设定了一个基线,通过将计算推入网络设备来增加机器间的通信。未来网络将围绕这一进程,提供有效的通信和服务,其中网络、数据和计算将融合到一个服务架构中。对于一个特定的进程,数据将在启动应用程序之前请求其所需的计算、存储和连接。网络元素的位置可能是物理和虚拟分布的,但对最终用户来说是完全不透明的,用户只需观察所要求服务的交付质量。SDN将有助于实现未来通信的愿景,并为优化服务架构铺平道路。

4结束语

本文探讨了软件定义网络(SDN)在云计算中的应用。SDN有助于网络架构设计、管理和操作,增强网络的实用性和可靠性。但在选择SDN服务之前应该考虑包括网络虚拟化、大数据分析以及开放和可编程在内等因素。云计算和软件定义网络是紧密耦合的新技术,复杂的网络体系结构需要一个成熟的SDN。本文介绍了SDN的技术框架和层次结构,分析了在云计算环境中,SDN的性能、可伸缩性、安全性和互操作性方面面临的挑战,在总结SND应用现状的基础上,总结了SDN的发展趋势。SDN的发展会促进云计算服务商对现有网络进行升级改造,从而使两者的结合应用更为成熟稳定。

猜你喜欢

软件定义网络云计算架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
LSN DCI EVPN VxLAN组网架构研究及实现
业务功能链技术及其应用探析
针对大规模软件定义网络的子域划分及控制器部署方法
一种新的SDN架构下端到端网络主动测量机制
实验云:理论教学与实验教学深度融合的助推器
一种基于FPGA+ARM架构的μPMU实现