admin 管理员组

文章数量: 1184232

翻译来源来自论文,有删减。全文见https://gitee/oneslideicywater/sdn.git

概要

互联网的发展导致数字化世界的产生,万物互联。即使现在网络已经很普及,传统IP网络非常复杂而难以管理。不管是配置预定义策略,还是因为错误,负载和拓扑变动而重新配置都很困难。现有的网络是纵向集成的,意味着控制层和数据层在一起。

SDN(软件定义网络) [4], [5] 由此而生,打破纵向集成的僵局,将网络控制逻辑和底层路由器和交换机分开,使网络控制可以进行中心化管理,使网络可编程称为可能。

将网络策略和负责包交换的硬件和流量转发的实现分开是实现灵活性的关键。通过将网络控制相关的问题分解为易处理的子问题,SDN可以很容易地引入新的网络抽象概念,简化网络管理。本文我们对SDN做了综合性的调查,将基本概念和与传统网络的区别一一(一 _一这里显示有问题,读yi yi)道来。我们从SDN的发殇开始,到全球进行的标准化活动。下面我们将使用一种自底向上,分层的方式阐述构成SDN基础设施的基本组成部分。深入分析基础硬件,南向北向接口,网络虚拟层,网络操作系统(实为SDN控制器),网络编程语言和应用。另外,我们也会关注一些通用问题,如网络调试和故障定位。讨论对SDN的一些研究和挑战。特别地,我们处理几个控制平台设计相关的问题----主要在弹性,可扩展,性能,安全和独立性等方面。最后,我们讨论下SDN在完全软件定义生态圈的一个定位。

Index Terms—Software-defined networking, OpenFlow, network virtualization, network operating systems, programmable
networks, network hypervisor, programming languages, flowbased networking, scalability, dependability, carrier-grade networks, software-defined environments.

引言

互联网的发展导致数字化世界的产生,万物互联。即使现在网络已经很普及,传统IP网络非常复杂而难以管理【1】。为了实施比较高级的网络策略,网络管理员不得不以厂商定义的语言(每个厂商都不同)去管理每个设备。除了配置的复杂,网络环境不得不容忍故障频出和负载不断动态变化的环境,自动重新配置和响应机制基本上在现有的IP网络环境中不存在,在这种环境下实施策略是一件灰常有挑战性的工作。

现有网络的纵向集成方式使得控制层(控制网络数据包的路由)和数据层(根据控制层决策转发数据包)糅杂到一起。严重影响到网络的灵活性。从IPv4向IPv6的过渡十年前已经开始做了,现在还没完成。不过就是一次普通的协议升级,竟消耗数十年之久。看到这些现状,我们认识到纵向集成方式已经妨碍到网络的发展,因为它导致网络本身存在极大的惯性(亦指不灵活性)。
同样改变现有因特网架构(替代IP)是不现实的【2】【3】。因此,IP网络的运维一直消耗巨大的资金。

SDN 【4】【5】是最近出现的网络范式,意在改变现有网络基础设施的现状。首先,它打破纵向集成方式,使得控制层和数据层分离。其次,这种分离导致网络交换机成为简单数据包转发设备,而控制逻辑由中心化的控制器来实现。这使得网络再配置和路由策略的实施变得更容易【6】。需要强调的是中心化的可编程模型不视专有硬件(实现控制中心功能的专有设备)为基本条件【7】。实际上,为了保证可用性,扩展性还是性能,我们都不应该排出使用硬件的可能。SDN网络设计在生产环境级别还是鼓励使用物理的分布式的实现控制层功能的设备的【7】【8】。

控制层和数据层以定义良好的API相互交流。如Fig 1所示,这个接口称为南向接口。这种API的一个很典型的例子就是OpenFlow【9】【10】。OpenFlow交换机中有数个记录包交换策略的表(称为流表)。每个规则都是流量拓扑的一个子集,执行几个特定的动作(如丢弃,转发,修改etc)。这些规则是控制分发的,OpenFlow交换机可以使用这些规则称为一个路由器,交换机,防火墙甚至以其他角色。(负载均衡器,流量整合器,还有一些其他类似的中间设备)

SDN和OpenFlow起初只是学术性实验【9】,但后来获得业界的巨大关注。很多网络设备厂商已经声称支持OpenFlow。
SDN风头正劲,Google, Facebook, Yahoo, Microsoft, Verizon,Deutsche Telekom fund ,Open Networking Foundation (ONF) 【10】正参与其相关标准制定。中心化控制,这个噱头导致大批企业踊跃加入,Google已经在全球数据中心成功部署SDN网络并极大减少网络维护费用【8】。VMware的网络虚拟化平台NSX 【12】,是另一个例子。世界IT巨头也相继加入SDN协会例如ONF、OpenDaylight initiative 【13】。

最近几篇论文【14】【15】【16】研究了特定的几个方面,OpenFlow的简短叙述也可以在【14】【15】中找到。【16】叙述了SDN的专业术语。【17】叙述了一些促使SDN产生的一些概念和基础。

Section IV 是本文的重点,讨论了SDN基础设施的基本组成。
SDN的设计原则遵循计算机科学中出现已久的概念, separation of concerns。(你在OSI七层模型中也看的出来,每层抽象仅负责完成本层的功能,因此相关专家可以独自发挥自己的特长,整个体系各层相关研究可以同时独立进行)。SDN也分成好几层:

  1. 硬件基础设施
  2. 南向接口
  3. 网络虚拟层(处于网络操作系统和转发设备间的管理程序)
  4. 网络操作系统(SDN控制器以及相关组件)
  5. 北向接口(向上层提供通用编程抽象,主要使用者为网络app)
  6. 编程语言的编译器提供的虚拟化
  7. 网络编程语言
  8. 网络app

网络环境现状

计算机网络分成三层:数据层,控制层,管理层,见Figure 3.数据层对应网络设备,负责转发数据。控制层对应填充数据层转发表的协议。管理层对应一些软件服务,比如基于SNMP的工具【18】,远程监控和配置控制层功能。路由策略定义管理层,控制层负责实施策略通过分发路由表,数据层通过转发数据来执行策略。

传统IP网络中,控制层和数据层紧密耦合,高度去中心化。这在网络被设计之初是一个重大的决定,确实也在历史上发挥了一定的作用。但是随着带宽和端口密度的增大,结果造成一个复杂,静态的架构,很多相关研究也提到过(e.g., [1], [3], [2], [6], [19]).。
这也是为什么传统网络难以管理的原因。

网络错误配置在如今的网络环境下很常见。比如1000个配置错误在BGP路由器上被发现【20】。一个错误配置的网络会导致很多意想不到的行为(包括,包流失,循环转发,意外路径,协议违反)。确实,虽然很少情况下会这样,但是一个错误配置的路由器的确会危害到整个因特网的正确运行长达数小时之久。【21】【22】

为了方便网络管理,小部分厂商提供专用解决方案。包括特殊硬件设备,操作系统和控制程序。网络管理员需要学习不同的厂商方案和术语。这些现象也阻碍了很多新特性和新型服务的发展(如访问控制,负载均衡,流量工程,能源效率控制)。为了改善这种情况,防火墙,入侵检测系统,深度网络包检测引擎大行其道。最近一项研究对57家企业进行调查,几乎这些中间件的数量和网络中路由器的数量差不多,这些中间设备导致复杂的网络,维护难度剧增。

什么是SDN

  1. 控制平面和数据平面解耦,控制功能从网络设备移除,网络设备只负责包转发。
  2. 转发决策时基于流的,而不是基于目标地址。流被定义为一个字段集合和一个动作集合。字段集合由数据包里面的一些字段组成。在SDN/OpenFlow上下文中,流就是源端到目的端的数据包序列。一个流中所有数据包被转发的策略都是相同的【25】【26】。流抽象出来可以将不同网络设备的行为统一看待,不管是路由器,交换机还是防火墙和其他中间网络设备【27】。基于流的编程提供了卓越的灵活性。
  3. 控制逻辑转移到外部实体,即所谓的SDN控制器或网络操作系统(NOS)。网络操作系统是运行廉价服务器上的软件,它提供一些基本的资源和抽象,可以促进对转发设备基于中心化的全局网络拓扑进行编程。它的作用因此和传统操作系统很类似。
  4. 网络可编程通过基于NOS编写软件应用实现,就像在普通操作系统上写App一样。这就是SDN最基本的价值观。

这些定义可以带来很多好处:

  1. 程序配置网络比人工配置要好太多
  2. 程序可以实现自动调节网络拓扑,并且使得更复杂的配置方式成为可能。

根据【5】所引入的SDN概念,SDN可以定义为三个基本的抽象: 转发,分布,指定规格

理想情况下,转发这个抽象概念允许控制程序实现任何想得到的转发行为,同时隐藏底层硬件细节。OpenFlow就是这种抽象的一种实现,可以看成操作系统的“驱动程序”。

分布这个抽象使得SDN应用可以将分布式网络控制系统在逻辑上看成一个。比如,我要在设备上安装一个命令,那么只需要发送一条命令,所有处于分布式环境中的网络设备都应该执行命令安装。再比如,我要去获取网络设备的状态,那么所有网络设备的状态都应该报告过来。一般这个功能由NOS实现。

最后一个抽象就是指定规格( specification,这个实在名词在这里无力翻译),你只需要描述你想要什么样的网络策略,而不用实现它。这可以通过虚拟化方案和网络编程语言实现,这两种工具可以使得网络控制应用通过网络操作系统提供的网络抽象模型将逻辑配置映射为真正的配置。 Figure 4 描述了SDN架构,概念和组成部分。

传统架构与SDN架构对比

传统网络架构控制层和数据层紧密耦合,如Figure 5所示,导致新的网络功能灰常难,无论是开发还是部署。因为这意味着所有网络设备的控制层都需要改变,比如一个固件升级还是其他升级。因此,新的网络功能通常通过引入昂贵的专有中间设备来实现,比如负载均衡设备,IDS(入侵检测系统),防火墙。这些中间设备需要规划放在整个网络拓扑的什么位置(比如防火墙放在边界路由,部门IDS要放在部分边界交换机),这使得以后更改网络难上加难,我太难了。


相比来讲,SDN架构场景下,这些中间网络设备可以作为网络控制应用运行于SDN控制器(也叫网络操作系统)之上。
这会带来很多好处:

  1. 实现网络方案会更加容易,因为网络编程语言以及网络操作系统提供的抽象,甚至可以实现模块复用。
  2. 所有应用可以基于同一全局网络拓扑进行编程,使得决策更加一致。
  3. 应用间集成协作更加便捷【29】,你可将LB和IDS接合起来,设置哪个优先级更高等。
  4. 不用考虑一个防火墙放到什么位置,你可以随时对拓扑中任何一个地方下手,一切都是软件定义的,改动当然很方便。

Terminology

To identify the different elements of an SDN as unequivocally as possible, we now present the essential terminology
used throughout this work.
Forwarding Devices (FD):
Hardware- or software-based data plane devices that perform a set of elementary operations. The forwarding devices have well-defined instruction sets (e.g.,flow rules) used to take actions on the incoming packets(e.g., forward to specific ports, drop,forward to the controller,rewrite some header). These instructions are defined by southbound interfaces (e.g., OpenFlow [9], ForCES [30], ProtocolOblivious Forwarding (POF) [31]) and are installed in the forwarding devices by the SDN controllers implementing the southbound protocols.
Data Plane (DP): Forwarding devices are interconnected through wireless radio channels or wired cables. The network infrastructure comprises the interconnected forwarding devices, which represent the data plane.
Southbound Interface (SI): The instruction set of the forwarding devices is defined by the southbound API, which is part
of the southbound interface. Furthermore, the SI also defines the communication protocol between forwarding devices and
control plane elements. This protocol formalizes the way the control and data plane elements interact.
Control Plane (CP): Forwarding devices are programmed by control plane elements through well-defined SI embodiments.
The control plane can therefore be seen as the “network brain”.All control logic rests in the applications and controllers,
which form the control plane.
Northbound Interface (NI): The network operating system can offer an API to application developers. This API represents a
northbound interface, i.e., a common interface for developing applications. Typically, a northbound interface abstracts the
low level instruction sets used by southbound interfaces to program forwarding devices.
Management Plane (MP): The management plane is the set of applications that leverage the functions offered by the
NI to implement network control and operation logic. This includes applications such as routing, firewalls, load balancers,
monitoring, and so forth. Essentially, a management application defines the policies, which are ultimately translated to
southbound-specific instructions that program the behavior of the forwarding devices.

----待续!~~~~这个文章可真尼玛的长,累死爸爸了---------------------

本文标签: defined software Networking Survey Comprehensive