SDN

SDN(Software-defined Network,软件定义网络),在学习SDN之前,首先要了解控制平面和数据平面,网络层能够被分解为两个相互作用的部分,即数据平面控制平面,传统上控制平面路由选择协议(如OSPF、BGP)和数据平面转发功能已被实现成一个整体,位于一台路由器中。
数据平面:即网络层中每台路由器的转发的功能,该数据平面功能决定到达路由器输入链路之一的数据报如何转发到该路由器的输出链路之一。
控制平面:作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理。

SDN通过将这些控制平面功能作为一种单独服务,明确地分离数据平面和控制平面,控制平面功能通常置于一台远程“控制器”中。

两种重要地网络层功能:

  1. 转发。当一个分组到达某路由器地一条输出链路时,该路由器必须将该分组移动到适当地输出链路。
    将分组从一个输入链路接口转移到适当地输出链路接口地路由器本地动作,转发地时间尺度很短(通常为几纳秒),因此通常用硬件来实现。
  2. 路由选择。当分组从发送方流向接收方时,网络层必须决定这些分组所采用地路由或路径。计算这些路径地算法被称为路由选择算法,计算出路径之后会生成转发表
    确定分组从源到目的地所采取地端到端路径的网络范围处理过程,路由选择发生的时间尺度长得多(通常为几秒),因此通常用软件来实现。

1. 控制平面:传统方法

传统方法

路由选择算法决定了插入该路由器转发表的内容,路由选择算法运行在每台路由器中,并且在每台路由器中都包含转发和路由选择两种功能。
这是路由选择厂商在其产品中采用的传统方法,使用该方法,每台路由器都有一个与其他路由器的路由选择组件通信的路由选择组件。

2. 控制平面:SDN方法

SDN方法

该图显示了从路由器物理上分离的另一种方法,远程控制器计算和分发转发表以供每台路由器所使用。控制平面路由选择功能与物理的路由器是分离的,即路由选择设备仅执行转发,而远程控制器计算并分发转发表。远程控制器可能实现在具有高可靠性和冗余的远程数据中心中,并可能由ISP或某些第三方管理。路由器和远程控制器通过交换包含转发表和其他路由选择信息的报文来通信。

在SDN文献中,将网络的转发设备称之为“分组交换机”(或直接称为交换机),因为能够根据网络层源/目的地址、链路层源/目的地址以及传输层、网络层和链路层中分组首部字段做出转发决定。
OpenFlow是一个得到高度认可和成功的标准,它已经成为匹配加动作转发抽象、控制器以及更为一般的SDN革命等概念的先驱。匹配加动作转发表在OpenFlow中称为流表(flow table),它的每个表项包括:
1)首部字段值的集合,入分组将于之匹配。
2)计数器集合(当分组与流表项匹配时更新计数器)。
3)当分组匹配流表项时所采取的动作集合(action)。这些动作可能将分组转发到给定的输出端口,丢弃该分组、复制该分组和将它们发送到多个输岀端口,和/或重写所选的首部字段。

SDN体系结构有4个关键特征:
1)基于流的转发。SDN控制的交换机的分组转发工作,能够基于运输层、网络层或链路层首部中任意数量的首部字段值进行。分组转发规则被精确规定在交换机的流表中,SDN控制平面的工作是计算、管理和安装所有网络交换机中的流表项。
2)数据平面与控制平面分离。从上面两张图对比可以明显看出来。数据平面由网络交换机组曾,交换机是相对简单(但快速)的设备,该设备在它们的流表中执行“匹配加动作”的规则。控制平面由服务器以及决定和管理交换机流表的软件组成。
3)网络控制功能。位于数据平面交换机外部。SDN中的“S”表示“软件”,与传统的路由器不同,这个软件在服务器上运行,该服务器与网络交换机截然分开且与之远离。如下图所示,控制平面由两个组件组成:一个SDN控制器(或网络操作系统),以及若干网络控制应用程序。

SDN体系结构的组件

控制器维护准确的网络状态信息(如远程链路、交换机和主机的状态),为运行在控制平面中的网络控制应用程序提供这些信息;提供方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备。
4)可编程的网络。通过运行在控制平面中的网络控制应用程序,该网络是可编程的。这些应用程序代表了SDN控制平面的“智力”,使用了由SDN控制器提供的API来定义和控制网络设备中的数据平面。例如,一个路由选择网络控制应用程序可以决定源和目的地之间的端到端路径(例如,通过使用由SDN控制器维护的节点状态和链路状态信息,执行Dijkstra算法)。另一个网络应用程序可以执行访问控制,即决定交换机阻挡哪个分组。

SDN控制器和SDN网络控制应用程序

如上所示,SDN控制平面大体划分为两个部分,即SDN控制器和SDN网络控制应用程序。下图显示了一个通用SDN控制器的更为详细的视图。控制器的功能可大体组织为3个层次。


SDN控制器的组件

1)通信层:SDN控制器和受控网络设备之间的通信。如果SDN控制器要控制远程SDN使能的交换机、主机或其他设备的运行,需要一个协议来传送控制器与这些设备之间的信息。此外,设备必须能够向控制器传递本地观察到的事件(例如一个报文指示一条附属链路已经激活或停止,一个设备刚刚加入了网络),这些事件向SDN控制器提供该网络状态的最新视图。这个协议构成了控制器体系结构的最底层。
2)网络范围状态管理层。由SDN控制平面所做出的最终控制决定(例如配置所有交换机的流表以取得所希望的端到端转发,实现负载均衡,或实现一种特定的防火墙能力),将要求控制器具有有关网络的主机、链路、交换机和其他SDN控制设备的最新状态信息少交换机的流表包含计数器,其值也可以由网络控制应用程序很好地使用;因此这些值应当为应用程序所用。既然控制平面的终极目标是决定用于各种受控设备的流表,控制器也就可以维护这些表的拷贝。这些信息都构成了由SDN控制器维护的网络范围“状态”的例子。
3)对于网络控制应用程序层的接口。控制器通过它的“北向”接口与网络控制应用程序交互。该API允许网络控制应用程序在状态管理层之间读/写网络状态和流表。当状态改变事件出现时,应用程序能够注册进行通告。

SDN控制器被认为是“逻辑上集中”的,即该控制器可以被外部视为一个单一、整体的服务。但是在时间中这些服务和用于保持状态信息的数据库一般通过分布式服务器集合实现。

数据平面和控制平面交互的例子

说明

  • Dijkstra算法作为一个单独的程序来执行,位于分组交换机的外部。
  • 分组交换机向SDN控制器发送链路更新并且不互相发送。
    此例中,假设交换机s1和s2之间的链路断开;实现了最短路径路由选择,因此除了s3操作未改变外,s1、s2和s4的入和出流转发规则都受到影响。假定OpenFlow被用作通信层协议,控制平面只执行链路状态路由选择而不执行其他功能。


    SDN控制器场景:链路状态更新

    1)交换机s1经历了自己与s2之间的链路故障,使用OpenFlow“端口状态”报文向SDN控制器通报该链路状态的更新。
    2)SDN控制器接收指示链路状态更新的OpenFlow报文,并且通告链路状态管理器,由管理器更新链路状态库。
    3)实现Dijkstra链路状态路由选择的网络控制应用程序先前进行了注册,当链路状态更新时将得到通告。应用程序接收该链路状态更新的通告。
    4)链路状态路由选择应用程序与链路状态管理器相互作用,以得到更新的链路状态;它也会参考状态管理层中的其他组件。然后它计算新的最低开销路径。
    5)链路状态路由选择应用则与流表管理器交互,流表管理器决定更新的流表。
    6)流表管理器则使用OpenFlow协议更新位于受影响的交换机s1、s2和s4的流表项,其中s1此时将经s4将分组的目的地指向s2,s2此时将经中间交换机s4开始接收来自s1的分组,s4此时必须转发来自s1且目的地为s2的分组。

上面流程显示了SDN控制平面如何提供控制平面服务(此时为网络层路由选择),而该服务以前是以每路由器控制在每台路由器中实现的。SDN使能的ISP能够容易地将最低开销路径的路由选择转变为更加定制的路由选择方法。因为控制器的确能够随心所欲地定制流表,因此能够实现它喜欢的任何形式的转发,即只是通过改变它的应用控制软件。这种改变的便利性与传统的每路由器控制平面的情况形成对照,传统的情况必须要改变所有路由器中的软件,而这些路由器可能是由多个不同厂商提供给ISP的。
SDN革命正在导致颠覆性地替代专用的整体交换机和路由器(它们同时具有数据平面和控制平面)。类似地,称之为网络功能虚拟化(NFV)的通用SDN的目标是用简单的商用服务器、交换机和存储器来颠覆性地替代复杂的中间盒(例如用于媒体高速缓存/服务的具有专用硬件和专有软件的中间盒)。第二个重要研究领域是寻求将SDN概念从AS内部设置扩展到AS之间设置。

来源:计算机网络-自顶向下方法第七版。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容