sdn的形成与工作原理

2020-04-24 18:17:55 云杰通信 109

  sdn的形成与工作原理

  控制器部署时,推荐采用原来网络自治系统方式来部署,就是说通常按照一个area来部署一个控制器。这样做的目的是因为ISP和数据中心网络规模巨大,不可能用一台独立的控制器把一个网络全部控制起来。另一方面,传统网络按照区域(area0 ,area1)划分进行管理已经是一个成熟的方法,也积累了丰富的管理经验,因此,直接按照传统的自治系统来划分控制器控制域也就更加容易利用成熟丰富的经验来进行网络的管理和控制。至于控制器是否可以在一个自治系统内部仅仅选取一些设备进行控制,答案是肯定的,而且实际应用中已经有很多是这样的。比如通过控制器仅仅和网络边界上的业务接入点建立协议连接,并控制这些边界点,不需要控制整网每台设备就能完成网络内TE路径的控制,再比如BGP RR+方案,也是通过控制器仅仅控制一些ASBR,就能达到控制流量出口和流量入口的目的。

  但是在一些解决方案中,则不推荐这种在一个自治系统内部仅仅控制一部分设备的做法。

  我们不得不在控制器运行各种域内路由协议,以便和自治系统内部其他设备运行的传统的域内路由协议互通。这样东西向接口变得更加复杂,域内协议通常比域间要多且复杂,比如需要运行各种IGP、各种组播协议、各种IPv6协议、各种MPLS协议等。这样就相当于没有简化网络内部的协议,因为控制器上又一次实现了这些路由协议,并且从APP软件开发角度看,需要同时和传统网管以及控制器进行适配。

  SDN控制器和转发器控制通道建立过程

  控制通道分为两种:

  带外方式:转发器通过独立的物理网络(管理网络)和控制器连接。控制通道报文和用户业务数据报文不会共用物理链路。转发器会通过专用接口连接到管理网络上,通常的转发器管理地址配置在这个专用接口上。

  带内方式:控制通道和用户业务共用一张物理网络,转发器通过随路网络和控制器进行通信,控制通道报文和转发数据报文会共用物理链路。转发器的管理地址可配置在业务接口上。

  传统网络分布式控制架构:

  管理平面: 管理设备(SNMP)

  主要包括设备管理系统和业务管理系统,设备管理系统负责网络拓扑、设备接口、设备特性的管理,同时可以给设备下发配置脚本。业务管理系统用于对业务进行管理,比如业务性能监控、业务告警管理等。

  控制平面: 路由协议(IGP、BGP(EGP))

  负责网络控制,主要功能为协议处理与计算。比如路由协议用于路由信息的计算、路由表的生成。

  数据平面: 转发表(FIB)

  是指设备根据控制平面生成的指令完成用户业务的转发和处理。例如路由器根据路由协议生成的路由表对接收的数据包从相应的出接口转发出去。

  SDN网络架构特点

  转控分离: 网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。

  集中控制: 设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器进行配置即可。

  开放接口: 第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。

  SDN网络架构的三层模型

  协同应用层

  体现用户意图的各种上层应用程序,此类应用程序称为协同层应用程序,典型的应用包括OSS(Operation support system 运营支撑系统)、Openstack等。

  OSS:负责整网的业务协同。

  Openstack:在数据中心负责网络、计算、储存的协同

  传统的IP网络具有转发平面、控制平面和管理平面,SDN网络架构也同样包含这3个平面

  只是传统的IP网络是分布式控制的,而SDN网络架构下是集中控制的

  控制层

  控制层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。当网络发生状态变化,比如链路故障,节点故障,网络拥塞等时,控制层会根据这些网络状态的变化调整网络交换路径和业务路由,使网络始终能够处于一个正常的服务状态。

  控制层的实现实体就是DNS控制器,也就是SDN网络架构下最核心的部件,控制层是SDN网络系统中的大脑,是决策部件,其核心功能是实现网络内部交换路径的计算和边界业务路由计算。控制层的接口主要是通过南向控制接口和转发层交互,北向业务接口和协同应用层交互。

  转发层

  转发层主要由转发器和连接器的线路构成基础转发网络,这一层负责执行用户数据的转发,转发过程中所需要的转发表项是由控制层生成的。

  转发层是系统执行单元,本身通常不做决策,其核心部件是系统转发引擎,由转发引擎负责根据控制层下发的转发数据进行报文转发。该层和控制层之间通过控制接口交互,转发层一方面上报网络资源信息和状态,另一方面接收控制层下发的转发信息。

  SDN网络架构的三个接口

  北向接口(NBI)

  该接口是一个管理接口与传统设备提供的管理接口形式和类型都是一样的。只是提供的接口内容有所不同,传统设备提供单个设备的业务管理接口称为配置接口,而现在控制器提供的是网络业务管理接口。实现这种NBI的协议通常包括RESTFUL接口、Netconf接口、CLI接口等传统网络管理接口协议。

  南向接口(SBI)

  该接口主要用于控制器和转发器之间的数据交互,包括从设备收集拓扑信息、标签资源、统计信息、告警信息等,也包括控制器下发的控制信息,比如各种流表。目前主要SBI控制协议包括OpenFlow协议、Netconf协议、PCEP、BGP等。控制器用这些接口协议作为转控分离协议。

  东西向接口

  用于SDN网络和其他网络进行互通,尤其是对传统网络进行互通。SDN控制器必须和传统网络通过传统路由协议对接,需要BGP(跨域路由协议)。也就是说,控制器要实现类似传统的各种跨域协议,以便能够和传统网络进行互通。

  SDN控制器和转发器之间控制通道的建立,存在一个是先有鸡还是先有蛋的问题。因为转发器没有智能,转发器转发表都是由控制器生成的,那么控制器如何能够在转发器转发表没有生成的时候与转发器建立联系呢?在这种情况下,仍然需要传统的分布式网络势议的帮助来解决控制通道问题。控制通道本身不能通过控制器来计算路径和生成路由,而是需要部署一个传统的分布式控制协议来完成,这个协议只要保证连通性就可以。由于是带内通信,所以通信带宽就不是问题了。其中对于三层网络和二层网络,需要采用不同的协议来负责打通控制通道。比如,三层网络可以采用传统的IGP(比如OSPF、ISIS路由协议)来进行路由学习和打通控制通道,二层网络可以采用MSTP协议来协助破环建立二层连接。

  总结:

  控制器和转发器之间的控制通道建立,通常使用传统的IGP来打通控制通道。

  控制器和转发器建立控制协议连接后,需要从转发器收集网络资源信息,包括设备信息、接口信息、标签信息等,控制器还需要通过拓扑收集协议收集网络拓扑信息。

  控制器利用网络拓扑信息和网络资源信息计算网络内部的交换路径,同时控制器会利用一些传统协议和外部网络运行的一些传统路由协议,包括BGP、IGP等,来学习业务路由并向外扩散业务路由,把这些业务路由和内部交换路径转发信息下发给转发器。

  转发器接收控制器下发的网络内部交换路径转发表数据和业务路由转发表数据,并依据这些转发表进行报文转发。

  当网络状态发生变化时,SDN控制器会实时感知网络状态,并重新计算网络内部交换路径和业务路由,以确保网络能够继续正常提供业务。