关键字 |
软件定义的网络、架构、OpenFlow、虚拟化、安全性。 |
介绍 |
软件定义网络是一种不断发展的技术,它将网络智能(即控制)与转发网络设备(如交换机、路由器、集线器等)分离开来。它将数据平面和控制平面分开。它通过单个高级程序以编程方式控制数据流。软件定义网络于2008年由加州大学伯克利分校和斯坦福大学的研究提出。一些社区,如Open Networking Foundation、OpenFlow等,都是为了推广SDN而建立的。SDN架构使网络控制成为直接可编程。它使用虚拟化使底层物理基础设施对应用程序和网络服务完全隐藏。高层控制程序使用OpenFlow等安全传输协议从控制平面传输到数据平面。OpenFlow是目前应用最广泛的SDN-Controller协议,用于安全控制流[1]。SDN的主要特点之一是将网络集中起来,提高了网络的灵活性和利用率。 Using SDN, we can easily infer the behaviour of our network. Abstraction in SDN keeps the complexity of data-paths hidden from operators that’s why SDN is easy to operate and maintain [2]. SDN provides reusability as single high level program can be implemented for multiple data-transfers. SDN provides rapid innovation by eliminating the dependence of hardware embedded services. SDN uses multiple controllers to provide reliability and handle the traffic-load in the network. Due to all these beneficial factors, several cloud service providers and big data centres are looking forward to SDN. |
第二部分,我们回顾了SDN的历史,找出了它的概念从何而来。在第3部分,我们讨论了SDN架构和不同的平面。在4中,我们回顾了SDN的某些特征及其对当前传统技术的主导地位。5,讨论了SDN的安全性,以及不同的研究为SDN的安全提供的机制。最后,在6中,我们总结了本文,并讨论了SDN安全的未来工作。 |
背景与出现 |
SDN出现于2008年,但它起源于20世纪80年代末的早期技术。SDN是对网络控制点(Network Control Point)、主动网络(Active Networks)、路由控制平台(Routing Control Platform)等技术的改进而产生的。最初在分布式网络中,网络管理员发现网络配置可能有很多错误和不可预测。为了克服这个问题,人们使用了低级配置文件,并试图推断网络行为。但这是非常困难和耗时的。因此,他们在2004年开发了一个逻辑集中的控制平台,称为rcp -路由控制平台[3]。RCP使用现有协议作为控制通道,代表路由器计算路由。然后将这些路由通过现有协议(如域间bgp -边界网关协议)传输到转发设备,如图1所示。 |
但是,RCP的问题是控制的转移受到现有协议支持[4]的限制。因此在2005年,对其进行了进一步的修改,将RCP推广为4D架构,即数据、发现、传播和控制,如图2所示。数据部分只包含转发设备;发现部分检查数据传输资源的可用性;传播部分发现数据传输所遵循的网络拓扑结构;决策部分为转移过程中的控制提供了逻辑。 |
这种体系结构允许更好、更健壮的控制。但它非常复杂,响应时间也非常长。由于它的低效率,在2007年建立了一个新的架构,被称为“乙烷”。在乙烷中,定制硬件与域控制器一起使用。域控制器根据网络访问控制策略[5]计算流表项。然后将这些条目转移到定制的硬件设备。乙烷结构如图3所示。现在,乙烷的问题是它需要自定义开关作为其工作的转发元素。因此,实现全新硬件的成本非常高。它不提供与现有硬件的向后兼容性。 Finally people were looking forward to develop an architecture which could be able to provide backward compatibility; also could be able to implement the whole procedure and policies with centralized controller. In 2008, OpenFlow provided such architecture. OpenFlow provided a secure interface between controller and networking devices. This interface is compatible with both i.e. new policies of SDN controller and existing switch hardware’s flow-rule updating. OpenFlow is shown in Fig.4. |
使用OpenFlow的体系结构被认为是迄今为止最合适的体系结构,因为它提供了从控制平面到数据平面[6]的安全控制传输。它根据高级控制程序的逻辑更新转发元素的流表项。2009年,SDN一词被创造出来并被广泛接受。OpenFlow只是SDN的一个实例,它提供了使用类似API的进程来配置交换机的协议。而SDN体系结构为高级自动化控制提供了可编程接口。 |
SDN架构 |
SDN架构包含应用、控制和数据三个独立的平面。这些不同的平面由不同的CPI(控制平面接口)连接。控制平面位于应用平面和数据平面之间。它通过这些CPI的[7]与它们进行通信。SDN的架构如图5所示,不同平面通过南向接口和北向接口连接。 |
数据平面: |
在SDN的数据平面中,呈现不同的物理网络资源。这些可以是路由器、交换机、集线器、网桥等。数据平面包含提供网络资源视图的Agent,称为资源信息模型。数据平面通过D-CPI (Data- control Plane interface,数据控制平面接口)连接到SDN控制平面,也称为南向接口。数据平面通过D-CPI接收来自SDN控制器的控制信号。根据这些信号,网络设备在网络中进行包转发。数据平面的协调器与开放支持系统(Open Support System,开放支持系统)进行动态管理,处理可用的网络资源。 |
控制平面: |
SDN的控制平面是SDN体系结构的核心部分。它包含SDN控制器,提供集中控制。所有关于数据包转发、网络交换决策和网络路由的编程逻辑都应该在SDN-Controller中动态编写。然后通过D-CPI或南向接口(如OpenFlow)将这个高级程序传输到数据平面。在分布式环境下,控制平面可以包含多个同步工作的sdn controller。控制平面agent通过A-CPI(应用控制平面接口)[4]将SDN控制逻辑连接到应用平面。A-CPI为应用程序和其他sdn - controller提供网络中可用网络资源的虚拟视图。控制平面中的协调器与数据平面中的协调器具有类似的管理功能。 |
应用平面: |
SDN的应用平面包括安全系统、IDS、监控服务等应用,以及需要接入网络设备的一般应用。应用程序通过A-CPI连接到SDN控制器代理,并查看控制器代理提供的可用资源的虚拟视图。然后应用程序要求SDN控制器对这些资源进行服务以传输数据。SDN控制器通过程序确定有效的流量逻辑,并将控制发送到数据平面进行实际数据传输并确认应用。应用程序平面的协调器还管理分配给不同应用程序的资源。 |
除了SDN架构的数据与控制分离的范式外,SDN还克服了传统组网[8]的不同失败,这些失败包括: |
•简单的技术能力无法处理现代大型数据中心 |
•与数据中心的其他设备相比,网络设备的成本较高。 |
•与创新速度不匹配。 |
SDN引入了服务器虚拟化,允许数据中心达到传统网络技术无法持续的规模。 |
SDN特性 |
SDN具有几个有助于增强网络和提高网络效率的特性,这使它成为网络和大数据中心有前途的未来技术。[9]的一些突出特性可以讨论为: |
集中控制 |
网络智能在逻辑上集中在SDN控制平面,使我们对网络有一个全局的视野,整个网络看起来就像一个逻辑上的应用交换机。使用SDN,网络管理员从一个逻辑点获得对整个网络的独立于供应商的控制,这极大地简化了网络操作和设计。集中控制在分布式组网场景中非常有用。 |
抽象和虚拟化: |
SDN在SDN架构中使用的分层方法的每一层上都采用了抽象转发,隐藏了网络中流量的复杂性。SDN通过提供网络可用资源的逻辑视图,抽象实际的流量控制逻辑,将网络的复杂性从应用程序中隐藏。路由器可以被划分成不同的虚拟网络,在这些网络上实现不同的程序逻辑。 |
可编程性: |
SDN让我们可以自由地编写即时程序逻辑,动态地控制数据流。在传统网络中,交换机、路由器等网络设备会自行计算流量的最佳路径。因此,由于网络设备只进行数据包转发,从而最大限度地减少了网络设备内部路径计算的延迟,从而提高了数据流的速度。 |
快速创新: |
SDN有助于新业务部署的快速创新。在目前的传统网络设备中,服务已经嵌入到硬件中。这些设备自行执行路径计算等操作。因此,新应用程序的部署仅限于嵌入在硬件中的服务。而在SDN中,由于网络设备只进行报文转发,控制平面和数据平面的分离可以让我们快速部署无限的业务。 |
开放: |
SDN提供了开放标准,因此一些开源社区,如OpenFlow、open Networking Foundation、ON。实验室等正致力于SDN的发展。SDN包含开放的编程API,任何网络管理员都可以根据自己的基础设施需求编写流量控制逻辑。这种开放性允许新的网络技术的灵活性和更快的增长。 |
SDN的安全性 |
确保SDN的安全是非常关键的领域,必须注意;因为SDN提供全局视图和可编程性来控制。与现有的传统网络相比,它还增强了我们SDN网络可能遭受的攻击威胁。这引起了我们对确保突出的SDN安全机制的关注。SDN集中控制包括某些好处,也包括我们网络上潜在的拒绝服务(DOS)攻击威胁的增加。攻击者只专注于攻击或发送虚假的多个服务需求请求的中心部分,这可能会导致流表项溢出或满,并导致拒绝服务。 |
为了应对这种威胁,SDN中定义了一些认证和信任规则。2006年,网络企业安全体系结构SANE (Secure architecture for Networked Enterprise)问世,该体系结构负责对主机进行身份验证。但它的实施需要对网络环境和基础设施进行极端的改变,这并不适用于所有组织。因此,提出了另一种不需要如此大的变化的架构,称为乙烷,具有可验证控制器。OpenFlow目前提供安全的网络控制传输。但这些方法仍存在一定的缺陷,仍面临一定的安全威胁,如流量泛滥、南向接口恶意注入数据等。入侵者的恶意编程逻辑实现也会造成更大的威胁,从而调用对编程的验证需求。所有这些方面都是集中研究软件定义网络安全的重要要求。 |
目前的安全研究在SDN的不同层引入了大量的虚拟化场景,使得攻击者无法了解我们的实际物理网络。同时,SDN对内部数据流进行了抽象,减少了入侵者[10]带来的恶意网络注入和流量泛滥。每一层的抽象都会造成重要的影响,并为攻击者提供难以突破的场景。在之前的SDN安全研究中提供的一些安全机制有: |
•[11]中提出的调查显示了与SDN架构中定义的SDN分层框架相关的各种类型的安全威胁。这定义了不同的安全攻击,如数据泄漏,即欺骗,未经授权的访问,数据修改,拒绝服务,恶意应用程序等,可能在SDN框架的不同部分。 |
•SDN Scanner[12]利用网络报头字段变化扫描,扫描网络作为变化的报头字段,并记录每个数据包的响应时间。它比较响应时间,然后使用统计测试。利用SDN的指纹结果,可以以85.7%的准确率对SDN进行资源消耗攻击。因此,需要设计新的防御解决方案来克服这种威胁。 |
•AvantGuard[13]提出了新的架构作为数据平面扩展,以保护我们的网络免受控制平面饱和攻击,从而中断网络操作。avantguard引入了连接迁移,在数据平面现有的统计数据收集服务上执行触发器。它提供了对数据平面内不断变化的流动态的检测和响应。通过连接迁移,数据平面可以保护控制平面不受这种饱和攻击的影响。AvantGuard提高了对威胁的可伸缩性和响应能力,连接延迟开销为1%。 |
AMQ[14]提出了一种在数据中心检测和隔离不安全网络设备的技术,以免它们对网络产生负面影响。在发现潜在威胁时,AMQ会自动识别问题并下载解决问题所需的补丁。它自动允许设备重新加入网络的决议。在AMQ中,控制器上托管的两个主要安全网络服务模块(NSM)。首先,Bot-Hunter监控网络并实时检测恶意软件感染的主机。其次,威胁响应器NSM指示控制器启动隔离程序以隔离威胁。当主机被隔离时,Web代理通知器将被激活,以通知受感染主机上的用户安全性已受到损害。它只能用于中速链接。 |
•OpenWatch[15]提出了一种在待测流量聚合中执行自适应缩放的方法。它为异常检测器提供了更加灵活和交互式的界面,可以像端口扫描一样检测异常。该方法利用SDN网络的集中式视图,提供了一种在多个交换机之间智能分配流量计数任务的算法,以降低单个交换机的开销。提出了一种基于线性预测控制计数函数时空聚集的自适应算法。 |
OpenFlow网络社区(包括其他一些组织)正在每一层实现不同的抽象和虚拟化规则,以增强SDN的安全性。使用已有的协议,并设计新的协议,如实现中间箱和动态威胁怀疑监控系统。中间箱转换,检查,过滤和操作流量,包括防火墙,nat网络地址转换器等。在这些安全机制的基础上,通过在SDN集中控制下实施入侵检测系统(IDS)和流量分析、数据流审计等检测手段,进一步探索SDN网络的安全威胁。 |
结论及未来工作 |
平面分离和SDN的各种特性使其成为非常高效的技术,这将是网络的未来。SDN的重要性在于它的特点是通过编程控制,包括集中控制,提供灵活性,有助于处理整个网络。在分布式SDN网络同步工作的情况下,它变得更加有利。此外,它还有助于控制、提供可伸缩性和管理大型数据中心的数据。资源的抽象和虚拟化有助于网络的安全和隐藏复杂性。还有不同的领域需要注意,比如SDN控制平面的安全,因为SDN的整个控制都集中在控制平面;因此,控制平面的安全是非常重要的,防止多次攻击是主要关注的领域。此外,SDN系统的开放性允许人们编写控制程序,因此必须设计一些协议或有效地使用现有协议,在实施之前检查编程逻辑的正确性,即检查身份验证和授权,以防止网络内部数据碰撞导致拥塞。南向接口的安全性需要特别注意,因为控制通过该接口进行传输。为防止DOS攻击而设计的程序。 Different anomalies in fuzzy logic need to handle which are causing obstructions to wide deployment of SDN. |
|
数字一览 |
|
|
参考文献 |
- S. A. C. Risdianto, E. Mulyana,“SDN控制和转发平面的实现和分析”,IEEE电信系统、服务和应用(TSSA)第七届国际会议,pp。227 - 231, 2012。
- Z. Bozakov, P. Papadimitriou,“迈向可扩展的软件定义网络虚拟化平台”,ieee网络运营与管理研讨会(NOMS), 2014年5月,第1 - 8页。
- N. Feamster, H. Balakrishnan, J. Rexford, A. Shaikh和J. van der Merwe,“从路由器中分离路由的案例”,ACM Proc SIGCOMM研讨会关于网络架构的未来方向,第5-12页,2004,。
- M. Caesar, D. Caldwell, N. Feamster, J. Rexford, a . Shaikh, J. van der Merwe,“路由控制平台的设计与实现”,NSDI ACM proc, Vol. 2, pp 15- 28,2005。
- M. Casado, M. J. Freedman, J. Pettit, J. Luo, N. McKeown, S. Shenker。“乙烷:控制企业”,计算机通信应用、技术、体系结构和协议SIGCOMM会议,日本京都,pp 1-12, 2007。
- N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Petrson, J. Rexford, S. Shenker,和J. Turner,“OpenFlow:在校园网络中实现创新”,ACM SIGCOMM计算机通信,第38卷,第2期,第69-74页,2008。
- M. Betts, S. Fratini, N. Davis, R. Dolin等,“SDN架构”。Open Networking Foundation ONF SDN ARCH, 2014年6月第1期。
- P. Goransson, C. Black,“为什么SDN”,软件定义网络-综合方法,第21-35页,2014。
- 丁勇,J. Crowcroft, S. Tarkoma和H. Flinck,“用于无线移动网络安全增强的软件定义网络”,计算机网络,(Elsevier)第66卷,第94 -101页,2014。
- M. H. Razaa, S. C. Sivakumar, A. Nafarieha, B. Robertson,“软件定义网络(SDN)实施策略的比较”,Elsevier Proc.第二届可生存和鲁棒光网络国际研讨会(IWSRON)。Vol. 32, pp. 1050-1055, 2014。
- S. Scott-Hayward, G. O 'Callaghan和S. Sezer,“SDN安全:调查”,IEEE SDN 4fns Proc., Trento意大利,第1 - 7页,2013。
- S. Shi, G. Gun,“攻击软件定义网络:第一次可行性研究”,HotSDN,中国香港,第165-166页,2013。
- S. Shin, V. Yegneswaran, P. Porras, G. Gu,“先锋:软件定义网络中的可伸缩和警惕的交换机流管理”,CCS ACM Proc.,柏林,德国,第413-424页,2013。
- M. McBride, M. Cohn, S. Deshpande, M. Kaushik, M. Mathews, S. Nathan,“数据中心的SDN安全考虑因素”,开放网络基金会- ONF解决方案简报,2013。
- 张勇,“一种基于自适应流量计数的SDN异常检测方法”,《计算机科学与工程学报》,2013年12月,页25-30。
|