考点十一:SDN
1.SDN控制平面
SDN控制平面一般由一个或多个SDN控制器组成,是网络的大脑。控制器具有举足轻重的地位,它是连接底层交换设备与上层应用的桥梁。一方面,控制器通过南向接口协议对底层网络交换设备进行集中管理、状态监测、转发决策,以处理和调度数据平面的流量;另一方面,控制器通过北向接口协议向上层应用开放多个层次的可编程能力,允许网络用户根据特定的应用场景灵活地制定各种网络策略。
2.SDN控制器体系架构
SDN控制器体系架构如图4-36所示。
南向接口层主要支持各种南向接口协议,控制器通过南向接口层的通道实现对底层网络的管理。
抽象逻辑层主要是将服务抽象出来,实现各种通信协议的适配,为各模块和应用提供服务。
基础网络层在任何控制器中都是必不可少的。这里的模块包括了控制器内部的实现逻辑,如拓扑管理、链路管理等,也包括一些底层的网络实现逻辑,如BGP、VxLAN的实现等。
内置应用层提供了基础的功能包,如L2网络、L3网络、overlay网络、服务功能链等。
在北向接口层中,控制器实现了Restful API的接口或嵌入式的API,提供给上层应用调用。
图4-36 SDN控制器体系架构
配置管理层提供了控制器服务器管理、集群管理和图形化界面,如ODL控制器提供了模块的启用、删除等功能;Floodlight等控制器提供了一个简单易用的UI界面,可以在Web界面中调用控制器的北向API,对控制器进行配置。
3.SDN控制器的关键技术
SDN控制器的关键技术包括南向网络控制和北向业务支撑。
(1)南向网络控制。
南向网络控制主要包括链路发现、拓扑管理、策略制定和表项下发等。链路发现和拓扑管理利用上行通道对底层交换设备上报信息进行统一监控和统计;策略指定和表项下发利用下行通道对网络设备实施统一控制。
①链路发现。链路发现可获得SDN全网信息,实现网络地址学习、VLAN、路由转发。与传统网络中链路发现由各个网元自主进行不同,SDN网络中的链路发现工作由控制器统一完成。对于OF交换机直连链路的发现,SDN控制器通过链路层发现协议LLDP实现。OF交换机非直连链路的发现即两台OF交换机,通过其他多台非OF交换机连接,控制器在发送packet_out消息给OF交换机的时候,会同时要求交换机发出广播包,通过广播的机制实现链路发现。
②拓扑管理。拓扑管理是为了随时采集和监控网络中SDN交换机的信息,反馈工作状态和链路连接状态。控制器需要定时发送带LLDP数据包的packet_out消息给相连的SDN交换机,并根据反馈回来的packet_in消息获知交换机信息,以完成交换机工作状态的监测和网络拓扑视图的更新。但是当网络规模较大时,这种拓扑管理机制收敛速度很慢,会影响网络状态的实时反馈。
③策略制定。策略制定是南向网络中的核心技术之一。交换机流表生成算法是影响控制器智能化水平的关键因素,控制器要针对不同层次的传输需求,制定相应的转发策略并生成对应的流表项。
SDN中策略制定与传统网络相比有很大的优势,在传统网络中,在每台设备中进行相关算法的执行,通常只能根据设备自身所掌握的有限的局部网络链接情况进行数据处理决策;SDN具有集中化管控的优势,控制器能够拥有全局的网络视图,因此更容易获得优化的算法执行结果,处理压力较重。
④表项下发。策略计算的结果需要通过表项下发来实现。控制器下发表项有两种交互方式:主动下发和被动下发。主动下发是控制器在交换机还没收到数据包前,先给交换机下发流表,告诉交换机如何处理第一个数据包,好处是可以避免交换机启动时数据流对交换机的冲击,并且可以消除数据传输过程中流表项设置延迟的问题。被动下发是等到有数据流时,才发送给控制器,等待下发流表,这在复杂网络中会产生流表项设置延迟的问题。
(2)北向业务支撑。
控制器的北向业务支撑主要是通过北向接口向上层业务应用提供灵活的网络资源抽象。与南向接口已有OF为代表的标准协议不同,SDN在北向接口标准方面存在争议,主要是因为北向接口直接为业务应用服务,其设计密切联系业务应用需求,具有多样化的特征,很难统一。同时,北向接口设计的合理性和网络功能的开放性会直接影响SDN控制器技术和产品的市场前景,这也是SDN标准难以统一的重要原因。每种控制器都会对外提供北向接口,用于上层应用开发和资源编排。从技术实现上来看,目前REST API是用户比较容易接受的方式。
4.SDN的关键特征
(1)基于流的转发。SDN控制的交换机的分组转发工作,能够基于运输层、网络层或数据链路层首部中的任意数量的首部字段进行。
(2)数据平面和控制平面分离。数据平面由网络交换机组成,交换机是相对简单的设备,该设备在它们的流表中执行“匹配加动作”的规则。控制平面由服务器以及决定和管理交换机流表的软件组成(图4-37)。
图4-37 SDN控制平面
(3)网络控制功能:位于数据平面的交换机外部。控制器维护准确的网络状态信息;为运行在控制平面中的网络控制应用程序提供这些信息;提供方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备。
(4)可编程的网络:通过运行在控制平面中的网络控制应用程序,该网络是可编程的。这些应用程序代表了SDN控制平面的“智力”,使用了由SDN控制器提供的API来定义和控制网络设备中的数据平面。
政哥应试提醒:本考点主要考查SND的工作原理,以及不同层技术的特点和应用,记下来就可以了。
难度系数:★