Software-Defined Networking:A comprehensive Survey

发表于2015年1月

阅读时间:2018.7.2 ~ 2018.7.11

0x00摘要

  • 传统的IP网络被广泛采用,但很复杂且难以管理。根据预定义的策略配置网络并重新配置以响应故障,负载和更改都很困难。
  • 当前的网络也是纵向合并的:控制和数据平面捆绑在一起。
  • 软件定义网络(SDN)通过打破纵向合并,将网络的控制逻辑与底层路由器和交换机分离,促进(逻辑)网络控制集中化和引入编程网络的能力。来改变这种状况。
  • 在网络策略的定义,它们在交换硬件中的实现以及流量转发之间引入的关注点分离是所需灵活性的关键:通过将网络控制问题分解为易处理的部分,SDN使得创建和引入更容易网络的新抽象,简化网络管理和促进网络演进。
  • 本文提出了一个关于SDN的综合调查。首先介绍SDN的动机,解释其主要概念以及它与传统网络的不同之处,它的根源以及与这种新颖范式相关的标准化活动。接下来,使用自下而上的分层方法介绍SDN基础架构的关键构建块。我们提供对硬件基础架构,南向和北向应用程序编程接口(API),网络虚拟化层,网络操作系统(SDN控制器),网络编程语言和网络应用程序的深入分析。我们还研究了跨层问题,例如调试和故障排除。为了预测这种新范式的未来发展,我们讨论了SDN正在进行的主要研究工作和挑战。特别是,我们致力于交换机和控制平台的设计,重点关注弹性,可扩展性,性能,安全性和可靠性等方面,以及运营商传输网络和云提供商的新机遇。最后但同样重要的是,我们分析了SDN作为软件定义环境的关键推动者的地位。

0x01介绍

  • 传统IP网络很复杂且难以管理:设备(配置、命令)特定+环境多变。
  • 在当前的IP网络中几乎不存在自动重新配置和响应机制。
  • 当前网络是纵向合并vertically integrated的。
  • 控制平面(决定如何处理网络流量)和数据平面(根据控制平面做出的决定转发流量)捆绑在网络设备中,降低了灵活性,阻碍了网络基础设施的创新和发展。
  • 软件定义网络(SDN)是一种新兴的网络,它通过将网络的控制逻辑(控制平面)从转发流量(数据平面)的底层路由器和交换机中脱离开来打破纵向合并。其次,随着控制和数据平面的分离,网络交换机变为简单的转发设备,控制逻辑在逻辑集中的控制器(或网络操作系统)中实现,简化了策略实施和网络(重新)配置和演进。
  • Fig1:SDN架构的简化视图:

 

  • 工业视角:SDN与openflow在过去几年去的巨大关注。
  • 最近的一些面向OpenFlow的调查提供了一个相对简化的三层堆栈,由高级网络服务,控制器和控制器/交换机接口组成。
  • Fig2:本文目录/框架

 

  • Section2与Section3通过解释上下文,介绍SDN的动机并解释这个新范例的主要概念以及它与传统网络的区别。Section4是本次调查的核心,使用自下而上的分层方法对SDN基础设施的构建模块进行了广泛而全面的分析。分层方法的选择基于以下事实:SDN允许考虑两个基本概念的联网,这两个概念在计算机科学的其他学科中很常见:关注点分离(利用抽象概念)和递归。Section5谈到正在进行的研究工作,挑战,未来工作和机遇的讨论,从而结束了本文。

0x02网络的现状

  • Fig3:计算机网络可以分为三个功能平面:数据,控制和管理平面。数据平面对应于网络设备,负责(有效地)转发数据。控制平面表示用于填充数据平面元素的转发表的协议。管理平面包括软件服务,例如基于简单网络管理协议(SNMP)的工具,用于远程监控和配置控制功能。网络策略在管理平面中定义,控制平面强制执行策略,数据平面通过相应的转发数据来执行。

 

  • 在传统的IP网络中,控制和数据平面紧密耦合,整个结构高度分散。这造成了一个非常复杂和相对静态的架构,也是传统网络僵化、管理和控制复杂的根本原因,也导致了这个产业的难以创新
  • 网络配置错误和相关错误在当今的网络中非常常见。单个配置错误的路由器能够在几个小时内损害整个互联网的正确运行。
  • 少数供应商提供专用硬件,操作系统和控制程序(网络应用程序)的专有解决方案。
  • 构建和维护网络基础设施的资本和运营成本非常高,投资周期长,这阻碍了创新和新功能和服务的增加(例如,访问控制,负载平衡,能效,流量工程)。
  • 尽管有助于路径功能,但中间件middleboxes(如防火墙,入侵检测系统和深度数据包检测引擎)的净效应增加了网络设计及其操作的复杂性。

0x03什么是软件定义网络

  • 此处将SDN定义为具有四个支柱的网络架构:

    1)控制和数据平面分离。

    2)转发决策是基于流的,而不是基于目的地的:流由作为匹配(过滤器)标准的一组分组字段值和一组动作(指令)定义。在SDN/OpenFlow上下文中,流是源和目标之间的数据包序列。

    3)控制逻辑被移动到外部实体,即所谓的SDN控制器或NOS。注:NOS是一个软件平台,运行在商用服务器技术上,提供必要的资源和抽象,以便于基于逻辑集中的抽象网络视图对转发设备进行编程。

    4)网络可通过在NOS之上运行的软件应用程序进行编程,该应用程序与底层数据平面设备交互。这是SDN的一个基本特征,被认为是其主要价值主张。

  • 控制逻辑集中的好处:首先,配置不易出错。其次,自动对网络状态的虚假变化做出反应。第三,简化了更复杂的网络功能、服务和应用的开发。
  • SDN可以由三个基本抽象定义:转发,分发和规范。
  • Fig4:SDN架构及其基本抽象。

 

  • 传统网络中,数据平面与控制平面耦合,导致新的网络功能通常通过昂贵的,专用的和难以配置的设备(也称为中间盒)引入,例如负载平衡器,入侵检测系统(IDS)和防火墙等。这些中间件需要战略性地放置在网络中,这使得以后更改网络拓扑,配置和功能变得更加困难。
  • SDN将控制平面与网络设备分离的优点:1)对这些应用程序进行编程变得更加容易。2)所有应用程序都可以利用相同的网络信息(全局网络视图)。3)这些应用程序可以从网络的任何部分采取措施(即重新配置转发设备)。因此,不需要设计关于新功能的位置的精确策略。4)不同应用程序的集成变得更加直接。

A.基本术语

  • 1.转发设备(FD):这些是基于硬件或软件的数据平面设备,执行一组基本操作。
  • 2.数据平面(DP):互连的转发设备。
  • 3.南向接口(SI):转发设备的指令集由南向API定义,南向API是南向接口的一部分。该协议规范了控制和数据平面元素的交互方式。
  • 4.控制平面(CP):“网络大脑”。转发设备由控制平面元件通过明确定义的SI实施例编程。所有控制逻辑都位于构成控制平面的应用程序和控制器中。
  • 5.北向接口(NI):NOS可以为应用程序开发人员提供API。此API表示北向接口,即用于开发应用程序的通用接口。
  • 6.管理平面(MP):管理平面是利用NI提供的功能实现网络控制和操作逻辑的应用程序集。这包括路由,防火墙,负载平衡器,监控等应用程序。本质上,管理应用程序定义策略,这些策略最终转换为编写转发设备行为的南向特定指令。

B.替代和扩大定义

  介绍了一系列备选的SDN定义,没有细看。

C.标准化活动

  介绍了SDN的标准化过程。可参考Table1:

 

D.SDN的历史

  • Table2:为了呈现历史视角,表2中总结了SDN之前SDN相关工作的不同实例,将其分为五类。该表的第二和第三列提到了过去的举措以及导致SDN定义的最新发展。

 

  • 数据平面可编程性具有悠久的历史。主动网络代表了基于这一概念构建新网络架构的早期尝试之一。主动网络背后的主要思想是每个节点都具有对数据包执行计算或修改数据包内容的能力。为此,有源网络提出了两种不同的方法:可编程开关和胶囊capsules。前者并不意味着现有数据包或单元格格式的变化。它假定交换设备支持下载程序,并提供有关如何处理数据包的特定指令。另一方面,第二种方法建议应该用微小的程序代替数据包,这些程序封装在传输帧中并沿着它们的路径在每个节点上执行。
  • ForCES,OpenFlow和POF代表了设计和部署可编程数据平面设备的最新方法。以与活动网络不同的方式,这些新提议主要依赖于修改转发设备以支持流表,流表可以通过简单操作(例如添加,删除或更新流规则)(即流上的条目)由远程实体动态配置表。
  • 关于分离数据和控制信令的最早举措可以追溯到20世纪80年代和90年代。NCP可能是第一次分离控制和数据平面信令的尝试。

0x04软件定义网络:自底向上

以下部分按照自下而上的方法介绍每个层。对于每一层,基于不同的技术和解决方案解释核心属性和概念。此外,还讨论了调试和故障排除技术和工具。

A.第一层:基础设施

  • 与传统网络类似,SDN基础设施由一组网络设备(交换机,路由器和中间件设备)组成。主要区别在于这些传统物理设备现在是简单的转发元件。
  • Fig6:(a)平面,(b)层和(c)系统设计架构中的软件定义网络。

 

  • 开放接口使得控制器实体能够动态地编程异构转发设备,这在传统网络中是困难的。
  • Fig7:支持OpenFlow的转发设备基于流表的流水线,其中流表的每个条目具有三个部分:1)匹配规则;2)对匹配的数据包执行的动作;3)保持匹配数据包统计的计数器。这种源自OpenFlow的高级简化模型是目前SDN数据平面设备中最普遍的设计。

 

  • 在OpenFlow设备内部,通过一系列流表的路径定义了如何处理数据包。
  • 规则的优先级遵循表的自然序列号和流表中的行顺序。可能的操作包括:1)将数据包转发到传出端口;2)将其封装并转发给控制器;3)放弃它;4)将其发送到正常的处理流水线;5)将其发送到下一个流表或特殊表,例如最新OpenFlow协议中引入的组或计量表。
  • 软件交换机正在成为数据中心和虚拟化网络基础设施最有前途的解决方案之一。
  • 致力于SDN的小型创业企业的数量up,这似乎意味着SDN正在崛起一个更具竞争力和开放性的网络市场。
  • 软件和硬件单独出售,最终用户可以自由加载其选择的操作系统。

B.第二层:南向接口

  • 在撰写本文时,OpenFlow是SDN中最广泛接受和部署的开放式南向标准。它提供了实现支持OpenFlow的转发设备以及数据和控制平面设备(例如,交换机和控制器)之间的通信信道的通用规范。
  • OpenFlow并不是SDN唯一可用的南向接口。如ForCES提出了一种更灵活的传统网络管理方法,而无需改变网络的当前架构,即无需逻辑上集中的外部控制器。控制和数据平面是分开的,但可以保存在同一网络元素中。但是,网络元件的控制部分可以使用第三方固件进行即时升级。
  • OVSDB是另一种南向API,旨在为OpenvSwitch提供高级管理功能。除了OpenFlow配置转发设备中流行为的功能外,OpenvSwitch还提供其他网络功能。是OpenFlowforOpenvSwitch的补充协议。
  • OpenFlow的首批直接竞争对手之一是POF。POF的主要目标之一是增强当前的SDN转发平面。OpenFlow交换机必须了解协议头,以提取与流表条目匹配的所需位。这种解析对数据平面设备来说是一个很大的负担;POF提出了一种通用流指令集(FIS),它使转发平面协议无视。转发元件本身不需要事先知道关于分组格式的任何信息。
  • 最近的南向接口提案是OpFlex。与OpenFlow(和ForCES类似)相反,OpFlex背后的一个想法是将管理网络的部分复杂性分配回转发设备,目的是提高可扩展性。
  • HAL并不完全是南向API,但密切相关。HAL是一种翻译器,它使诸如OpenFlow的南向API能够控制异构硬件设备。

C.第三层:网络管理程序

  • 虚拟化已经成为现代计算机中的一种综合技术。
  • 管理程序使不同的虚拟机能够共享相同的硬件资源。用户可以以相对较低的成本从共享的物理基础架构按需分配资源。
  • 可以从两个维度捕获主要网络要求:网络拓扑和地址空间。
  • 目前,单个物理拓扑很难支持应用和服务的不同需求。同样,地址空间在当前网络中很难改变。虚拟化工作负载必须在物理基础架构的相同地址中运行。因此,很难保持租户的原始网络配置,虚拟机无法迁移到任意位置,并且寻址方案是固定的并且难以更改。
  • 为了提供完整的虚拟化,网络应该为计算层提供类似的属性。网络基础设施应该能够支持任意网络拓扑和寻址方案。每个租户都应该能够同时配置计算节点和网络。
  • AutoSlice是另一种基于SDN的虚拟化提议。与FlowVisor不同,它侧重于虚拟SDN(vSDN)拓扑的部署和操作的自动化,并且由基板网络运营商进行最少的调解或仲裁。
  • FlowN类似于基于容器的虚拟化,即轻量级虚拟化方法。FlowN还主要用于解决云平台环境中的多租户问题。它旨在实现可扩展性,并允许使用独特的共享控制器平台来管理云环境中的多个域。每个租户都可以完全控制其虚拟网络,并可以在控制器平台上自由部署任何网络抽象和应用程序。
  • SDN管理程序组件依据不同的目标集设计得到。其主要目标是允许使用不同编程语言开发或为各种控制平台构思的应用程序的协作(顺序或并行)执行。因此,除了网络管理程序的典型功能之外,它还提供了互操作性和可移植性。
  • 现有的网络技术和迁移策略大多无法满足租户和服务提供商的要求。多租户环境应该锚定在网络管理程序中,该管理程序能够从租户中抽象出底层转发设备和物理网络拓扑。此外,每个租户都应该能够独立控制抽象并管理自己的虚拟网络,并与其他租户隔离。
  • 随着市场对网络虚拟化的需求以及最近对SDN的研究显示出作为支持技术的前景,基于SDN概念的不同商业虚拟化平台已经开始出现。
  • 总而言之,目前已经有一些网络管理程序提议利用了SDN的进步。但是,仍有几个问题需要解决。其中包括虚拟到物理映射技术的改进,应该在逻辑层面公开的详细程度的定义,以及对嵌套虚拟化的支持。

D.第四层:网络操作系统/控制器

  • 到目前为止,网络使用较低级别的设备专用指令集和大多数封闭的专有NOS(例如,CiscoIOS和JuniperJunOS)进行管理和配置。
  • SDN承诺通过NOS提供的逻辑集中控制来促进网络管理并减轻解决网络问题的负担。NOS的关键价值在于为开发人员提供抽象,基本服务和通用API。作为网络状态和网络拓扑信息,设备发现和网络配置分布的通用功能可以作为NOS的服务提供。使用NOS来定义网络策略,开发人员不再需要关心路由元素之间数据分布的低级细节。通过降低创建新网络协议和网络应用程序的固有复杂性,这样的系统可以创建一个能够以更快的速度促进创新的新环境。
  • NOS(或控制器)是SDN架构中的关键元素,因为它是控制逻辑(应用)基于网络运营商定义的策略生成网络配置的关键支持部分。
  • Table5:控制平台的体系结构和设计元素

 

  • 架构和设计轴:有一套非常多样化的控制器和控制平台,具有不同的设计和架构选择。可以基于许多方面对现有控制器进行分类。从架构的角度来看,最相关的一个是集中式还是分布式。这是SDN控制平台的关键设计轴之一,因此我们接下来讨论这个方面。
  • 集中与分布式:集中控制器是管理网络的所有转发设备的单个实体。与集中式设计相反,可以扩展分布式NOS以满足从小型到大型网络可能的任何环境的要求。
  • 分布式控制器的另一个共同特性是容错。当一个节点发生故障时,另一个邻居节点应该接管故障节点的职责和设备。到目前为止,尽管一些控制器可以容忍崩溃失败,但它们不能容忍任意故障,这意味着任何具有异常行为的节点都不会被可能性能良好的节点所取代。
  • 单个控制器可能足以管理小型网络,但它代表单点故障。类似地,独立控制器可以分布在整个网络中,每个控制器管理一个网段,减少单个控制器故障的影响。
  • 解剖SDN控制器平台:为了提供更好的架构概述和理解NOS的设计,Table8总结了SDN控制器和控制平台的一些最相关的架构和设计属性。我们专注于选择生产级别,文档齐全的控制器和控制平台的元素,服务和接口。表中的每一行代表我们认为在模块化和可扩展控制平台中重要的组件。

 

  • 在大多数现有控制平台中至少有三个相对明确定义的层:1)应用程序,编排和服务;2)核心控制器功能;3)南向通信的要素。上层的连接基于北向接口,如RESTAPI和编程语言,如FML,Frenetic和NetCore。在控制平台的较低级别部分,南向API和协议插件连接转发元素。控制器平台的核心可以表征为其基本网络服务功能和各种接口的组合。
  • 核心控制器功能:基本网络服务功能是我们认为所有控制器应提供的基本功能。
  • 诸如拓扑,统计,通知和设备管理之类的功能以及最短路径转发和安全机制是网络应用可用于构建其逻辑的基本网络控制功能。
  • 南向:在较低级别的控制平台上,南向API可以看作是一层设备驱动程序。它们为上层提供通用接口,同时允许控制平台使用不同的南向API(例如,OpenFlow,OVSDB和ForCES)和协议插件来管理现有或新的物理或虚拟设备(例如,SNMP,BGP)和NetConf)。
  • OpenDaylight超越了提供服务层抽象(SLA),允许多个南向API和协议在控制平台中共存。
  • OpenDaylight是为数不多的控制平台之一,旨在支持在单一控制平台中更广泛地集成技术。
  • /西向API:如Fig9所示,是分布式控制器所需的接口的特例。这些接口的功能包括控制器之间的导入/导出数据,数据一致性模型的算法以及监视/通知功能(例如,检查控制器是否启动或通知接管一组转发设备)。

 

  • 要识别并提供不同控制器之间的通用兼容性和互操作性,必须具有标准的东/西向接口。
  • 关于东/西向接口的另一个重要问题是异质性。例如,除了与对等SDN控制器通信之外,控制器还可能需要与从属控制器(在控制器的层次结构中)和非SDN控制器进行通信。
  • 北向:当前控制器提供各种各样的北向API,例如adhocAPI,RESTfulAPI,多级编程接口,文件系统,以及其他更专业的API。
  • 结束备注和平台比较:参考Table6:控制器分类。

 

E.第五层:北向接口

  • 北向和南向接口是SDN生态系统的两个关键抽象。南向接口已经被广泛接受的提议(OpenFlow),但是常见的北向接口仍然是一个悬而未决的问题。
  • 无论如何,随着SDN的发展,预计会出现一个共同的(或事实上的)北向接口。
  • SFNet是北向接口的另一个示例。它是一个高级API,可将应用程序需求转换为较低级别的服务请求。但是,SFNet的范围有限,目标是查询请求网络拥塞状态和带宽预留和组播等服务。
  • 最终,单个北向界面不太可能成为赢家,因为不同网络应用程序的要求是完全不同的。安全应用程序的API可能与路由或财务应用程序的API不同。

F.第六层:基于语言的虚拟化

  • 虚拟化解决方案的两个基本特征是能够表达模块化并允许不同级别的抽象,同时仍然保证所需的属性,例如保护。例如,虚拟化技术可以允许单个物理基础设施的不同视图。例如,一个虚拟“大开关”可以代表几个底层转发设备的组合。这本质上简化了应用程序开发人员的任务,因为他们不需要考虑必须安装转发规则的交换机序列,而是将网络视为一个简单的“大转换”。这种抽象大大简化了开发和部署复杂的网络应用程序,例如高级安全相关服务。
  • 另一种基于语言的虚拟化形式是静态切片。
  • 静态切片方法的一个例子是Splendid隔离。在该解决方案中,网络片由三个部分组成:1)拓扑,包括交换机,端口和链路;2)网络基础设施上的片级交换机,端口和链路的映射;3)数据包的谓词,其中切片边缘交换机的每个端口都有一个关联的谓词。
  • Table7:总结了基于管理程序和非管理程序的虚拟化技术。

 

  • OpenFlow驱动程序使用NOX控制器来管理底层基础架构,使用基于OpenFlow规则的流表创建隔离的虚拟网络。通过支持不同的技术,它可以用作异构网络中的桥接组件。

G.第七层:编程语言

  • 在SDN中,可以设计和使用高级编程语言:

    1)创建更高级别的抽象,以简化编程转发设备的任务;

    2)为网络软件程序员提供更高效和以问题为中心的环境,加快开发和创新;

    3)促进网络控制平面中的软件模块化和代码可重用性;

    4)促进网络虚拟化的发展。

  • 通过SDN中的编程语言可以更好地解决几个问题。例如,在基于纯OpenFlow的SDN中,很难确保单个应用程序的多个任务(例如,路由,监视,访问控制)不会相互干扰。例如,为一个任务生成的规则不应该覆盖另一个任务的功能。
  • 编程语言抽象提供的另一个有趣特性是为虚拟网络拓扑创建和编写程序的能力。这个概念类似于面向对象的编程,其中对象为应用程序开发人员提取数据和特定功能,使得更容易专注于解决特定问题而无需担心数据结构及其管理。编程语言或运行时系统可以更容易地提供虚拟网络拓扑的抽象。
  • 高级编程语言可以作为实现和提供SDN的不同重要属性和功能的抽象的有力工具,例如网络结构,分布式更新,模块化组合,虚拟化和形式验证。
  • 低级指令集存在几个问题。为了解决其中一些挑战,已经提出了更高级别的编程语言,其目标各不相同,例如:(1)避免在网络中传播低级别和特定于设备的配置和依赖关系,如传统网络配置方法中所发生的那样;(2)提供抽象,允许通过易于理解和维护网络策略来完成不同的管理任务;(3)解耦多个任务(例如,路由,访问控制,流量工程);(4)实现更高级别的编程接口以避免低级指令集;(5)解决转发规则问题,例如,以自动方式阻止切换事件被触发的冲突或不完整规则;(6)解决分布式系统固有的不同竞争条件问题;•在分布式决策者的环境中加强冲突解决技术;(7)在数据平面路径设置上提供本机容错功能;(8)减少新流程处理的延迟;(9)简化有状态应用程序的创建(例如,状态防火墙)。
  • 编程语言还可以提供专门的抽象来应对其他管理要求,例如监控。
  • 另一个至关重要的方面是编程语言的可移植性,这是开发人员不需要为不同的控制平台重新实现应用程序所必需的。编程语言的可移植性可被视为控制平面生态系统的重要附加值。诸如分离后端之类的机制可能是实现平台可移植性的关键架构成分。
  • Table8:编程语言。绝大多数提出了支持OpenFlow的网络的抽象。

 

  • 编程语言,如FML,Nettle和Procera是功能性和反应性的。以这些语言编写的策略和应用程序基于由事件触发的响应动作(例如,连接到网络的新主机或当前网络负载)。这些语言允许用户以声明方式表达不同的网络配置规则,例如访问控制列表(ACL),虚拟LAN(VLAN)和许多其他规则。
  • 其他SDN编程语言,如Frenetic,分层流表(HFT),NetCore和Pyretic,其设计目的是有效地表达分组转发策略并处理重叠不同应用程序的规则,为软件模块的并行和顺序组合提供高级操作员。
  • 其他SDN编程语言提供了更多高级功能。FatTire是一种声明性语言的示例,它严重依赖于正则表达式,允许程序员描述具有容错要求的网络路径。例如,每个流可以有自己的备用路径来处理主路径的故障。
  • 仍有进一步研究和开发编程语言的余地。例如,最近的一项研究表明,当前的策略编译器会生成不必要的(冗余)规则更新,其中大多数只修改优先级字段。
  • SDN的大部分价值将来自构建于基础架构之上的网络管理应用程序。高级编程语言的进步是多产SDN应用程序开发生态系统成功的基本组成部分。

H.第八层:网络应用

  • 网络应用程序可以被视为“网络大脑”。它们实现的控制逻辑将被转换为安装在数据平面中的命令,从而决定转发设备的行为。
  • SDN可以部署在任何传统的网络环境中,从家庭和企业网络到数据中心和Internet交换点。这种多样的环境导致了各种各样的网络应用。现有网络应用程序执行传统功能,例如路由,负载平衡和安全策略实施,但也探索新方法,例如降低功耗。
  • 尽管使用案例种类繁多,但大多数SDN应用程序可分为以下五类:流量工程,移动和无线,测量和监控,安全性和可靠性以及数据中心网络。表9和表10总结了几个分类的应用程序,说明了它们的主要用途,控制器在哪里实现/评估,以及使用的南向API。
  • (1)流量工程:大多数应用程序的主要目标是设计流量,旨在最大限度地降低功耗,最大化聚合网络利用率,提供优化的负载平衡以及其他通用流量优化技术。
  • 负载平衡是SDN/OpenFlow设想的首批应用之一。为此目的已经提出了不同的算法和技术。一个特别关注的问题是这些解决方案的可扩展性。
  • SDN负载平衡还简化了网络中网络服务的布局。每次安装新服务器时,负载平衡服务都可以采取适当的操作,在可用服务器之间无缝分配流量,同时考虑网络负载和相应服务器的可用计算容量。这简化了网络管理,为网络运营商提供了更大的灵活性。
  • 现有的南向接口可用于主动监控数据平面负载。可以利用该信息来优化网络的能量消耗。通过使用专门的优化算法和多样化的配置选项,可以在降低功耗的同时满足延迟,性能和容错等基础架构目标。
  • 数据中心网络的一个重要目标是避免或减轻网络瓶颈对所提供的计算服务的操作的影响。
  • 流量优化方面:需要动态横向扩展。例如,使用ALTO之类的协议,可以通过基于SDN的方法简化云基础设施中VPN的动态和可扩展供应。最近的工作还表明,优化规则放置可以提高网络效率。
  • 执行路由和流量工程的其他应用包括用于视频和数据流的应用感知网络,,并通过采用多个分组调度器和其他技术,,来改进QoS。
  • (2)移动和无线:(这段很多功能看不懂,但与下文的笔记有关联,先记录翻译)无线网络的当前分布式控制平面对于管理有限频谱,分配无线电资源,实现切换机制,管理干扰以及在小区之间执行有效负载平衡而言是次优的。基于SDN的方法代表了使其更易于部署和管理不同类型的无线网络的机会,例如WLAN和蜂窝网络。传统上难以实现但是期望的功能确实已经成为基于SDN的无线网络的现实。这些包括通过有效切换的无缝移动,负载平衡,按需虚拟接入点(VAP)的创建,下行链路调度(例如OpenFlow交换机可以进行速率整形或时分,动态频谱使用,增强的小区间干扰协调,设备到设备卸载(即,决定何时以及如何LTE每个客户端和/或基站资源块分配(即,LTE/正交频分多址(OFDMA)网络中的时间和频率时隙)应将传输卸载给采用设备到设备范例的用户,被称为资源块,控制和分配设备或组中的传输和功率参数(例如,优化WLAN设备的传输和功率参数的算法定义和在LTE/OFDMA中,在每个基站为每个资源块分配传输功率值网络),简化管理,易于管理异构网络技术,不同网络之间的互操作性,共享无线基础设施,无缝用户移动性和蜂窝网络,QoS和访问控制策略使得可行和更容易,以及新应用的轻松部署。
  • 在无线网络中实现这些功能的第一步是为无线网络提供可编程和灵活的堆栈层,第一个例子之一是OpenRadio。
  • OpenRadio可以被视为“无线网络的OpenFlow”。
  • 非常密集的异构无线网络也是SDN的目标。
  • (3)测量和监控:测量和监控解决方案可分为两类:第一类,为其他网络服务提供新功能的应用程序;第二,旨在改进基于OpenFlow的SDN的功能的提议,例如减少由于收集统计数据导致的控制平面过载。
  • 第一类应用的一个例子是提高宽带性能的可见性。
  • 第二类解决方案通常涉及要应用的不同种类的采样和估计技术,以便减少控制平面相对于数据平面统计的收集的负担。已经应用了不同的技术来实现这一目标,例如随机和确定性分组采样技术,流量矩阵估计,通配符规则的细粒度监视,两阶段布隆过滤器来表示监控规则并提供高测量精度,而不会产生额外的内存或控制平面流量开销,以及转发设备中的特殊监控功能(OpenFlow的扩展),以减少控制平面上的流量和处理负载。
  • 第二类的其他举措提出了基本原语(例如,匹配和计数)与较重的流量分析功能(例如异常条件攻击的检测)之间更强的解耦。更强的分离有利于便携性和灵活性。例如,检测异常流的功能不应受基本原语或特定硬件实现的约束。
  • 在这种情况下,一些数据和控制平面抽象专门用于测量目的。OpenSketch是一种专用的南向API,旨在为网络测量提供灵活性。例如,允许多个测量任务同时执行而不会影响准确性。
  • (4)安全性和可靠性:在SDN背景下出现了一系列已经多样化的安全性和可靠性建议。大多数利用SDN来改善保护系统和网络所需的服务,例如策略实施(例如,访问控制,防火墙,中间件作为中间管,DoS攻击检测和缓解,随机宿主突变(即,随机和频繁地改变终端主机的IP地址,以打破攻击者关于静态IP的假设,这是常见案例),监测云基础设施,进行细粒度安全检查(即自动分析和绕道可疑交通,由专业网络安全设备进一步检查,如深度包检测系统),交通异常检测,细粒度基于流的网络访问控制,个人移动应用程序的细粒度策略执行,等等。其他解决基于OpenFlow的网络问题,例如流规则优先级划分,安全服务组合,流量过载保护以及针对恶意管理员的保护。
  • 基本上有两种方法,一种是使用SDN来提高网络安全性,另一种是用于提高SDN本身的安全性。到目前为止,重点一直放在后者中
  • (5)使用SDN提高当前网络的安全性:可能SDN的第一个实例是安全策略实施的应用程序
  • SDN已成功应用于其他目的,即针对分布式拒绝服务(DDoS)泛洪攻击和主动安全的检测(和反应)。OpenFlow转发设备使得更容易从网络中及时收集各种信息,这对于专门检测DDoS洪水攻击的算法非常方便。
  • SDN提供的功能可以提高从网络收集统计数据的能力,并允许应用程序主动编程转发设备,这对于主动安全策略执行技术(如Active安全性)非常有用。这种新颖的安全方法提出了一种新颖的反馈环路,以改善对网络基础设施防御机制的控制,并以五种核心功能为中心:保护,感知,调整,收集和计数。
  • (6)提高SDN本身的安全性:已经有一些研究工作在识别SDN的关键安全威胁和增强其安全性和可靠性。早期的方法尝试应用简单的技术,例如分类应用程序和使用规则优先级,以确保安全应用程序生成的规则不会被优先级较低的应用程序覆盖。
  • (7)数据中心网络:从小型企业到大型云提供商,大多数现有IT系统和服务都非常依赖于高度可扩展和高效的数据中心。然而,这些基础架构仍然在计算,存储和网络方面构成重大挑战。
  • 数据中心网络可以从SDN中获益。
  • SDN可以通过允许虚拟网络隔离,自定义寻址以及中间盒和虚拟桌面云应用程序的放置来帮助基础架构提供商向其客户公开更多网络基元。为了充分发掘虚拟网络在云中的潜力,一个重要特征是虚拟网络迁移。集成虚拟机和虚拟网络的实时迁移是最重要的挑战之一。
  • SDN在数据中心的另一个潜在应用是检测网络操作中的异常行为。
  • (8)TowardSDNAppStores:大多数SDN应用都依赖于NOX和OpenFlow。NOX是第一款可用于一般用途的控制器,使其成为迄今为止大多数用例的自然选择。正如安全相关应用程序的绝对数量所表明的那样,安全性可能是SDN的杀手级应用之一。

I.跨层问题

  • 例如调试和故障排除,测试,验证,模拟和仿真。
  • (1)调试和故障排除:应用于调试和故障排除的两个主要策略是运行时调试(例如,类似gdb的工具)和事后分析(例如,跟踪,重放和可视化)。
  • 网络中的调试和故障排除处于非常原始的阶段。在传统网络中,工程师和开发人员必须使用ping,traceroute,tcpdump,nmap,netflow和SNMP统计等工具进行调试和故障排除。使用这种原始工具调试复杂的网络非常困难。
  • 由不同类型的设备,技术和特定于供应商的组件和功能引入的额外复杂性使事情变得更糟。
  • SDN在这方面提供了一些希望。基于硬件的硬件控制功能以及控制通信的开放标准的使用可以使调试和故障排除更容易。SDN引入的灵活性和可编程性确实为开发更好的调试,故障排除,验证和测试网络工具开辟了新的途径。
  • 支持OpenFlow的网络的早期调试工具,如ndb,OFRewind和NetSight,可以更容易地发现网络问题的来源,例如设备固件故障,不一致或不存在的流量规则,缺乏可达性和错误路由。
  • 与众所周知的gdb软件调试器类似,ndb提供基本的调试操作,如断点,监视,回溯,单步和继续。这些原语可帮助应用程序开发人员以与传统软件类似的方式调试网络。例如,通过使用ndb的明信片(即,由数据包标头的截断副本,匹配的流条目,交换机和输出端口组成的唯一数据包标识符),程序员能够快速识别并隔离错误的OpenFlow切换有硬件或软件问题。
  • OFRewind工具的工作方式不同。其想法是记录和重放网络事件,特别是控制消息。该工具允许操作员执行网络行为的细粒度跟踪,能够决定将记录哪些网络子集,然后选择要重放的跟踪的特定部分。这些重放提供了有价值的信息,可以找出网络不当行为的根本原因。
  • 同样,NetRevert也记录了OpenFlow网络的状态。但是,主要目标不是重现网络行为,而是在发生故障时提供回滚恢复,这是分布式系统中用于消除节点中的瞬态错误的常用方法。
  • Table11:调试,验证和模拟。

                                                                          

  • NetSight是一个平台,其主要目标是允许构建使用数据包历史记录的应用程序,以便找出网络中的问题。该平台由三个基本要素组成:1)NetSight,其专用服务器接收和处理用于构建数据包历史记录的明信片;2)NetSigh-SwitchAssist,可用于交换机,减少专用服务器的处理负担;3)NetSight-HostAssist在终端主机上生成和处理明信片(例如,在虚拟化基础设施的虚拟机管理程序中)。
  • (2)测试和验证:验证和测试工具可以补充调试和故障排除。最近的研究,-,,表明,验证技术可用于检测和避免SDN中的问题,例如转发循环和黑洞。
  • FlowChecker,OFTEN和VeriFlow是用于验证系统上的正确性属性违规的三个工具示例。虽然前两者基于离线分析,但后者能够在线检查网络不变量。
  • 其他正式的建模技术,如Alloy,可以应用于SDN以识别意外行为。
  • 诸如FLOWGUARD之类的工具专门用于检测和解决启用OpenFlow的网络中的安全策略违规。FLOWGUARD能够检查即时网络策略更新,检查间接安全违规(例如,OpenFlow的设置字段操作修改)并执行状态监控。
  • 测试和验证面临的挑战之一是验证非常大的网络中的转发表,以便尽快找到可能导致流量丢失和安全漏洞的路由错误。在大规模网络中,由于路由状态的频繁变化,不可能假设网络快照在任何时候都是一致的。
  • 另一个重要问题与验证过程的执行速度有关,特别是在具有非常严格的时序要求的现代数据中心中。
  • (3)模拟和仿真:模拟和仿真软件对于快速原型设计和测试尤为重要,无需昂贵的物理设备。Mininet是第一个提供快速简便的原型和评估SDN协议和应用程序的系统。Mininet的一个关键特性是它在虚拟化容器中使用基于软件的OpenFlow交换机,提供与基于硬件的OpenFlow交换机完全相同的语义。
  • MininetCE和SDNCloudDC是Mininet的扩展,用于实现大规模模拟。MininetCE将Mininet实例组合成一个模拟器实例集群,以模拟全球规模的网络。SDNCloudDC通过实施新的软件模块(如数据中心拓扑发现和网络流量生成),增强Mininet和POX模拟基于SDN的DC内网络。

0x05正在进行的研究工作和挑战

  本节重点介绍了我们认为对释放SDN的全部潜力特别重要的研究工作,因此在本次调查中得到了特定的记录。

A.交换机设计

  •          当前可用的OpenFlow交换机非常多样化并且在特征集(例如,流表大小,可选动作),性能(例如,快速路径与慢速路径,控制信道延迟/吞吐量),解释和遵守协议规范(例如,BARRIER命令)和架构(例如,硬件与软件设计)方面表现出显着差异。
  •          1)异构实现:实现选择对交换机的行为,准确性和性能具有根本性影响,范围从流量计数器行为的差异到许多其他性能指标。一种适应这种异质性的方法是通过NOSIX,一种将应用期望与交换异构性分离的便携式API。为此,NOSIX提供了多个虚拟流表和交换机驱动程序的管道。虚拟流表旨在满足应用程序的期望,并最终由驱动程序转换为实际的交换机流表。
  •     2)流表容量:流匹配规则存储在网络设备内的流表中。一个实际的挑战是为交换机提供大而有效的流表以存储规则。TCAM是保存流表的常用选择。虽然在匹配能力方面灵活且高效,但TCAM成本高且通常很小(从4000到32000个条目)。
  •     一些努力集中于压缩技术以减少TCAM中的流条目数-。Espresso启发式可用于压缩基于OpenFlow的域间路由表的通配符,将转发信息库(FIB)减少17%,从而节省多达40000个流表条目。影子MAC通过使用不透明值(类似于MPLS标签)将细粒度路径编码为标签,提出标签切换以解决两个问题,即一致更新和规则空间耗尽。
  • (3)性能:今天,商用OpenFlow交换机的吞吐量从每秒38到1000流量模块不等,大多数设备的吞吐量低于每秒500流量模块。这显然是一个限制因素。处理该问题的一种方法包括在交换机中添加更强大的CPU。
  • 其他人已经提出重新考虑外部控制器和交换机内的OpenFlow代理之间的控制动作的分配。我们目前的理解表明,有效的前进方式是SDN交换机的本地设计,与南向API标准化活动的发展一致。
  • (4)不断发展的交换机设计和硬件增强:与任何软件/硬件创新周期一样,从硬件角度来看,预计会有许多改进,以提高SDN功能和性能。
  • 最近关于高速缓存类OpenFlow交换机安排的建议阐明了通过巧妙的交换设计克服流量表大小的实际限制。此外,计数器代表了SDN硬件实现中的另一个实际挑战。许多计数器已经存在,它们可能导致显着的控制平面监控开销。已经提出软件定义的计数器(SDC)以提供可伸缩性和灵活性。
  • 新的可编程以太网交换机芯片,如XPliant以太网,正在进入这个新的可编程网络市场。其主要目标是通过软件更新实现新协议支持和新功能的增加,从而提高灵活性。
  • 像英特尔这样的微芯片公司已经向市场推出了具有灵活SDN功能的处理器。通用CPU技术的最新进展包括数据平面开发套件(DPDK),它允许对如何在网络接口卡内直接处理数据包进行高级编程。英特尔DPDK加速交换机的原型实现显示了提供高性能SDN软件交换机的潜力。
  • 诸如FPGA的硬件可编程技术被广泛用于减少基于硬件的功能实现的时间和成本。
  • (5)原生SDN交换机设计:迄今为止,大多数SDN交换机(重新)设计都采用渐进式方法将OpenFlow专用可编程功能改进现有硬件布局,遵循交换机/路由器设计和整合技术。
  • 在硬件中实现灵活的报头处理的最小动作原语集的可行性,几乎没有额外的成本或功率。同样符合高度灵活和可编程(基于硬件)数据平面的核心SDN目标,POF旨在通过通用流程指令集克服OpenFlow的一些限制。

B.控制器平台

  • 在SDN模型中,控制器平台是架构的关键支柱,因此,正致力于将SDN控制器转变为高性能,可扩展,分布式,模块化且高度可用的程序员友好型软件。特别是分布式控制器平台必须解决各种挑战。值得特别考虑的是转发设备和控制器实例之间的延迟,容错,负载平衡,一致性和同步等问题。操作员还应该能够观察和理解不同功能和模块的组合如何影响他们的网络。
  • 减少控制平面开销的另一种方法是将流表的压缩副本保存在控制器的存储器中。
  • (1)模块化和灵活性:一系列正在进行的研究工作针对模块化和灵活的控制器组合。
  • 目前,大多数SDN控制器缺乏模块化,迫使开发人员在每个新应用程序中从头开始重新实现基本网络服务。与一般的软件工程一样,缺乏模块化会导致难以构建,维护和扩展的控制器实现最终会抵制进一步的创新,类似于传统的“硬件定义”网络。
  • 进一步的研究工作(例如,Corybantic)试图在SDN控制程序中实现模块化。
  • (2)互操作性和应用程序可移植性:促进控制器之间的互操作性非常重要。
  • 另一种简化网络管理的方法是组合SDN管理程序。其主要功能是允许以不同语言或不同平台编写的应用程序在处理相同流量时协同工作。密钥集成组件是一组简单的OpenFlow规则优先级列表,可以由不同的编程语言或应用程序生成。
  • (3)高可用性:在生产中,SDN控制器需要在其承载的应用程序的不同目标的压力下维持健康的操作。为了处理基于控制器的解决方案的潜在风险向量,需要许多进步。当然,许多解决方案将利用过去十年中分布式系统和安全社区的结果。
  • 构建低延迟,高可用性SDN控制器的另一种可能方法是利用控制器局部性。
  • 可以探索分布式系统的经典模型,例如LOCAL和CONGEST。这些模型可用于开发协调协议,使每个控制器能够对发生在其本地邻域的事件采取独立行动。
  • 另一个核心挑战涉及分布式SDN控制器中状态分布一致性模型,控制应用程序的一致性要求和性能之间的基本权衡。
  • 混合解决方案可能共存,要求应用程序开发人员了解使用或不使用强一致性模型的权衡和惩罚,这是分布式Onix控制器的原则。
  • 通过改进的南向API和控制器放置启发式和正式模型-也可以实现高可用性。这些目标旨在通过允许转发设备以经济高效的方式连接到多个控制器来最大化弹性和可扩展性。
  • 所需控制器的数量更多地取决于拓扑而不是网络规模。
  • (4)控制权委派:为了提高运营效率,SDN控制器可以委派控制功能来报告状态和属性值变化,阈值交叉警报,硬件故障等。
  • 在转发设备中执行而不是在控制平台中实现的强有力候选者包括OAM,ICMP处理,MAC学习,邻居发现,缺陷识别和集成。这不仅可以减少控制平面的开销(流量和计算),还可以通过将基本网络功能保持在数据平面中来提高网络效率。

C.恢复力

  • 实现弹性通信是网络的首要目标。因此,预计SDN将提供与传统和任何新替代技术相同的可用性水平。
  • 在考虑关键控制平面功能时,将SDN控制平面功能从机箱内部重新定位到远程逻辑集中式位置成为一项挑战。
  • 构建运行容错SDN方面缺乏足够的研究和经验。
  • 考虑到OpenFlow网络,当交换机检测到链路故障(端口关闭事件)时,会向控制器发送通知,然后控制器采取所需的操作(重新路由计算,预先计算的备份路径查找)并在所需的安装更新的流条目切换到重定向受影响的流量。由于与控制器的必要交互以及控制信道上的额外负载,这种反应策略意味着高恢复时间。一项关于运营商级网络的OpenFlow的实验研究调查了恢复过程,并测量了大约100毫秒的恢复时间。在某些情况下,控制器引入的延迟可能是禁止的。

D.可扩展性

  • 可扩展性是一个需要在任何系统中解决的问题。
  • SDN中的大多数可扩展性问题都与控制和数据平面的解耦有关。特别相关的是反应网络配置,其中新流的第一分组由第一转发元件发送到控制器。额外的控制平面流量增加了网络负载并使控制平面成为潜在的瓶颈。另外,由于交换机的流表由外部实体实时配置,因此还存在由流设置过程引入的额外延迟。在大型网络中,控制器需要能够每秒处理数百万个流量,而不会影响其服务质量。因此,控制平面上的这些开销和流设置延迟(可以说)是SDN中两个主要的扩展问题。
  • 解决SDN缩放限制的大多数研究工作可分为三类:数据平面,控制平面和混合。
  • 在针对数据平面的同时,诸如DevoFlow和SDC之类的提议实际上通过将一些工作委托给转发设备来减少控制平面的开销。
  • Table12:提供了解决SDN可扩展性问题的非穷举列表。我们通过应用领域(控制或数据平面),它们的目的,每秒流量(当报告实验结果时)的吞吐量以及使用的策略来表征这些问题。可以看出,绝大多数是控制平面解决方案,试图通过使用分布式和多核架构来提高可扩展性。

 

  • 一些数据相对令人印象深刻,一些解决方案可实现高达2000万流量/秒。但是,我们应该提醒读者,当前的评估只考虑简单的应用程序,并基本上计算用于测量吞吐量的数据包输入和数据包输出消息的数量。控制器的实际性能将受到其他因素的影响,例如控制器上运行的应用程序的数量和复杂性以及实施的安全机制。
  • 有关可扩展性的另一个重要问题是分布式体系结构中控制器副本之间的数据分布。分布式控制平台依靠数据分发机制来实现其目标。
  • 实验评估表明,高性能的分布式和容错数据存储可用于解决这些挑战。

E.性能评估

  • 预计在不久的将来,通过SDN网络的实验将越来越多。这自然会带来新的挑战,因为有关SDN性能和可扩展性的问题尚未得到适当调查。了解SDN概念的性能和局限性是其在生产网络中实施的必要条件。
  • 一些工作已经研究了提高SDN中交换功能性能的方法。这些主要包括观察OpenFlowenabled网络在不同方面的性能,例如查找性能,硬件加速,规则类型和数据包大小的影响,当前OpenFlow实现的性能瓶颈,反应设置如何影响数据中心网络的性能,以及配置对OpenFlow交换机的影响。
  • 设计选择会对使用标准商用网络接口卡的Linux操作系统中的OpenFlow交换的查找性能产生重大影响。
  • 通过利用英特尔的DPDK库,已经证明可以在管理程序级别(例如,KVM)提供灵活的流量控制功能,而不受传统硬件交换技术所施加的性能限制。
  • 当前的OpenFlow交换机实现可能导致CPU负载方面的性能瓶颈。然而,对协议规范的修改可以帮助减少这些瓶颈的发生。进一步的研究提供了关于OpenFlow交换机的性能测量,用于不同类型的规则和数据包大小。
  • 在评估SDN架构的性能时要提出的另一个有趣的问题是,给定网络拓扑所需的控制器数量以及控制器放置位置。通过分析不同网络拓扑中控制器的性能,可以得出结论,一个控制器通常足以将延迟保持在合理的速率。
  • 但是,有些情况,例如大规模网络和WAN,应该部署更多控制器以实现高可靠性和低控制平面延迟。
  • 最近的研究还表明,由于响应性,可靠性和可扩展性指标,SDN控制平面无法完全物理集中。因此,分布式控制器是创建逻辑集中控制平面的自然选择,同时能够满足大规模网络的需求。但是,分布式控制器带来了额外的挑战,例如全球网络视图的一致性,如果不仔细设计,可能会显着影响网络的性能。
  • 在详细数据可用之前,分析模型可以快速为OpenFlow交换机控制器系统提供性能指标和潜在的可扩展性瓶颈。虽然模拟可以提供对特定配置的详细信息,但分析模型极大地简化了概念性部署决策。

F.安全性和可靠性

  • 对金融机构,能源设施,政府单位和研究机构的网络攻击正成为全球政府和机构最关注的问题之一。
  • 由于网络攻击的危险和当前的数字威胁,安全性和可靠性是SDN的首要任务。
  • 业内专家认为,安全性和可靠性是SDN需要解决和进一步研究的问题。
  • 此外,从可靠性的角度来看,互联网路由器的可用性如今已成为云的普遍存在以及对网络的强烈期望。因此,如果它们要成为网络应用的主要支柱,那么在SDN控制平台上实现高水平的可用性至关重要。
  • 虽然一些威胁向量对于现有网络是常见的,但其他威胁向量对于SDN更具体,例如对控制平面通信的攻击和逻辑集中控制器。
  • Fig11:SDN架构的主要威胁载体。SDN架构中至少有七个已识别的威胁向量。

 

  • Table13:SDN特定与非特定威胁。

 

  • 威胁向量3到5特定于SDN,因为它们源于控制和数据平面的分离以及随后在这些网络中引入新实体的逻辑集中控制器。
  • OpenFlow网络受到各种安全性和可靠性问题的影响,例如欺骗,篡改,否认,信息泄露,拒绝服务,特权提升,并假设所有应用程序都是良性的,不会影响SDN操作。缺乏隔离,保护,访问控制和更强的安全建议是造成这些漏洞的部分原因。下面的内容将探讨这些。
  • (1)OpenFlow安全评估:在启用OpenFlow的网络中已经存在许多已识别的安全问题。从STRIDE方法开始,可以识别对支持OpenFlow的网络的不同攻击。
  • 所有报告的威胁和攻击都会影响OpenFlow规范的所有版本(1.0到1.3.1)。值得强调的是,某些攻击(如欺骗)并非特定于SDN。但是,这些攻击可能会对SDN产生更大的影响。例如,通过欺骗网络控制器的地址,攻击者(使用假控制器)可以接管整个网络的控制。智能攻击可能仅持续几秒钟,即,仅为了其恶意目的(例如,流量克隆)在所有转发设备上安装特殊规则所需的时间。这种攻击可能很难被发现。
  • 以反伪造作为另一个例子,攻击者可以尝试猜测已安装的流规则,然后伪造数据包以人为地增加计数器。例如,这种攻击对于计费和负载平衡系统尤其重要。与实际使用的客户相比,客户可能需要支付更多的流量,而负载平衡算法可能会因伪造的计数器而采取非最佳决策。
  • 另一个值得关注的问题是,当前的控制器,如Floodlight,OpenDaylight,POX和Beacon,有几个安全性和弹性问题。常见的应用程序开发问题(错误),例如突然退出应用程序或连续分配内存空间,足以使现有控制器崩溃。从安全角度来看,简单的恶意行为,如更改内存中数据结构的值,也会直接影响当前控制器的运行和可靠性。这些例子说明了从安全性和可靠性的角度来看,还有很长的路要走。
  • Table15:总结了可应用于启用SDN/OpenFlow的网络的不同元素的许多对策。

 

  • 2基于OpenFlow的SDN的对策:可以采取多种对策来缓解SDN中的安全威胁。
  • 速率限制,事件过滤,数据包丢弃,更短的超时和流聚合,已在最新版本的OpenFlow规范(版本1.3.1及更高版本)中推荐。但是,其中大多数尚未在SDN部署中支持或实施。
  • 诸如访问控制,攻击检测机制,事件过滤(例如,控制器决定他将不接受哪些异步消息),防火墙和入侵检测系统的传统技术可用于减轻或避免攻击的影响。它们可以在不同的设备中实现,例如控制器,转发设备,中间盒等。中间件可以是在企业中实施安全策略的良好选择,因为它们(通常)是更强大且特殊用途(高性能)的设备。这种策略还通过直接在控制器或转发设备上实施这些对策来减少潜在的开销。但是,中间盒可能会给网络管理增加额外的复杂性,即以更好的性能为代价来增加OPEX。(OPEX指的是企业的管理支出。)
  • 速率限制,数据包丢弃,更短的超时和流聚合是可以应用于控制器和转发设备的技术,以减轻不同类型的攻击,例如拒绝服务和信息泄露。
  • 通过减少超时,攻击者将被迫不断生成大量伪造数据包,以避免超时到期,从而更有可能检测到攻击。通过在发起攻击的设备上安装特定规则,可以应用速率限制和丢包以避免控制平面上的DoS攻击或直接停止数据平面上的持续攻击。
  • 取证和补救包括安全日志记录,事件关联和一致报告等机制。如果网络出现任何问题,运营商应该能够安全地找出问题的根本原因,并使网络尽可能快地在安全运行模式下工作。此外,可以通过自动屏蔽和删除来向控制平台添加容忍故障和入侵的技术,例如状态机复制,主动-反应式恢复和多样性,以提高稳健性和安全性。故障。换句话说,SDN控制器应该能够抵御不同类型的事件(例如,断电,网络中断,通信故障,网络分区)和攻击(例如,DDoS,资源耗尽)
  • 解决SDN的不同威胁和问题的其他对策包括增强控制器的安全性和可靠性,保护和隔离应用,控制器和转发设备之间的信任管理,控制器和应用程序的完整性检查,取证和补救,验证框架和弹性控制平面。保护和隔离机制应该是任何控制器的一部分。应用程序应彼此隔离并与控制器隔离。
  • 应该采用不同的技术,例如安全域(例如,内核,安全性和用户级别)和数据访问保护机制,以避免来自网络应用程序的安全威胁。
  • 在控制器和转发之间实现信任是确保恶意元素在未被检测到的情况下不会损害网络的另一个要求。攻击者可以尝试欺骗控制器的IP地址,并使交换机连接到自己的控制器。目前情况就是如此,因为大多数控制器和交换机只建立不安全的TCP连接。
  • 还有其他方法可以减轻SDN中的安全威胁,例如消除网络协议漏洞的声明性语言。这些语言可以帮助查找和消除南向规范的实施漏洞。

G.迁移和混合部署(MigrationandHybridDeployments)

  • SDN承诺提供更简单的计算机网络设计,操作和管理,这些承诺受到增量可部署性,稳健性和可扩展性方面的挑战的威胁。
  • SDN中的混合网络跨越多个层次。ONF的迁移工作组正在解决混合交换机架构和混合(OpenFlow和非OpenFlow)设备共存的情况。混合交换机可以配置为表现为传统交换机或OpenFlow交换机,在某些情况下,可以同时作为两者。例如,这可以通过划分交换机的端口集来实现,其中一个子集专用于OpenFlow控制的网络,而另一个子集专用于传统网络。为了使这些子集同时处于活动状态,每个子集具有其自己的数据平面,在转发引擎处需要多个支持(例如,通过TCAM分区)。
  • 基于流的分区是最灵活的选项,因为它允许进入交换机的每个数据包按OpenFlow流描述进行分类,并由适当的数据平面(OpenFlow或传统)处理。
  • 有各种各样的控制器,例如OpenDaylight,HPVANSDN和OpenContrail​​,它们被设计用于将当前的非SDN技术(例如,SNMP,PCEP,BGP和NETCONF)与SDN集成。
  • 此外,由于不同的原因,控制器可能必须分成不同的对等域,例如可扩展性,技术,来自不同供应商的控制器,具有不同服务功能的控制器以及管理域的多样性。来自不同域或具有不同目的的控制器还需要通过改进或扩展现有的多域协议(例如,BGP)或通过提出新的SDN到SDN协议(也称为东/西向API)来向后兼容。已经有一些努力已经致力于迁移和混合SDN的挑战。
  • 最近,已提出诸如ESCAPE及其扩展的框架以在多域中提供多层服务编排。这些框架结合了不同的工具和技术,如Click,POX,OpenDaylight和NETCONF。换句话说,这些框架将不同的SDN解决方案与传统解决方案集成在一起。因此,它们可能是将传统网络基础架构集成或迁移到SDN的过程中的有用工具。
  • 虽然完全SDN部署仅在一些绿色领域部署(例如数据中心网络)或通过覆盖模型方法中是直截了当的,但混合SDN方法代表了可能通过不同方式实现的非常可能的部署模型,包括以下:(1)基于拓扑的混合SDN。(2)基于服务的混合SDN:传统网络和SDN提供不同的服务,其中重叠节点控制每个节点的FIB(或通用流表)的不同部分。(3)基于类的混合SDN:基于类中流量的划分,一些由SDN控制,其余由传统协议控制。(4)集成混合SDN:SDN负责所有网络服务并使用传统协议(例如BGP)作为节点FIB接口的模型。
  • 通常,混合方法的好处包括实现灵活性(例如,容易匹配中间盒的数据包字段)和SDN特定功能(例如,声明性管理接口),同时部分保持传统网络的继承特性,例如健壮性,可扩展性,技术成熟度,部署成本低。从消极方面来看,杂交的缺点包括需要确保网络范例(SDN和传统)之间的有利可图的交互,同时处理很大程度上取决于模型的异质性。
  • 集中式和分布式范式的结合可以提供互惠互利。然而,未来的工作需要设计技术和交互机制,以最大化这些好处,同时限制范式共存的增加的复杂性。

H.满足运营商级和云要求

  • 许多运营商级基础设施提供商(例如,NTT,AT&T,Verizon,DeutscheTelekom)是SDN社区的核心,其最终目标是解决其长期存在的网络问题。
  • 运营商网络正在使用SDN范例作为解决许多长期问题的技术手段。
  • SDN技术还为云提供商带来了新的可能性。通过利用网络资源的逻辑集中控制,可以简化和优化数据中心的网络管理,并实现:1)高效的数据中心网络,包括数据的快速恢复机制和控制平面,对DC网络进行最小修改的自适应流量工程,简化的容错路由,性能隔离以及简单有效的资源迁移(例如虚拟机和虚拟网络);2)改进了interdatacenter通信,包括在不损害服务质量的情况下充分利用昂贵的高带宽链路的能力;3)更高的可靠性水平(具有新颖的故障管理机制等);4)通过简单和便宜的转发设备取代复杂,昂贵的硬件,降低成本。
  • Table16:总结了一些运营商级网络和云基础架构提供商的要求。在此表中,我们将展示当前的挑战以及SDN的预期结果。正如我们之前看到的,一些期望已经成为现实,但许多仍然是未解决的问题。似乎很清楚的是,SDN为电信和云提供商提供了机会,提供灵活性,成本效益和更轻松的网络管理。

I.SDN:面向软件定义环境的缺失部分

  • 不同技术的融合使得能够实现完全可编程的IT基础架构。已经可以动态地自动配置或重新配置整个IT堆栈,从网络基础架构到应用程序,以更好地响应工作负载变化。最近的进展使得几乎所有基础设施层都可以按需提供资源。
  • IT基础架构的全自动配置和编排,最近被IBM称为软件定义环境(SDE)。这是一种新颖的方法,预计在简化IT管理,优化基础设施使用,降低成本和缩短新想法和产品的上市时间方面具有巨大潜力。在SDE中,可以根据应用程序特征,安全性和服务级别策略以及提供持续,动态优化和重新配置的最佳可用资源,轻松自动地将工作负载分配给适当的IT资源,从而快速响应基础架构问题方式。表17总结了传统方法和SDE启用的一些关键特性。
  • SDE的四个基本构建块是:SDN、软件定义存储(SDS)、软件定义计算(SDC)、软件定义管理(SDM)。在过去十年中,计算和存储虚拟化的进步以及复杂的云编排工具的可用性使SDS,SDC和SDM成为可能。

0x06结论

  • 传统网络复杂且难以管理。其中一个原因是控制和数据平面是垂直集成的,并且是特定于供应商的。另一个同意的原因是,典型的网络设备也与线路产品和版本紧密相关。换句话说,每行产品可具有其自己的特定配置和管理接口,这意味着产生产品更新(例如,新固件)或升级(例如,设备的新版本)的长周期。所有这些都导致了网络基础设施所有者的供应商锁定问题,并对变更和创新构成严重限制。
  • SDN为解决这些长期存在的问题创造了机会。SDN的一些关键思想是通过开放的南向接口在转发设备中引入动态可编程性,通过“网络大脑”的逻辑集中来实现控制和数据平面的解耦以及网络的全局视图。数据平面元素变得愚蠢,但是高效且可编程的分组转发设备,控制平面元素现在由单个实体,控制器或NOS表示。实现网络逻辑的应用程序运行在控制器之上,与传统网络相比,更容易开发和部署。鉴于全球观点,政策的一致性很容易实施。SDN代表了网络发展和发展的主要范式转变,引入了网络基础设施的新创新步伐。
  • 我们首先将这种新模式与传统网络进行比较,并讨论学术界和行业如何帮助塑造SDN。采用自下而上的方法,我们深入概述了我们认为SDN问题的八个基本方面:(1)硬件基础设施;(2)南行接口;(3)网络虚拟化(转发设备和NOS之间的管理程序层);(4)NOS(SDN控制器和控制平台);(5)北向接口(提供给网络应用程序的通用编程抽象);(6)使用由专用库和/或编程语言和编译器提供的切片技术进行虚拟化;(7)网络编程语言;最后,(8)网络应用程序。
  • SDN成功地为下一代网络铺平了道路,产生了创新的研发环境,推动了以下几个领域的进步:交换机和控制器平台设计,可扩展性和设备和架构性能的演变,安全性和可靠性的提升。

猜你喜欢

转载自www.cnblogs.com/ChenYujin/p/9301597.html