Software-Defined Networking: A Comprehensive Survey

  • 文章名称:Software-Defined Networking: A Comprehensive Survey
  • 文章来源:Proceedings of the IEEE ( Volume: 103 , Issue: 1 , Jan. 2015 ) Page(s): 14 - 76

 摘要:

虽然互联网几乎将所有东西连接起来并且可以从任何地方进行访问,但是传统的ip网络很复杂并且难以管理,尤其是通过预定义的策略去应对未知的故障。于是我们引入了SDN网络,通过打破垂直整合,分离网络中的控制平面和数据平面,将网络控制问题简化分解成了易处理的部分。本文首先介绍SDN的由来,解释其主要概念及其与传统网络的不同之处,以及SDN相关的标准化活动。再通过介绍SDN的基础设施的关键模块、分层方法及预测其未来发展,充分分析了SDN作为软件定义环境关键推动者的地位。

1.Introduction:

  尽管传统IP网络被广泛采用,但是为了表达所需的较高级网络策略,网络运营商通常需要使用低级且特定的命令来单独配置每个独立的网络设备,在当下的IP网络中几乎不能支持自动重新配置和响应这样的动态机制。当前的网络是垂直整合的——控制平面(决定如何处理网络流量)和数据平面(根据控制平面做出的决定转发流量)捆绑在网络设备中,这降低了网络本身的灵活性,阻碍了网络基础设施的创新和发展,也增加了运行IP网络的资本和运营费用。

软件定义网络(SDN)是一种新兴的网络,志在改变当前网络基础设施的局限性——首先,它通过将网络的控制逻辑(控制平面)与底层路由器和交换机(数据平面)分开,以此打破垂直整合。其次,随着控制和数据平面的分离,网络交换机仅仅只是个转发设备,控制逻辑与之分离且在逻辑集中控制器(或网络操作系统)中实现,简化了策略的实施和网络重新配置和演进的响应速度。

以下是个简单的SDN网络的结构图:

 控制平面和数据平面的分离可以通过开关和SDN控制器之间被明确定义的编程接口来实现,最好的例子就是OpenFlow。

 OpenFlow交换机具有一个或多个数据包处理规则表(流表)。每个规则都可以匹配并对流量执行某些操作,包括丢弃,转发,修改等。根据控制器应用程序安装的规则,OpenFlow交换机可以在控制器指示下扮演路由器,交换机,防火墙等各种不同角色。

SDN思想已经成熟并从学术演习转变为了商业成功,主要例子有Google的SDN网络和VMware的

 

 本文分成了若干部分来阐述SDN网络。

前几个部分主要是介绍SDN的动机并解释这个新范例的主要概念以及它与传统网络的区别。

第四部分是本次调查的核心,使用自下而上的分层方法对SDN基础设施的构建模块进行了广泛而全面的分析。

第五部分是关于正在进行的研究工作,面对的挑战,未来工作和机遇的讨论,是本文的尾章。

2.State of quo in “computer networking” and motivation for SDN:

计算机网络可分为三个功能平面:数据,控制和管理平面。数据平面对应于网络设备,负责转发数据。控制平面表示用于填充数据平面转发表的协议。管理平面包括软件服务,用于远程监控和配置控制功能。网络策略在管理平面中定义,控制平面里强制执行策略,数据平面通过相应的转发数据来执行。

在传统的IP网络中,控制和数据平面紧密耦合,并且嵌入在相同的网络设备中,这也是传统网络僵化,管理和控制复杂的根本原因。由于单个配置错误的设备可能会导致丢包,转发循环,设置非预期路径或服务合同违规等问题,并且一个配置错误的路由器能够在几个小时内危及整个互联网的正确运行,因此为了支持网络管理,少数供应商提供了专用硬件、操作系统和控制程序的专有解决方案。

为了缓解网络中缺乏路径内功能的问题,大量的专用组件和中间盒,如防火墙、入侵检测系统和深度包检查引擎,在当前的网络中大量涌现。尽管有助于实现路径功能,但中间盒的网络效应却增加了网络设计及其运行的复杂性。

3.WHAT IS SOFTWARE-DEFINED NETWORKING:

SDN一词最初是在斯坦福大学(stanford university)所提出的,用来表示关于openflow的思想和工作。

本文尝试对软件定义的网络提供一个不那么模棱两可的定义,将SDN定义为具有四个支柱的网络架构:

  • 控制平面和数据平面分离
  • 转发决策是基于流的,而不是基于目的地的
  • 控制逻辑转移到外部实体,即所谓的SDN控制器或网络操作系统(NOS)
  • 网络可通过运行在与底层数据平面设备交互的nos上的软件应用程序进行编程

 

 图4描述了SDN体系结构、概念和构建块。如前所述,控制平面和数据平面之间的强耦合使得向传统网络添加新功能变得异常困难。

 

如图5所示。控制平面和数据平面的耦合使得开发和部署新的网络功能变得非常困难,因为它意味着要通过安装新固件,并且在某些情况下进行硬件升级。

因此,新的网络特性通常是通过昂贵的、专门的和难以配置的设备(也称为中间盒)引入的,例如负载平衡器、入侵检测系统(ids)和防火墙等。这些中间盒需要战略性地放置在网络中,这也使得以后更改网络拓扑、配置和功能变得更加困难。相反,SDN将控制平面与网络设备分离,并成为一个外部实体:网络操作系统或sdn控制器,这种方法可以带来很多优势。

术语

为了尽可能明确地识别SDN的不同元素,文章介绍了在整个工作中使用的基本术语:

  • 转发设备(FD):执行一组基本操作的基于硬件或软件的数据平面设备。
  • 数据平面(dp):转发设备通过无线信道或有线电缆互连,网络基础设施包括表示数据平面的互连转发设备。
  • 南向接口(si):由南向api定义的转发设备的指令集,它是南向接口的一部分。
  • 控制平面(cp):转发设备由控制平面元件通过定义良好的南向接口实施编程。
  • 北向接口(ni):网络操作系统可以为应用程序开发人员提供api,这个api表示一个北向接口。
  • 管理平面(MP):管理平面是利用北向接口提供的功能来实现网络控制和操作逻辑的应用程序集

替代和扩展定义

自2010年成立以来,最初以openflow为中心的sdn术语的范围不断扩大。

控制平面/代理sdn:一种网络方法,它保留了现有的分布式控制平面,但提供了新的api,允许应用程序与网络双向。

sdn控制器:通常称为编排平台,充当应用程序和网络元素之间的代理。

overlay sdn:一种网络方法,其中网络边缘被动态编程,用以管理程序和网络交换机之间的隧道,引入一个overlay网络。

标准化活动

软件定义网络的历史

尽管SDN是一个相当新的概念,但SDN利用了具有较长历史的网络思想,特别是它建立在可编程网络,如主动网络、可编程ATM网络上的工作,以及控制和数据平面分离的建议。

4.SOFTWARE-DEFINED NETWORKS: BOTTOM-UP:

 SDN体系结构可以描述为不同层的组合,如上图(b)所示,每一层都有自己的特定功能

Layer I: Infrastructure

sdn基础设施类似于传统网络,由一组网络设备(交换机、路由器和中间盒设备)组成。主要的区别在于,那些传统的物理设备现在是简单的转发元件,没有嵌入式控制或软件来进行自主决策。网络智能从数据平面设备移除到逻辑集中控制系统,即网络操作系统和应用程序。更重要的是,这些新网络建立在开放的标准接口(例如openflow)之上,这是确保不同数据和控制平面设备之间的配置、通信兼容性和互操作性的关键方法。

Layer II: Southbound Interfaces

南向接口(或南向api)是控制和转发元素之间的连接桥梁,因此是明确分离控制和数据平面功能的关键工具,这些api仍然与底层物理或虚拟基础设施的转发元素紧密相连。南向api是引进和接受任何新网络技术的主要障碍之一,有鉴于此,诸如openflow这样的sdn southerbound api提议的出现受到了业内许多人的欢迎。这些标准促进了互操作性,允许部署与供应商无关的网络设备,这已经通过来自不同供应商的支持openflow的设备之间的互操作性得到了证明,截至该文撰写之时,openflow是sdn中被最广泛接受和部署的开放南向标准。

该部分还介绍了除了openflow之外的一些协议,例如ovsdb、pof、opflex等等。

Layer III: Network Hypervisors

虚拟化已经是现代计算机中的一种整合技术,虚拟机监控程序允许不同的虚拟机共享相同的硬件资源。在云基础设施服务(iaas)中,每个用户都可以拥有自己的虚拟资源,从计算到存储。这使得新的收入和业务模式成为可能,在这种模式下,用户可以以相对较低的成本按需分配来自共享物理基础设施的资源。同时,供应商也更好地利用其已安装的物理基础设施的容量,在不显著增加资本支出和运营成本的情况下创造新的收入。

不顺利的是,虚拟化在实践中只有部分被实现了,尽管在虚拟化计算和存储元素方面有了很大的进步,但网络仍然主要是以逐箱的方式进行静态配置的。网络需求主要可以通过两个维度来获取:网络拓扑和地址空间。对于网络拓扑而言,一般需要扁平的二级或三级服务,或者更复杂的四级到七级服务来实现高级功能,而目前单一的物理拓扑很难支持应用和服务的不同需求。同样,地址空间在当前网络中也很难改变。因此,如今虚拟化工作负载必须在物理基础设施的同一地址上运行,很难保持原有的网络配置,虚拟机无法迁移到任意位置,寻址方案固定且难以更改。

因此,为了提供完全的虚拟化,网络应该提供与计算层类似的属性,网络基础设施应该能够支持任意的网络拓扑和寻址方案,每个租户都应该能够同时配置计算节点和网络。

Layer IV: Network Operating Systems / Controllers

传统操作系统提供抽象(例如高级编程api)来访问低级设备,管理对底层资源如硬盘、网络适配器、cpu、内存等的并发访问,并提供安全保护机制。而相比之下,迄今为止网络的管理和配置却都是使用较低级别、特定于设备的指令集和大多数封闭的专有网络操作系统,如Cisco IOS和Juniper Junos。

SDN承诺通过网络操作系统(nos)提供的逻辑集中控制来促进网络管理,并减轻解决网络问题的负担。与传统操作系统一样,nos的关键价值在于为开发人员提供抽象、基本服务和通用应用程序编程接口(api)。网络状态和网络拓扑信息、设备发现和网络配置分发等通用功能可以作为NOS的服务提供。使用NOS,开发人员不再需要关心数据分发的低级细节。nos是SDN体系结构中的关键元素,因为它是控制逻辑(应用程序)根据网络运营商定义的策略生成网络配置的关键支持部件。

Layer V: Northbound Interfaces

北行界面是SDN生态系统的两个关键抽象。南向接口已经是一个被广泛接受的建议,例如openflow,但是一个通用的北向接口仍然是一个开放性的问题。现在定义一个标准的北向接口可能还为时过早,因为用例仍在开发中。但无论如何,随着sdn的发展,应该会出现一个通用的北向接口。

北向接口主要是一个软件生态系统,而不是像南向接口那样的硬件生态系统。

Layer VI: Language-based Virtualization

虚拟化解决方案的两个基本特性是表示模块性和允许不同级别的抽象,但同时仍然保证所需的属性,如保护。虚拟化技术可以允许对单个物理基础设施的不同视图,例如一个虚拟的“大交换机”可以表示几个底层转发设备的组合,这从本质上简化了应用程序开发人员的任务,因为他们不需要考虑必须安装转发规则的交换机序列,而是将网络看作一个简单的“大交换机”。这种抽象大大简化了复杂网络应用程序(如高级安全相关服务)的开发和部署。

pyretic与静态切片。

Layer VII: Programming languages

几十年来,编程语言一直在飞速发展。学术界和工业界都从低级硬件特定的机器语言(如x86架构的汇编)发展到高级和强大的编程语言,如Java和Python。类似地,网络中的可编程性开始从低级机器语言如openflow转向其他高级编程语言。由于openflow和pof这样的汇编语言本质上还是模仿转发设备的行为,迫使了开发人员花太多时间在底层细节上,而不是在问题解决上。

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

  • 创建更高层次的抽象,简化转发设备的编程任务
  • 为网络软件程序员提供更高效、更专注于问题的环境,加快开发和创新
  • 在网络控制平面上促进软件模块化和代码重用
  • 促进网络虚拟化的发展。

在SDNs中使用编程语言可以更好地解决一些挑战:通常,每个应用程序根据自己的需要和策略生成规则,不需要进一步了解其他应用程序生成的规则。因此,转发设备中可能会生成并安装冲突规则,这可能会给网络操作带来问题。编程语言和运行时系统可以帮助解决这些本来很难预防的问题。高级编程语言可以作为实现和提供SDN不同的重要属性和功能(如网络范围结构、分布式更新、模块化组合、虚拟化、形式验证等)抽象的强大工具。低级指令集有几个问题,为了解决其中的一些,人们提出了更高层次的编程语言,其目标是多种多样的,例如:

  • 避免像传统的网络配置方法那样,低层次和特定于设备的配置和依赖性在网络中传播;
  • 提供通过易于理解和维护的网络策略实现不同管理任务的抽象
  • 多个任务(如路由、访问控制、流量工程)的分离
  • 实现更高级别的编程接口,避免低级别的结构集
  • 自动解决转发规则问题,例如可以防止触发交换机事件的冲突或不完整规则
  • 解决分布式系统固有的不同竞争条件问题
  • 增强冲突解决技术具有分布式决策者的环境上的问题
  • 在数据平面路径设置上提供本机容错能力
  • 减少处理新流的延迟
  • 简化有状态应用程序(如有状态防火墙)的创建
  • 编程语言还可以提供专门的抽象来处理其他管理需求,例如监视

另一个最重要的方面是编程语言的可移植性,这是开发人员不必为不同的控制平台重新实现应用程序所必需的。编程语言的可移植性可以被认为是控制平面生态系统的一个重要附加值。SDN提出了几种编程语言,绝大多数人提出了支持openflow的网络的抽象。

Layer VIII: Network Applications

网络应用可以看作是“网络大脑”,它们实现了控制逻辑,这些控制逻辑将转换为安装在数据平面中的命令,指示转发设备的行为。现有的网络应用程序既执行传统的功能,如路由、负载平衡和安全策略实施,也探索新的方法,如降低功耗。网络应用的多样性,结合实际的用例部署,有望成为推动sdn广泛采用的主要力量之一。

尽管用例种类繁多,但大多数sdn应用程序可以分为五类:

  • 流量工程
  • 移动性和无线
  • 测量和监控
  • 安全性和可靠性
  • 数据中心网络

该部分总结了上述几个应用程序的分类,说明了它们的主要用途、实现/评估它的控制器以及使用的南行API。

Cross-layer issues

在本节中,文章主要讨论跨层问题,如调试和故障排除、测试、验证、模拟和仿真。

调试和故障排除调试和故障排除一直是计算基础设施、并行和分布式系统、嵌入式系统和桌面应用程序中的重要课题。用于调试和故障排除的两种主要策略是运行时调试(例如,类似gdb的工具)和事后分析(例如,跟踪、回放和可视化)。在传统网络中,工程师和开发人员必须使用ping、traceroute、tcpdump、nmap、netflow和snmp统计等工具进行调试和故障排除,用这种原始工具调试复杂的网络是非常困难的。sdn引入的灵活性和可编程性确实为开发更好的工具来调试、故障排除、验证和测试网络开辟了新的途径,支持openflow的网络的早期调试工具,如ndb、ofrewind和netsight,可以更容易地发现网络问题的根源,如设备固件故障、流规则不一致或不存在、无法访问和路由错误。

验证和测试工具可以补充调试和故障排除。研究表明,验证技术可用于检测和避免sdn中的问题,如转发环路和黑洞。验证可以在不同的层(在控制器、网络应用程序或网络设备上)进行。此外,如果网络模型可用,则可以正式验证不同的网络属性(主要是拓扑特定的属性),这些属性的例子有连通性、循环自由度和访问控制,还提出了一些工具来通过模拟大规模网络的负载来评估openflow控制器的性能。

模拟和仿真软件对于快速成型和测试尤其重要,无需昂贵的物理设备。mininet是第一个提供了一种快速简便的方法来原型化和评估SDN协议和应用程序的系统。mininet的关键特性之一是在虚拟化容器中使用基于软件的openflow开关,提供与基于硬件的openflow开关完全相同的语义。

5.ONGOING RESEARCH EFFORTS AND CHALLENGES:

该文章调查的研究进展旨在克服实现SDN愿景和实现SDN承诺的挑战,虽然第上一章中提供了跨越“SDN堆栈”各层的视角,但作者认为本章重点介绍对于充分发挥sdn的潜力非常重要,因此值得在本次调查中进行具体报道。

Switch Designs

 当前可用的openflow交换机非常多样化,在功能集、性能、解释和遵守协议规范、架构上都非常具有多样化。异构实现的实现选择对交换机的行为、准确性和性能有着根本性的影响,从流计数器行为的差异到许多其他性能指标。适应这种异构性的一种方法便是通过nosix,这是一种可移植的api,它将应用程序期望与交换机异构性分离开来。

  • Flow Table Capacity  

流匹配规则存储在网络设备内的流表中,一个实际的挑战是为交换机提供大型高效的流表来存储规则。tcam是保存流表的常见选择,尽管在匹配能力方面灵活高效,但tcam成本高昂,而且通常容量很小。

  • Performance

如今,商用openflow交换机的吞吐量从每秒38到1000个flow-mod不等,大多数设备的吞吐量低于每秒500个flow-mod。这显然是一个限制因素,因此在交换机设计过程中加以解决,支持现有产品线中的openflow更多的是一项改进活动,而不是一项干净的功能规划和实施活动。解决这个问题的一种方法是在交换机中添加更强大的CPU,或者重新考虑外部控制器和交换机内的openflow代理之间的控制操作分布。我们目前的理解表明,一个有效的前进方向是根据南向api标准化活动的演变来设计sdn交换机。

  • Evolving Switch Designs & Hardware Enhancements

与任何软件、硬件创新周期一样,从硬件的角度来看需要取得一些进步以提高sdn的能力和性能。新的sdn交换机设计以各种硬件组合出现,以便与tcam有效地协同工作。这些早期的工作表明,需要为将来的sdn交换设备在新的硬件架构中投入更多的精力。

该部分主要说不断发展的交换机设计和硬件增强。

  • Native SDN Switch Designs

到目前为止,大多数sdn交换机的设计工作都遵循一种进化的方法,按照交换机或者路由器设计和整合技术上的共同智慧,将openflow特定的可编程特性改造成现有的硬件布局。与此方法不同的是,2.01 34版本正在进行转发变形的工作,这是一个可重构的匹配表模型,灵感来自应用于交换芯片的类似risc的流水线结构。这项工作说明了在硬件中实现一组最小的动作原语以实现灵活的报头处理的可行性,几乎不需要额外的成本或功耗。

Controller Platforms

在sdn模型中,控制器平台是体系结构的一个关键支柱,因此业界也正在努力将sdn控制器转变为高性能、可扩展、分布式、模块化和高可用的程序员友好软件,特别是分布式控制器平台,以应对各种挑战。值得特别考虑的是转发设备和控制器实例之间的延迟、容错、负载平衡、一致性和同步等问题,运营商还应能够观察和理解不同功能和模块的组合如何影响其网络。

  • Modularity & Flexibility 

一系列正在进行的研究工作的目标是控制器的模块化和灵活组合。例如raon提出了openflow控制器的递归抽象,其中每个控制器将下面的控制器看作openflow开关。开放的研究问题包括定义这样一个控制器层次中不同层之间的合适接口。在这方面存在有待进一步研究的其他开放问题,如东、西向api,以及它们在实现可伸缩性、模块性和安全性的适当分层设计中的使用。

  • Interoperability and application portability

与源于标准南向接口的转发设备供应商的不可知论类似,促进控制器之间的互操作性也很重要。早期针对更具互操作性的控制平台的倡议包括可移植编程语言,如Pyretic和控制器之间的东、西向接口,如SDNI、Forces CE-CE接口和Forces内部机制。然而,这些努力还远远没有完全实现控制器的互操作性和应用程序的可移植性。

  • High-Availability

在生产中,sdn控制器需要在来自其宿主应用程序的不同目标的压力下保持正常运行。为了处理基于控制器的解决方案的潜在风险向量,需要许多进展。另一个核心挑战涉及分布式sdn控制器中状态分布的一致性模型、控制应用程序的一致性要求和性能之间的基本权衡。

  • Delegation of control  

为了提高操作效率,sdn控制器可以委托控制功能来报告状态和属性值更改、阈值交叉警报、硬件故障等。这些通知通常遵循发布、订阅模型,即控制器和应用程序按需订阅他们感兴趣的特定通知类。此外这些子系统可以提供弹性和可靠性特性。

将控制权委托给数据平面的一些原因大致有:

  • 对各种网络事件的低延迟响应
  • 必须在数据平面中处理的通信量,特别是在诸如数据中心之类的大型网络中
  • 诸如(重复sdh(同步数字层次结构)[470]复用部分开销所需的字节或比特定向
  • 功能已被充分理解和标准化
  • 控制r故障容限

这不仅可以减少控制平面的开销,包括流量和计算,还可以通过在数据平面中保留基本的网络功能来提高网络效率。

Resilience

实现弹性通信是网络的首要目标,因此,sdn的可用性预计将与legacy和任何新的替代技术一样。作为sdn的分离控制体系结构通常会被质疑,质疑它们应对可能危及控制到数据平面通信从而导致“无脑”网络故障的实际弹性能力。实际上,特定sdn元素的故障不应该导致可用性的损失。在考虑关键控制平面功能时,将sdn控制平面功能从盒子内部重新定位到远程、逻辑上集中的位置是一个挑战。openflow网络的恢复能力取决于数据平面的容错能力(与传统网络一样),也取决于集中控制平面功能的高可用性。因此,由于体系结构的不同部分可能出现多种故障,sdn的恢复能力具有挑战性。目前在构建和操作容错sdn方面缺乏足够的研究和经验。

Scalability

可扩展性从一开始就是sdns关注的主要问题之一,这也是一个需要在任何系统中解决的问题,不仅是在传统网络中,显然也是sdn环境下的一个重要讨论问题,而sdns中大多数可扩展性问题都与控制平面和数据平面的分离有关。大规模网络中,控制器将需要能够每秒处理数百万个流,并且不影响其服务质量。因此,控制平面上的这些开销和流上设置延迟(是SDN中两个主要的缩放关注点。

Performance evaluation

正如本文所介绍的,硬件和软件供应商已经在不同类型的网络中部署了几个OpenFlow实现,从小型企业到大型数据中心。因此,在不久的将来,在支持sdn的网络上进行的实验将会越来越多,这自然会带来新的挑战,因为有关sdn性能和可伸缩性的问题尚未得到适当的研究。了解sdn概念的性能和局限性是在生产网络中实现sdn的必要条件,目前对openflow和sdn体系结构的性能评估研究很少,虽然仿真研究和实验是最广泛使用的性能评估技术之一,但分析建模也有其自身的优点。

Security and Dependability

针对金融机构、能源设施、政府单位和研究机构的网络攻击正成为全球各国政府和机构最关注的问题之一。不同的事件,如stuxnet,已经显示了威胁的持续性,这些攻击能够破坏一个国家的广泛基础设施,这必然是一个重大和令人关切的问题。正如预期的那样,执行这些攻击的最常见方法之一是通过网络,或者是通过因特网,或者是通过局域网。它可以用作攻击的简单传输基础设施,也可以用作增强攻击影响的增强武器。例如,高容量网络可用于发起大规模攻击,即使攻击者在其场所只有低容量网络连接。由于网络攻击的危险性和当前数字威胁的前景,安全性和可靠性是SDN的首要任务。

  • OpenFlow security assessment

在支持openflow的网络中,已经发现了一些安全问题。从Stride方法学开始,可以识别对启用OpenFlow的网络的不同攻击,表十四总结了这些攻击。

  • Countermeasures for OpenFlow based SDNs

可以采取多种对策来减轻sdns中的安全威胁。表十五总结了可应用于支持sdn/openflow的网络的不同元素的若干对策。

 Migration and Hybrid deployments

sdn承诺提供更简单的计算机网络设计、操作和管理,但在增量可部署性、健壮性和可伸缩性方面的挑战使其面临危险。主要的sdn采用挑战涉及由于sdn自动化能力和“层/域模糊”的一阶(和二阶)影响而可能出现的组织障碍。预计会有一定程度的人为阻力,可能会影响SDN的决策和部署过程,特别是那些将SDN的控制重构视为对当前控制和指挥链,甚至对其工作安全的风险的人。

Meeting carrier-grade and cloud requirements

许多运营商级基础设施提供商(如NTT、AT&T、Verizon、Deutsche Telekom)是SDN社区的核心,其最终目标是解决长期存在的网络问题。

表十六总结了运营商级网络和云基础设施提供商的一些要求。在这张表中,我们展示了当前的挑战和SDN的预期。正如我们之前看到的,一些预期已经成为现实,但许多仍然是悬而未决的问题。显然,sdn为电信和云提供商提供了一个机会,为他们的网络提供灵活性、成本效益和更轻松的管理。

SDN: the missing piece towards Software-Defined Environments

不同技术的融合使完全可编程的IT基础设施得以出现。从网络基础设施到应用程序,已经可以动态、自动地配置或重新配置整个IT堆栈,以更好地响应工作负载的变化。最近的进展使得几乎在所有基础设施层按需提供资源成为可能——IBM最近命名为软件定义环境(SDE)的IT基础设施的全自动配置和编排。这是一种新的方法,有望在简化IT管理、优化基础设施的使用、降低成本和缩短新思想和产品的上市时间方面具有巨大的潜力。在sde中,工作负载可以根据应用程序特性、安全性和服务级别策略以及最佳可用资源轻松、自动地分配给适当的it资源,从而提供连续、动态的优化和重新配置,以解决基础架构问题,以快速和灵敏的方式。表XVII总结了传统方法和SDES启用的一些关键功能。

sde的四个基本组成部分是:

  • 软件定义网络(sdn)
  • 软件定义存储(sds)
  • 软件定义计算(sdc)
  • 软件定义管理(sdm)

6.CONCLUSION

传统的网络复杂且难以管理,其中一个原因是控制平面和数据平面是垂直整合的,并且是特定于某些供应商。另一个一致的原因是典型的网络设备也与产品线和版本紧密相连,换言之,每一系列产品都可能有其自己的特定配置和管理接口,这意味着产生产品更新或升级的周期很长。所有这些都给网络基础设施所有者带来了供应商锁定问题,也对变革和创新造成了严重限制。

软件定义的网络(sdn)为解决这些长期存在的问题创造了机会。sdn的一些关键思想是通过开放的南向接口在转发设备中引入动态可编程性,控制和数据平面的分离,以及通过“网络大脑”的逻辑集中实现网络的全局视图。虽然数据平面元件变得哑巴,但高效和可编程的包转发设备,控制平面元件现在由单个实体、控制器或网络操作系统表示。实现网络逻辑的应用程序运行在控制器之上,与传统网络相比,开发和部署要容易得多。从全局的角度来看,策略的一致性很容易实施。

sdn代表了网络发展和演进的一个重大范式转变,它带来了网络基础设施创新的新步伐。尽管最近有人试图调查网络史上的这一新篇章,但据我们所知,文献仍然缺乏对sdn的组成部分、概念和挑战的单一、广泛和全面的概述。为了解决这一问题,本文采用分层的方法,系统地剖析了软件定义网络的概念、思想和组成部分,涵盖了现有的各种解决方案以及未来的发展方向。我们首先将这一新模式与传统网络进行了比较,并讨论了学术界和业界如何帮助塑造软件定义的网络。

遵循自下而上的方法,我们对SDN问题的八个基本方面进行了深入的概述:

  • 硬件基础设施
  • 南向接口
  • 网络虚拟化(转发设备和网络操作系统之间的管理程序层ms)
  • 网络操作系统(sdn控制器和控制平台)
  • 北向接口(提供给网络应用程序的通用编程抽象)
  • 使用特殊用途库和/或编程语言和编译器提供的切片技术的虚拟化
  • 网络编程语言
  • 网络应用程序。

SDN已经成功地为下一代网络铺平了道路,催生了一个创新的研发环境,促进了在以下几个领域的进步:

  • 交换机和控制器平台设计
  • 设备和架构的可扩展性和性能的演变
  • 支持安全性和可靠性运动。

在不久的将来,我们将继续见证围绕SDN的广泛活动。需要进一步研究的新课题有:

  • 向sdn的迁移路径
  • 向运营商传输网络扩展sdn
  • 实现networkas-a-service云计算模式或软件定义环境(sde

因此,随着这一新模式的发展,我们希望从networking/sdn社区获得反馈,使其成为一个“实时文档”,并根据社区反馈进行更新和改进。为此,我们建立了一个github页面2,并邀请读者加入我们的共同努力。

到此本文结束,我的第一次翻译结束,后续还要继续修改N次,不说了,开肝

猜你喜欢

转载自www.cnblogs.com/chelinger/p/11484438.html