《软件定义网络:基于OpenFlow的SDN》一一3.1 SDN控制器

3.1 SDN控制器

如后面的图3-1所描绘的那样,在软件定义网络(SDN)中,特别是OpenFlow中,控制平面和数据平面是分离的,我们可以把两者类比作操作系统和计算机硬件,OpenFlow控制器(就好比操作系统)提供一个OpenFlow交换机(就好比计算机硬件)的编程接口,利用这个编程接口,就可以开发网络应用,完成控制和管理任务,并提供新的功能。SDN中的控制平面,特别是OpenFlow的控制平面,在逻辑上是集中化的,因此在开发网络应用的时候,可以把网络视为一个系统。
由于采用应变式的(reactive)控制模型,每当需要做出决策时,OpenFlow交换机都必须询问OpenFlow控制器,比如,当一个新的数据包流到达OpenFlow交换机(即发生Packet_in事件)时。由于采用基于流的控制粒度,每当把一个新的流的第一个数据包转发给控制器进行决策(例如,询问转发还是丢弃)时,都会由于延迟带来性能上的些微下降,而该流中的后续数据包流量将会以交换机硬件的线速转发。尽管在很多情况下,第一个数据包的延时是可以忽略不计的,但是,如果中心控制器在地理上相距较远,大多数流的持续时间又比较短暂的话(譬如,仅由一个数据包所构成的流),就有可能是一个值得关注的问题。在OpenFlow中,还可以采取另一种主动式的(proactive)解决方案,就是将决策的策略规则从控制器推送到交换机中。

图3-1 SDN解决方案中控制器的作用
尽管这种模式简化了控制、管理和策略的执行,然而却必须在控制器和OpenFlow交换机之间维持一个严格的绑定关系,这种集中式的控制方式带来的第一个需要重视的问题就是系统的可扩展性,第二个问题是控制器的部署位置。根据目前多OpenFlow控制器实现方案(NOX-MT、Maestro和Beacon)的研究结果,在一个包括100 000台主机和多达256台交换机的大规模仿真网络上,经多次不同实验证明,所有的OpenFlow控制器都能够以至少每秒50 000个新的流请求的处理速度运行。此外,新型OpenFlow控制器目前也在研发中,如Mc-Nettle(http://haskell.cs.yale.edu/nettle/mcnettle/),它定位于超强的多核多服务器,能承担大型数据中心规模的负载流量(譬如每秒2千万个流请求,并可扩展至5000台交换机)。在传统的数据包交换网络中,每个数据包中都包含了交换机为数据包进行路由决策所需要的信息,然而,大多数应用程序所发送的数据都是由多个数据包所组成的数据流,而OpenFlow的控制粒度就是基于流,而不是数据包的,在数据平面(OpenFlow交换机)上,当对一个流进行控制时,基于流的第一个数据包所做出的决策可以施加于流中后续的所有数据包。通过将流进行组合,还可以进一步减小开销,比如,将两台主机之间的所有流量聚合,然后对汇聚的流实施控制决策。
在部署OpenFlow(以及SDN)时,可以采用多控制器来降低延时,提高可扩展性和容错性。OpenFlow允许将多个控制器与一个交换机相连接,这样,当发生失效事件时,后备控制器可以进行切换。在这个方面,Onix和HyperFlow作了进一步的尝试,其解决方案维持了一个逻辑上集中而物理上分布的控制平面。通过启动本地控制器之间的相互通信,降低查表的开销,而对应用程序写入时,依然能够维持一个简化的、集中式的网络视图。这种方案主要存在这样一个潜在问题,即需要在整个分布式系统中维持一致的状态,一旦不能维持全局网络状态的一致性,而网络应用仍以为自己的网络视图是正确的,它就会对当前网络状态作出不正确的反应。
回顾我们之前提到的有关操作系统的类比,一个网络控制器发挥着网络操作系统的作用,它至少需要实现两个接口:允许OpenFlow交换机和控制器通信的南向接口,以及为网络的控制和管理应用提供的应用编程接口(API),即北向接口。目前已有的南向接口是OpenFlow协议(见第2章),它是SDN南向接口的早期实现方案。外部的控制管理系统或者网络服务可能需要提取底层网络的相关信息、执行某些策略,或者控制网络行为的某个方面。此外,主OpenFlow控制器可能需要跟后备控制器共享策略信息,或者跨多个不同的控制域与其他控制器通信,虽然对于南向接口已有明确的定义(如OpenFlow或ForCES,参见http://datatracker.ietf.org/wg/forces/charter/),可以把它视为事实上的标准,然而,目前还没有被广泛认可的北向交互标准,人们仍倾向于从特定应用的用户用例出发实现北向接口。

时间: 2024-09-20 06:22:51

《软件定义网络:基于OpenFlow的SDN》一一3.1 SDN控制器的相关文章

面向云的软件定义网络与OpenFlow商业发展

在云计算时代,数据中心将成为我们应用和数据交付关键中心,用户从园区.远程分支点.无线和互联网不同位置访问数据与服务,连接这些服务的网络比以往来得更重要一些.云计算需要可靠的.横向扩展和高性能网络,从用户接入.互联网到数据中心.大规模部署虚拟化与云计算催生了以工作负载为中心的下一代数据中心网络,复杂的网络需要为工作负载提供端对端网络资源响应.如何应对业务快速响应需求是下一代数据中心网络人员不得不面对的挑战.以新观点来解决网络在新应用下的挑战,控制平面与转发平面分离,软件定义网络为人们提供了新思路和

各巨头聚焦OpenFlow和软件定义网络

一年多来,网络业一直都在讨论OpenFlow与软件定义网络(SDN).通过软件定义网络,工程师们将网络控制层与底层硬件分离,从而实现更精细的管理.他们也能够动态地分配虚拟交换,从而支持服务器虚拟化环境.问题是,虽然有很多的OpenFlow和软件定义网络应用程序, 但是许多用户仍然在等待具体的用例证明.他们还希望了解用OpenFlow语言编写的 众多应用程序是如何在现有网络硬件上使用的.本周,Tech Field Day在加利福尼亚举办的OpenFlow讨论会上,数据中心大户谷歌和雅虎以及思科和B

软件定义网络架构的应用层

软件定义网络(SDN)的目标是实现理想化的企业网络,将网络控制与物理网络拓扑分离,从而创造一种从中央管理控制器向所有交换机和路由器发送流量的环境.在软件定义网络环境中,这种基于软件的控制器必须具备网络资源和容量的端到端监控能力.通过网络的端到端视图,SDN控制器就能够成为网络应用程序和服务的特殊运行平台.OpenFlow是一种支持软件定义网络的 先进规范, 但是OpenFlow规范并没有完全确定软件定义网络是如何支持这些高级网络的.解决方法始于软件定义网络的架构,它是OpenFlow应用程序的基

软件定义网络与ADC的交集是什么?

软件定义网络(SDN)的整个概念是关于抽象化硬件以启用新类型的网络流.虽然很多 围绕SDN的早期讨论集中在路由器和交换机中,SDN其实并不止于此.SDN有很多用途,包括帮助Web内容优化(WCO)和应用交付控制器(ADC)业务等.近日,网络厂商Riverbed凭借其Stingray产品系列加入了web内容优化市场,该产品系列也包括应用交付控制器(ADC)功能.Riverbed公司产品营销主管Arpuva Dave表示其公司的Steelhead广域网优化技术最开始采用的是物理硬件.他指出,对于St

《软件定义网络:基于OpenFlow的SDN》一一3.2 已有的实现方案

3.2 已有的实现方案 目前存在不同的OpenFlow(以及SDN)控制器实现方案,我们将把它们作为现有开源项目的组成部分,放在第8章中详细介绍.本章内容主要集中在NOX.POX.NodeFlow.Floodlight(派生自Beacon)和OpenDaylight方面,通过这些实现方案介绍若干OpenFlow控制器,以及在开发网络应用时各种可选的编程语言.3.2.1 NOX和POX 第一个OpenFlow控制器是用C++编写的NOX(www.noxrepo.org),它同时还提供了用于Pyth

《软件定义网络:基于OpenFlow的SDN》一一导读

前 言 将网络管理功能从网络设备中分离出来是软件定义网络(Software Defined Networking,SDN)的基本特征.SDN是计算机网络模式的一个新的转变,它意味着将网络的控制功能(即控制平面)与数据转发功能(即数据平面)相分离,而且所分离出来的控制部分是可编程的.这种控制逻辑的迁移使得下层网络互连基础设施能够从应用层面上抽象出来,之前的控制逻辑是紧密集成到网络设备(如以太网交换机)中的,现在则转变为可访问的逻辑意义上的集中式控制器.这一分离为构建一个更灵活的.可编程的.与厂商无

《软件定义网络:基于OpenFlow的SDN》一一1.1 理解软件定义网络——OpenFlow特色

1.1 理解软件定义网络--OpenFlow特色 软件定义网络(Software Defined Networking,SDN)通常被认为是计算机网络领域中的创新概念,其目标是极大地简化网络控制和管理,通过网络的可编程性引导创新.通常,计算机网络的建设依赖于大量的网络设备(如交换机.路由器.防火墙等),以及在设备中嵌入实现的复杂网络协议(软件).网络工程师负责配置各种策略,以应对各种各样的网络事件和应用场景.他们需要手工地将这些高层策略转换为低层的配置命令,这些繁杂的任务通常只能通过有限的工具完

《软件定义网络:基于OpenFlow的SDN》一一第1章 OpenFlow概述

第1章 OpenFlow概述 为了让读者更好地理解OpenFlow的功能及其组成部分,了解如何利用它开发基于OpenFlow的网络应用,有必要简单介绍一下OpenFlow及其工作原理.在真正搭建支持SDN/OpenFlow的实验和开发环境之前,本章首先介绍所需要的知识.OpenFlow可以说是SDN概念的早期实现方案之一,所以,在了解OpenFlow之前,有必要先简单介绍一下SDN以及围绕SDN所展开的工作.

《软件定义网络:基于OpenFlow的SDN》一一2.4 用Mininet搭建OpenFlow实验环境

2.4 用Mininet搭建OpenFlow实验环境 Mininet是一个软件工具,可以借助它在一台计算机上仿真整个的OpenFlow网络.Mininet使用轻量级的基于进程的虚拟化技术(Linux网络名空间和Linux容器架构),能够在单一的操作系统内核上运行多个主机和交换机(如4096个),它能够创建内核级的和用户空间的OpenFlow交换机.用以控制交换机的控制器和主机,主机之间可以通过仿真网络进行通信.Mininet使用成对的虚拟以太网卡(virtual Ethernet,veth)连接