SDN学习路径——SDN架构

尚景焕
2023-12-01

目录

一、SDN定义

二、SDN与传统网络的区别与意义

三、ONF组织的SDN体系架构

四、ONF组织定义意义

五、SDN的数据控制分离的可行性

六、传统控制平面和数据平面概述

七、传统控制平面

八、传统数据平面 

九、网络弊病和数控分离重要性

十、SDN的理想模式

十一、网络可编程性理解


一、SDN定义

SDN是一种数据控制分离、软件可编程的新型网络架构,采用了集中(逻辑集中)式的控制平面和分布式的转发平面,两个平面相互分离,控制平面利用控制转发通信接口对转发平面上的网络设备进行集中式控制,并提供灵活的可编程能力,也就是说SDN架构分为三层:业务层、控制层、转发层。

控制平面通过控制转发通信接口对网络设备进行集中控制,这部分控制信令的流量发生在控制器和网络设备之间,独立于终端间通信产生的数据流量,网络设备通过接受控制信令生成转发表,并据此决定数据流量的处理,不再需要使用复杂的分布式网络协议来进行数据转发。

SDN为了解决传统网络针对跨运营商场景以及网络规模动态变化等因素管理配置复杂的情况,以网络设备的FIB表为界分割数据控制平面,其中交换设备只是一个轻量的、哑的数据平面,保留FIB和告诉交换转发能力,而上层的控制决策全部由远端的统一控制器节点完成。

二、SDN与传统网络的区别与意义

SDN与传统网络的最大区别就在于它可以通过编写软件的方式来灵活定义网络设备的转发功能。在传统网络中,控制平面功能是分布式地运行在各个网络节点(Hub/交换机/路由器)中的,因此新型网络功能的部署需要所有相应网络设备的升级,往往导致网络创新难以落地。而SDN将网络设备的控制平面与转发平面分离,并将控制平面集中实现,这样新型网络功能的部署只需要在控制节点进行集中地软件升级,从而实现快速灵活地定制网络功能

另外,SDN体系架构还具有很强的开放性,它通过对整个网络进行抽象,为用户提供完备的编程接口,让用户可以根据上层的业务与应用个性化的定制网络资源来满足其特有的需求。由于开放可编程的特性,SDN有可能打破某些厂商对设备、协议、软件等方面的垄断。

SDN不是网络协议,而是一种网络架构,它包含多种接口协议。

SDN的创举在于,他认为数据和控制平面可以运行在物理距离交院的两个设备上,并通过一个开放额接口协议相互连接。这样的模型也会有一些性能方面的问题,如转发前等待远程处理是否会影响转发效率,控制平面的可扩展性是否能得到保证等,这些都是数据控制分离特性中不可避免的部分。

三、ONF组织的SDN体系架构

ONF作为SDN最重要的标准化组织,自成立开始们就一直致力于SDN体系架构的标准化,它提出的系统架构对SDN的技术发展产生了很大影响。本节主要分析的是ONF组织提出的SDN系统架构。

ONF认为,SDN的最终目标是为软件应用提供一套完整的编程接口,上层的软件应用可以通过这套接口控制网络中的资源以及经过这些网络资源的流量,并能按照应用需求灵活的调度这些流量。

ONF组织定义的系统架构共由四个平面组成,即数据平面、控制平面、应用平面三个平面以及右侧的控制管理平面。各平面使用不同的接口协议进行交互。

(1)数据平面

由若干网元构成,每个网元可以包含一个或多个SDN Datapath。每个SDN Datapath都是一个逻辑上的网络设备,它没有控制能力,只是单纯用来转发和处理数据。它在了逻辑上代表全部或部分的物理资源。一个SDN DATAPATH包含控制数据平面接口代理、转发引擎表和处理功能三部分。

(2)控制平面

SDN控制器是一个逻辑中的实体,它主要负责两个任务,一是将SDN应用层请求通过控制层的控制转换到SDN DataPath,二是为SDN应用提供底层网络的抽象模型(可以是状态、事件、时间、wangl和数据)。一个SDN控制器包含北向接口代理(NBI Agent)、SDN控制逻辑以及控制数据平面接口驱动(CDPI Driver)三部分。SDN控制器值要求是逻辑上完整,因此它可以由多个控制器示例协同组成,亦可以是层及时的控制器集群,从地理位置上将,既可以是所有控制器示例在同一位置,也可以是多个实例分散在不同的位置。

SDN控制器负责收集网络的实时状态,将其开放并通知给上层应用,同时把上层应用程序翻译成更为底层、低级的规则或者设备硬件指令下发给底层网络设备。

考虑到可扩展性、可靠性等问题,SDN控制器可以不是物理上集中的,而是可以通过分布式的多个控制器示例系统工作来实现逻辑上的集中。控制策略建立在整个网络视图之上,不再是传统的分布式控制策略,控制平面演变成了一个单一的、逻辑集中的网络操作系统,这个操作系统可以实现对底层网络资源的抽象隔离,并在全局网络视图的基础上有效解决资源冲突和高效分配问题

(3)应用平面

若干SDN应用组成,通过北向接口与SDN控制器进行交互,也就是第二层控制平面交互,即这些应用能够通过可编程方式将需要请求的网络行为提交给控制器。一个SDN应用可以包含多个北向接口驱动,北向接口驱动可以被封装成为更高级的。

(4)管理平面

负责静态的工作,比较适合在以上平面外实现,比如对网元进行配置,指定SDN datapath的控制器,同事负责定义控制器以及SDN应用能控制的范围即配置策略监控性能,与应用层签订服务等级协议。

代理为南向,驱动为北向。

(5)SDN控制数据平面接口(CDPI)

对所有的转发行为进行控制、设备性能查询,统计报告、事件通知,是SDN很重要的价值所在,是一个开放的,与厂商无关的接口。

(6)SDN北向接口(NBI)

负责主要提供抽象的网络视图,并让应用可以直接控制网络的行为,其中包含从不同层次对网络及功能进行的抽象,这个接口也应该是一个开放的、与厂商无关的接口。

四、ONF组织定义意义

ONF组织所定义的SDN体系架构最突出的特点就是标准化的南向接口协议,它希望所有的网络设备都能实现一个标准化的接口协议,这样控制平面和有应用平面就不在依赖底层具体厂商的交换设备,控制平面可以使用标准的南向接口协议来控制底层数据平面的设备,从而任何实现了这套标准化南向接口协议的设备都可以进入市场并投入使用。交换设备生产厂商可以专注于底层的硬件设备,甚至交换设备能够逐步向白盒化的方向发展。

五、SDN的数据控制分离的可行性

从体系结构来说,传统网络设备的内部,节点内部的控制平面和数据平面实际上是相互分离的,控制平面的执行在独立的处理器或存储卡上,二数据平面的执行一般在 另一个处理器或存储卡上,二者还是在一个机箱里的,因此传统网络设备的数据和控制平面都是分布式的。

数据平面在机箱中网络节点中具备告诉硬件转发能力的显卡上,控制平面为了功能灵活经常运行在网络节点中可编程性良好的通用处理器 上,二者通过高速总线或光纤相连。

二者物理距近,但是实质上是分离的。

这是SDN的可行性。

六、传统控制平面和数据平面概述

控制平面的主要功能时间里本地的数据集合,一般被称为路由信息库RIB,RIB需要与网内气气他控制平面实力的信息保持一致,这一点通常使用分布式路由协议如OSPF来完成。接下来控制平面需要根据RIB创建转发表,用于指导设备出入端口之间的数据流量转发。

转发表通常被称为转发信息库FIB,FIB需要经常在设备的控制平面和数据平面之阿金进行镜像,以保证转发行为与路由决策一致。因此,FIB实际上是两个平面之间连接的纽带。

数据平面的主要功能是根据RIB创建的FIB进行数据的告诉转发。另外,数据平面还可以根据需要处理的一些服务功能,如较短的时间侦测时间等,这是因为某些服务有非常严格的性能需求,需要放数据平面以保证快速执行。

七、传统控制平面

传统网络设备的控制平面根据功能层面细分来讲,可以分为二层控制平面、三层控制平面以及跨二/三层控制平面等几类。

二层控制平面主要关注硬件或物理层地址,如MAC地址,但是学习MAC地址的行为、保证无环图的机制(如最小生成树协议STP)、对BUM(广播、位置淡泊和多播)流量的泛洪等行为,都对自身扩展性提出挑战。

最短路径桥接SPB。

二层网络中有大量的终端主机,在使用广播协议的情况下可扩展性较差。问题核心就是终端主机在迁移时,转发表的快速更新。二层网络更关注MAC地址的可达性,但是MAC地址太多了。

三层控制平面完成网络层寻址,转发主要关注网络地址可达性,具体来说是一个可达的目的IP地址前缀,这包括关于单播和多播的多个地址族的网络前缀。

三层网络主要用于分割或连通二层网络,从而解决二层网络规模受限的问你题。具体来说,一些代表IP子网的二层交换机通常始于三层路由器连接在一起以形成较大规模的网络,这些较大规模的网络间通过网关路由器连接。

在大多数情况下,路由器仅在三层网络之间传递数据流量,只有得知报文已经到达目标主机所在的三层网络时,才会在二层将数据转发给特定的目标主机。QUESTION.

网络,从而解决二层网络规模受限的问你题。具体来说,一些代表IP子网的二层交换机通常始于三层路由器连接在一起以形成较大规模的网络,这些较大规模的网络间通过网关路由器相连接。

八、传统数据平面 

数据平面的首要工作是通过一系列链路级操作采集传入的数据分组,并执行基本的完整性检查。接下来,数据平面将查找采集传入的数据分组,并执行基本的完整性检查,数据平面将查找FIB表(FIB表已通过控制平面生成,并通过镜像复制到数据平面),识别数据分组的目的地址,这样的流程被称为快速数据分组处理。这里的快速数据分组处理主要体现在不再需要每次都到控制平面进行查询匹配,从而有效节省了处理时间。当然当报文不能匹配已有规则时,这些数据分组将会被发送到控制平面进行处理。

数据平面的查表采用硬件查表和处理器查表两类技术,依性能需求而定。

从数据平面进行查找后的下一步典型动作是转发(也存在特殊情况,如多播时下一个动作是复制)、丢弃、重新标记、计数和排队,这些动作也可以组合和链接到一起。在某些情况下,转发判决返回一个本地端口,说明流量目的地是本地控制平面运行的进程,如OSPF或BGP。这些数据分组由此离开了硬件转发路径,使用内部通信信道转发到路由器的处理器。这个路径通常是较低吞吐量的路径,因为它不适合高吞吐量的数据分组转发。

除了正常转发功能,数据平面还可以实现一些如访问控制列表和QOS策略等的辅助功能。

在传统网络设备上进入功能应用的通用实例:解密,例如IPSEC->输入ACL策略->输入QOS策略->计数->重定义/基于策略的路由(PBR)->路由。

九、网络弊病和数控分离重要性

采用Internet的“尽力而为”模式的Internet的最大问题之一就是难以保证臣在业务的服务质量,也缺号对网络状态的感知和控制,这些特点决定了互联网只能用间接地方法解决一些网络问题,例如把不断审计路由器交换机的能力,扩大骨干网带宽,用轻载方式(冗余带宽)部分服务质量(QOS)等,这种模式既不够经济高效,也不具备可控客观性,因此学术界和产业界不断涌现对互联网进行改进的方案,如ATM网络和主动网络等,这些或多或少都是用了数控分离的管控策略。

十、SDN的理想模式

SDN的理想模式是将控制平面从网络设备中完全剥离,放置在一个远端的集中节点,源端集中节点上的全局调度控制结合本地的快速转发,可以使网络只能充分提升,使网络功能的灵活性最大化。这里控制平面是严格集中的,关于实现性和性能上却没有探讨过多。

SDN的思想优点在于:

(1)全局集中控制和分布告诉转发,可以实现控制平面的全局优化和实现高性能的网络转发能力。

(2)灵活可编程与性能的平衡:以FIB为分级诶按实际上降低了SDN的编程灵活性,数控分离的设计更加平衡,没有暴露商用设备的告诉转发实现细节,虽然OVS和CLICK等软件路由器可编程性更好。

(3)开放性和IT话:可以降低网络设备和控制软件的成本。当前的网络设备是捆绑控制平面功能软件一起出售的,软件开发由网络设备公司完成对用户不透明。

SDN的问题包括以下几种:

(1)可扩展性问题:这是SDN面临的最大问题,数据控制分离后,原本分布式的控制平面集中化了,即随着网络规模扩大,单个控制节点的服务能力极有可能成为网络性能的瓶颈。因此控制架构的可扩展性是数据控制分立后的主要研究方向之一。

(2)一致性问题 :在传统网络中,网络状态一致性是由分布式协议保证的,在SDN数据控制恩利后 ,集中控制器需要负起这个责任,如何快速侦测到分布式网络节点的状态不一致性,并快速解决这类问题,也是以后的主要方向之一。

(3)可用性问题:可用性是指网络无故障的时间占总时间的比例,传统网络设备室高可用的,即法相控制平面的请求会试时得到相应,一残次,网络比较稳定,但是数控分离后,控制平面网络的延迟可能胡调职数据平面可用性问题。

控制平面的功能包括用于处理网络控制注入可达性、负载均衡、访问控制、安全和接口配置灯光功能,有助于独立创罗德控制了逻辑,有助于实现更健壮更安全的网络,同时便于对异构网络进行有效管理。这是4D项目,GREENBURG提出的,QUESTION这个不算SDN。全网视图。打破了传统网络的分布式框架,QUESTION总觉得分布式框架也得看看呢。

十一、网络可编程性理解

网络可编程性最后粗是指网络管理人员可以通过命令行对设备进行配置,后来有了可编程路由器、NetFPGA设备,这些设备的可编程性主要是对设备硬件电路及的可编程,即开发人员是通过编译代码来直接控制这些硬件来实现自己饿协议或者功能。这种可编程的额能力是对某台设备而言的,是一种处于最底层的可编程能力,相当于计算机中汇编等级的低级编程语言。

SDN的网络可编程性则是不同的。管理者可以通过SDN中这种高级的编程能力实现与网络设备的双向教化,通过软件可以更加方便灵活的管理网络。这种可编程性是基于整个网络而不是某台设备的,它是对网络整体功能的抽象,让程序能通过这种抽象来为网络添加新的功能。例如管理人员可能希望编写一个软件,这个软件能够根据实施的链路负载情况自动配置路由器的转发策略,这就是SDN可编程能力的体现。这种高级的编程语言相当于java等高级语言。

 

 

 

 

 

 

 

 

 

 

 

 类似资料: