- SDN环境部署与OpenDaylight开发入门
- 程丽明
- 8882字
- 2025-02-22 06:39:52
第2章 SDN架构简析
经过第1章的描述,读者对SDN有了大体的认识。SDN的全称是Software Defined Networking,即软件定义网络。SDN是近几十年来网络技术中最具重大性突破的技术之一。现在SDN已由最初使用OpenFlow南向接口协议的狭义SDN发展成了广义上的SDN,并在热潮过后落地生根。目前,SDN在数据中心、广域网、云计算等方面都得到了广泛的应用。本章主要对SDN的架构进行介绍,并对其要素做选择性的介绍。
本章在2.1节首先介绍SDN的架构,SDN架构由SDN应用层、SDN控制器层、SDN基础架构层(SDN交换机)这三层以及这三层之间的SDN北向接口、SDN南向接口这两个接口组成。随后本章对这5个要素进行简要介绍。
本章在2.2节介绍SDN控制器的主要组成和功能,以OpenDaylight为例进行简要描述。本书将在第4章对SDN控制器进行专门的、更为详细的介绍,有兴趣的读者可在第4章进行学习参考。
本章在2.3节介绍SDN交换机的主要原理以及与传统交换机的区别。SDN交换机(包括硬件SDN交换机和软件SDN交换机)主要分为纯SDN交换机(仅支持OpenFlow协议)、混合交换机(支持OpenFlow协议和传统网络协议)、白盒SDN交换机、裸交换机。由于硬件研究不是本书的重点,在此节不做详细讨论,有兴趣的读者可参考相关文献进行学习。
本章在2.4节介绍南向接口协议。南向接口是SDN控制器层与SDN基础架构层(SDN交换机)之间通信的依据,SDN南向接口的标准化程度要比北向接口好,SDN有多个南向接口协议,其中最为出名的是OpenFlow协议。
本章在2.5节介绍SDN北向接口协议。北向接口是SDN应用层与SDN控制器层之间通信的依据,目前,SDN北向接口还没有统一的规范。
最后,在2.6节对全章进行总结。
2.1 SDN架构总述
SDN是在物理上网络控制平面和转发平面(数据平面)相分离,控制平面控制多个设备,网络底层抽象,逻辑上控制集中,可编程的网络架构。
SDN的目标在于使得云计算/网络的开发者、运维人员无须过多了解底层网络的情况,只需通过集中化控制平台/编排器就能对网络进行快速调整,以适应迅速变化的业务需求。SDN是由多种网络技术组成的,通过这些技术能更加灵敏地支持诸如现代数据中心中虚拟化服务器和存储架构、现代广域网的管理等IT服务需求。
SDN方案供应商提供了多种架构,但总的来说,可以归纳成如图2-1所示的SDN基本架构。SDN架构由SDN应用层、SDN控制器层、SDN基础架构层(SDN交换机)这三层以及这三层之间的SDN北向接口、SDN南向接口这两个接口组成。所有的SDN解决方案都包含这5个要素。另外,注意SDN架构的控制器层是逻辑上集中的,但其物理的位置可能是分散的。

图2-1 SDN基本架构
SDN架构的突出特性(优势)包括以下几点。
● 直接可编程:由于SDN控制平面与数据平面解耦,这样就使得数据包在传输工作中的控制功能和转发功能相分离,因此网络控制是直接可编程的。
● 敏捷性:由于SDN抽象了底层的网络,转发层对于用户实现了逻辑抽象,管理员可快速、简单地动态调整整个网络范围内的流量,以满足不断变化的业务需求。
● 集中化管理:网络智能从逻辑上是由SDN控制器集中化控制的(实际上可能是物理位置分散的控制器集群), SDN控制器通常维护着一个全网的逻辑拓扑视图,对于SDN应用来说,可将数据平面视为一个简单的逻辑交换机。
● 可编程配置:开发者/运维人员可通过编写不依赖于专用软件的程序,以自动化或定制化的方式对网络资源进行配置、管理、安全加固、优化等。
● 开放性的标准和供应商中立:通过实施开放性标准,指令由SDN控制器提供,而不像传统网络中由多个供应商专用的设备和协议提供,SDN简化了网络设计和操作。
以下对SDN架构的5个要素做简要介绍。
1.SDN应用层
SDN应用层是SDN架构中的最顶层,这一层也是SDN可编程性的体现。这一层的应用(如商业应用)通过SDN北向接口与SDN控制器进行通信。SDN应用无须考虑网络底层网元的具体配置和性能,只需将应用的功能分解为SDN控制器能执行的粒度发送至SDN控制器,以实现应用功能。这样的设计使得应用开发者能不受具体网络的限制,将主要精力放在应用本身的功能实现和性能改善上面,从而在不同网络上实现创新,加快了新功能和服务升级的速度。
2.SDN控制器层
SDN控制器是SDN网络的核心,类似于人类大脑的功能。SDN控制器层提供了对于整个网络的一个集中化的视图,使得网络管理员能直接命令网络底层设施(如交换机和路由器),根据所指定的细粒度的要求来处理网络流量(如转发数据包、流量控制等)。这种集中化智能的设计简化了网络服务的提供,优化了性能,实现了细粒度的策略管理。SDN控制器层通过SDN北向接口与SDN应用层通信,通过SDN南向接口与SDN基础架构层通信。
3.SDN基础架构层(SDN交换机)
SDN基础架构层由支持SDN的交换机组成,这里包括支持SDN南向协议的物理交换机和虚拟交换机。SDN对基础架构进行抽象,实现了硬件和软件的解耦、控制平面和转发平面的解耦、物理配置和逻辑配置的解耦。
4.SDN北向接口
SDN北向(API)接口提供了SDN应用层和SDN控制器层之间的通信实现。SDN使用北向API接口与SDN控制器层之上的SDN应用层进行通信,这有助于网络管理员通过编程实现流量和部署服务。目前,SDN北向接口还没有统一的规范。
5.SDN南向接口
SDN南向(API)接口提供了SDN控制器层和SDN基础架构层(SDN交换机)之间的通信实现。SDN使用南向API接口与SDN控制器层之下的SDN基础架构层(SDN交换机)进行通信,SDN南向接口的标准化程度要比北向接口好,其中最为出名的SDN南向接口标准是OpenFlow协议,这也是最早的SDN南向接口标准。
2.2 SDN控制器
当前,SDN控制器已经比较成熟,种类也相当繁多,包括开源的SDN控制器和商用的SDN控制器,有些商业控制器是在某个开源控制器的基础上优化和修改而来的,其中一些公司本身也是这个开源控制器贡献成员之一。其中最为出名的SDN控制器是OpenDaylight项目,其他出名的项目还包括ONOS项目、Floodlight项目、Ryu项目等。本书将在第4章对包括这3个项目在内的当前市场上最为出名的14种控制器进行介绍。另外,在第5章和第6章进一步对OpenDaylight项目及其子项目Controller进行更为详细的介绍,第三篇和第四篇也都是关于OpenDaylight项目开发的相关介绍;在第9章、第10章、第11章分别对ONOS项目、Floodlight项目、Ryu项目的控制器安装进行介绍。
图2-2是普适的SDN控制器架构。SDN控制器由网络基础服务模块、网络高级服务模块、模块基础功能保障模块、北向API(网络服务平台API)模块、南向API(网络设备接口API)模块组成。

图2-2 SDN控制器基本架构
1.网络基础服务模块
网络基础服务模块提供SDN控制器最基础的服务,向网络高级服务模块提供服务,也可直接向北向API(网络服务平台API)模块提供服务。网络基础服务模块通过南向API(网络设备接口API)获取设备相关信息。网络基础服务模块主要提供以下服务。
● 数据包分析:分析传输至控制器的数据包的信息。
● 流表项生成:根据流表内容生成流表项目。
● 设备(交换机)管理:管理设备(交换机),如查询状态、进行配置等。
● 拓扑管理:发现现有网络拓扑结构,有些控制器还可获取主机信息等。
● 路由发现服务:根据路由算法提供路由服务。
● 转发管理:将流表发送至指定设备。
● 统计管理:提供统计服务,包括指定转发设备或全部转发设备上流表使用次数、数据包收发次数、流量大小等众多统计信息。
……
2.网络高级服务模块
网络高级服务模块提供进阶的网络服务,用户可以不用自己独立开发相关应用或只需对网络高级服务模块进行少量的修改即可实现待提供的网络服务。网络高级服务模块提供以下服务。
● 编排服务:提供对全网的统一编排服务,这是SDN主要的功能之一。
● 可视化服务(图形界面UI):提供图形界面,便于用户直观地看到结果,提升用户体验。
● 防火墙:提供防火墙的安全服务功能,有些控制器还会提供其他的安全产品功能。
● 流量管理:提供流量管理的功能,便于平衡流量。
● 虚拟网络服务:提供虚拟网络服务,用户无须考虑网络底层硬件的具体配置和功能。
● 租户网络管理:提供租户网络管理的功能,特别适用于云计算环境。
● 网络测试服务:提供网络测试服务。
……
3.模块基础功能保障模块
模块基础功能保障模块是确保SDN控制器能正常运行的基础设施服务,主要包括模块管理模块、线池管理模块、缓冲管理模块、存储管理模块、安全防护模块、集群管理模块、日志管理模块、数据库管理模块。
4.北向API(网络服务平台API)模块
北向API(网络服务平台API)模块为SDN控制器提供了北向接口的服务,支持Java应用调用、RPC、REST/HTTP、RESTCONFT、NETCONF、AMQP等北向协议的接口。
5.南向API(网络设备接口API)模块
南向API(网络设备接口API)模块是SDN控制器与网络设备交互的接口,支持OpenFlow、OF-Config、BGP-LS、XMPP、PCEP等南向协议的接口。
2.3 SDN交换机
按照SDN交换机所支持的南向协议来看,SDN交换机可以分为纯SDN交换机(仅支持OpenFlow协议)、混合交换机(支持OpenFlow协议和传统网络协议)、白盒SDN交换机、裸交换机。而从虚拟化的角度来看,SDN交换机主要分为硬件SDN交换机和软件SDN交换机(虚拟交换机)。其中软件SDN交换机不包含白盒SDN交换机、裸交换机这两种。
SDN最具影响力的虚拟交换机是OVS(Open vSwitch)交换机,它具备良好的工作性能,在商业上得到了广泛的应用。OVS是一个使用开源Apache 2.0许可证的多层虚拟交换机,通过可编程扩展,OVS能在支持标准管理接口和协议(如NetFlow、sFlow、IPFIX、RSPAN、CLI、LACP、802.1ag)的同时实现大规模网络自动化。OVS的目标是实现一个支持标准管理接口、向外开放转发功能以实现可编程扩展和控制的工业级交换机。OVS能在VM环境中很好地实现虚拟交换机的功能,除向虚拟网络层开放标准控制和可视接口外,OVS能很好地支持跨物理服务器的分布式虚拟交换机。
SDN硬件交换机在制造初期性能较差,并且通常只能实现软件交换机一半的功能,但是随着SDN的落地发展,SDN硬件交换机应用在生产环境中的场景不断增长,功能强大、适用于工作压力极大的SDN硬件交换机已经广泛生产。本书将在3.2节介绍11家SDN硬件交换机厂商及其主打产品。
纯SDN交换机只负责数据包的转发服务。SDN交换机维护着流表,流表中的流表项全部由控制其的SDN控制器下发。当数据包进入交换机时,交换机查找流表以确认是否有流表项匹配,若有流表项匹配成功,则执行该流表项指定的操作(如修改数据包);若无,则查看是否已设置丢弃;若已设置,则丢弃此数据包;若没有设置,则根据设置完全转发数据包或提取数据包的部分信息转发至控制器,待控制器下发流表项后根据此流表项进行相关操作。这是与传统交换机区别最大的地方,具体的执行请参考本章2.4节的南向接口协议中交换机的介绍。
2.4 南向接口协议
南向接口是SDN控制器层与SDN基础架构层(SDN交换机)之间通信的依据,SDN南向接口协议的标准化程度要比北向接口协议标准化的程度高,SDN有多个南向接口协议,其中最为出名的是OpenFlow协议,其他南向接口协议还包括OF-CONFIG、XMPP、PCEP等。OpenFlow协议目前有12个正式版本:1.0.0、1.1.0、1.2、1.3.0、1.3.1、1.3.2、1.3.3、1.3.4、1.3.5、1.4.0、1.4.1、1.5.1,两个测试版本:1.0.1和1.3.4,其中最出名的是OpenFlow 1.0版本和OpenFlow 1.3版本,这两个版本在商业上的应用最广。本书分别对这两个协议进行简要说明,有兴趣的读者可参考这两个版本的标准文档,如图2-3所示,地址为https://www.opennetworking.org/sdn-resources/technical-library。

图2-3 OpenFlow 1.0版本和1.3版本的标准文档
2.4.1 OpenFlow 1.0
一个支持OpenFlow 1.0的交换机有一张流表和一个安全通道(Secure Channel),流表(Flow Table)向交换机提供执行数据包的查找和转发工作的依据,安全通道向交换机提供到外部控制器的安全连接,如图图2-4所示。控制器使用OpenFlow 1.0这一南向协议对交换机进行控制。

图2-4 OpenFlow1.0交换机
1.流表
一个流表包含一个流表项的集合、一个活动计数器、一个待作用至匹配数据包的操作集(可能包含0个或多个操作)。所有交换机处理的数据都要经过流表的比对。若发现一个匹配的流表项,则这个表项中所有的操作都将在这个数据表上执行。若没有匹配任何流表项,则数据包将通过安全通道转发给控制器。控制器负责在没有有效流表项的情况下决定如何处理数据包,并向交换机的流表添加或删除流表项。
一个流表项由Header Fields(包头域)、Counters(计数器)、Actions(操作集)组成,如表2-1所示。
表2-1 一个流表项的组成

(1)Header Fields(包头域)
交换机根据Header Fields(包头域)对接收的数据包进行匹配,OpenFlow 1.0的Header Fields(包头域)由12元组组成,如表2-2所示。SDN交换机解析数据包后逐一对这12元组进行匹配,每一元组的匹配分为固定值匹配和掩码匹配。
(2)Counters(计数器)
交换机使用Counters(计数器)来对匹配的数据包进行更新,Counters(计数器)可根据每流表、每个流、每个端口、每个队列进行维护。表2-3是统计信息所需的计数器列表。
表2-2 Header Fields(包头域)

表2-3 统计信息所需的计数器列表

(3)Actions(操作集)
交换机对匹配成功的数据包执行相应的Actions(操作集),每个操作集可能包含0个或多个操作。若发现一个匹配的流表项,则这个表项中所有的操作将在这个数据表上执行。若没有匹配任何流表项,也没有包含任何转发操作,交换机将丢弃数据包。用户必须按指定的顺序(如根据优先级编号)来执行待操作列表,但不保证一个端口中数据包的输出顺序。
若一个流表项不能按指定的顺序来对数据包执行列表中的操作,则交换机可能将这个流表项驳回,并立即返回一个不支持流的错误值。不同供应商提供的交换机端口中的顺序可能不同。
操作可分为两种,一种为Required Actions必需操作,另一种为Optional Actions可选操作。注意交换机不需要支持所有的操作类型,只需要支持Required Actions必需操作即可。交换机连接到控制器时将告知哪些是可选操作。
① Required Actions必需操作
每台交换机都必须支持这些操作,包括转发操作中的必需操作和丢弃。其中转发操作中的必需操作包括以下几项。
● ALL:将数据转发至不包括进入接口的所有接口。
● CONTROLLER:将数据包封装并传输至控制器。
● LOCAL:将数据包发送至本地交换机网络栈。
● TABLE:仅向packet-out消息执行流表中的操作。
● IN_PORT:将数据包从其进入的接口发出。
● 丢弃:若数据包不匹配所有的流表项,则交换机将丢弃此数据包。
② Optional Actions可选操作
可选操作包括转发操作中的可选操作、入队、修改域。
其中转发操作中的可选操作包括以下几项。
● NORMAL:执行传统交换机支持的转发路径。
● FLOOD:使用最小生成树的原理将数据包泛洪至除入口之外的所有接口。
入队:入队操作将数据包转发至一个端口所对应的队列中。
修改域的操作是SDN最强大的功能之一。允许修改数据包的包头内容包括以下几项。
● 修改VLAN标签。
● 修改VLAN优先级。
● 弹出VLAN标签。
● 修改源MAC地址。
● 修改目的MAC地址。
● 修改源IP地址。
● 修改目的IP地址。
● 修改IP服务类型字段。
● 修改目的端口号。
● 修改源端口号。
(4)匹配流表
交换机接收到一个数据包后,执行匹配流程如图2-5所示。其中对于数据包的包头进行解析(流程如图2-6所示),以用于交换机基于数据包的类型来查找流表。根据数据包是否属于VLAN(以太网类型0x8100)、是否为ARP数据包(以太网类型0x0806)、是否为IP数据包(以太网类型0x0800)、是否为TCP或UDP包(IP协议为6或7)、是否为ICMP(IP协议为1)来提取关键信息进行比对。

图2-5 OpenFlow 1.0的匹配流程

图2-6 包头解析流程
数据包基于优先级(优先级越高其数字也越高)来对众多流表项进行匹配。若一个流表项指定了精确的匹配(即没有通用符),则它是最高优先级的,其他带有通用符的流表项有其相应的优先级。先匹配优先级高的流表项,如果两个流表项优先级相同,那么由具体的交换机自行决定。
当数据包匹配到一条流表项时,流表项对应的计数器更新。若没有匹配到任何流表项,则交换机将这个数据包通过安全通道发送给控制器。另外注意,若某个域的值为ANY,则它匹配包头对应这条域中所有可能值的数据包。
2.安全通道
安全通道是连接交换机和控制器的接口,所有的安全通道消息都必须遵守OpenFlow协议。OpenFlow协议支持3种消息类型:controller-to-switch(交换机到控制器)、asynchronous(异步)和symmetric(对称),每一类消息又有多个子消息类型。
● controller-to-switch消息由控制器发起,用于直接管理或监视交换机的状态,包括Features(获取交换机特性)、Configuration(配置OpenFlow交换机)、Modify-State(修改交换机状态,即修改流表)、Read-State(读取交换机状态)、Send-Packet(发送数据包)、Barrier(阻塞消息)。
● asynchronous(异步)消息由交换机发起,用以提醒控制器更新网络事件和交换机状态变化的状态,包括Packet-In(告知控制器交换机接收到数据包,注意此数据包为交换机无法处理的数据包)、Flow-Removed(告知控制器交换机流表被删除)、Port-Status(告知控制器交换机端口状态更新)、Error(告知控制器交换机发生错误,如控制器给交换机下发了一些无法执行的命令)。
● symmetric(对称)消息可以由交换机或控制器发起而无须邀请,包括Hello(建立OpenFlow连接)、Echo(确认交换机与控制器之间的连接状态,互相探测对方是否存在)、Vendor(由厂商自定义消息)。
2.4.2 OpenFlow 1.3
OpenFlow 1.3和OpenFlow 1.0的区别较大,也是当前商业上广泛使用的OpenFlow版本之一。OpenFlow 1.3增加了多级流表(流水线结构)、组表、度量(Meter,此结构体主要用来做流量,定义转发的性能),修改了数据包特征匹配的描述方法(match方法,更具拓展性),还增加了数据包处理的动作类型,加强了多控制器的支持,提供更安全的连接和辅助连接。
OpenFlow 1.3交换机的主要组件主要由一到多个流表、一个组表、一个连接到外部控制器的OpenFlow通道组成,如图2-7所示。流表和组表执行数据包查找和转发功能。由于篇幅原因,本部分重点讲述与OpenFlow 1.0的不同之处,有兴趣的读者请参考相关文献进一步学习。

图2-7 OpenFlow 1.3交换机的主要组件
1.流表
每个流表包含一个流表项的集合。每个流表项由一个匹配域、一个计数器、一个待作用到匹配的数据包的指令(instructions)集、一个超时时间、一个cookie组成。一个流表项的结构如表2-4所示。
表2-4 流表项的结构

OpenFlow 1.3的流表与OpenFlow 1.0的流表最大的不同是原来的行为(Actions)变成了指令(instructions),可以在流表之间进行跳转。
(1)匹配
OpenFlow 1.0定义了12个匹配的元组,OpenFlow 1.3定义了40个匹配的元组。但并非OpenFlow 1.3的匹配全部需要包含这40个元组,只需要包含必备的13个元组(进入端口、以太网源地址、以太网目标地址、以太网类型、IP协议<IPv6或IPv4>、IPv4源地址、IPv4目标地址、IPv6源地址、IPv6目标地址、TCP源端口地址、TCP目标端口地址、UDP源端口地址、UDP目标端口地址),再加入其他所需的可选匹配元组即可。OpenFlow 1.3的匹配域是变长的。
(2)指令(instructions)
一个指令要么修改流水处理(如将数据包指向另一个流表),要么包含一个待加入操作集(Action Set)的操作集合,要么包含一个立即在数据包上生效的操作列表。其中操作集(Action Set)与数据包相关的操作集合在报文被每个表处理的时候可以累加,在指令集指导报文退出处理流水线的时候这些行动会被执行。
2.组表
组表(Group Table)是一个行为桶的列表和选择其中一个或多个桶以应用到一个包基础上的方法。一个流表项的结构如表2-5所示。
表2-5 组表项的结构

其中组类型包括以下几项。
● indirect:只包含一个Action列表的组表,转发效率更高,可以用于路由聚合。
● all:执行action buckets中的所有动作,可以用于组播。
● select:随机执行action buckets中的一个动作,可以用于多径传播。
● fast failover:如两端点间有N条路径,可写入action buckets,之后随机选择其中一条路径。
3.计量表
OpenFlow 1.3还包括一个计量表(Meter Table),用以定义OpenFlow交换机对数据包转发的性能参数,能起限速的作用。计量表的结构如表2-6所示。
表2-6 计量表的结构

与OpenFlow 1.0计数器相比,OpenFlow 1.3计数器有了扩展,特别是增加了很多可选项目。OpenFlow 1.3计数器如表2-7所示。
表2-7 计数器的结构

(续表)

4.OpenFlow 1.3流表的流水线处理
OpenFlow 1.3交换机接收到一个数据包后,以流水线的方式匹配多个流表,如图2-8所示。交换机将匹配域从数据包中提取出来,如图2-9所示。之后交换机从第一个流表开始查询可匹配的流表项,依次处理至最后一个流表。流表之间是可以跳转的(根据流表项的指定跳转),流表项的匹配过程与OpenFlow 1.0类似,每一个流表必须支持能处理table-miss的流表项。table-miss表项指定在流表中如何处理与其他流表项未匹配的数据包,比如数据包发送到控制器,丢弃数据包或直接将包扔到后续的表。

图2-8 数据包流水线匹配多个流表

图2-9 数据包在每个流表的处理
流表中的处理可以分成三步:
(1)找到最高优先级匹配的流表项。
(2)应用指令。
① 修改数据包并更新匹配域(应用操作指令)。
② 更新操作集(清除操作和/或写入操作指令)。
③ 更新元数据。
(3)将匹配数据和操作集发送到下一个流表。
5.OpenFlow 1.3流表的匹配
OpenFlow 1.3流表的匹配流程如图2-10所示。注意与OpenFlow 1.0相比,数据包进入交换机增加一个需要匹配的信息:一个一层的输入端口In_Port、数据包头(二层、三层、四层的信息)、元数据(64比特的数据,在流表协议转换的时候携带控制器自定义的一些额外的信息)。

图2-10 交换机处理数据包的流程
2.5 北向接口协议
北向接口是SDN应用层与SDN控制器层之间通信的依据。使用北向接口协议可直接调用控制器实现网络功能,作为网络服务提供者,可在异构网络中提供自己的服务,无须根据网络底层的细节来更改、删除自己的服务,从而节省了大量的时间,能将主要的精力运用到自身网络服务的实现上。
北向接口协议的理想是好的,但由于控制器的种类繁多,没有一个控制器完全占据市场份额,所以到目前为止,SDN北向接口还没有一个统一的规范,各种控制器的北向接口不尽相同。希望在将来,各控制器开源机制和商用厂商可以协商出统一的SDN北向接口标准,那时SDN将一扫障碍,大展宏图。
下面以OpenDaylight控制器为例进行简要介绍。
OpenDaylight控制器支持两种在控制器外部访问应用和数据的模块驱动协议:RESTCONF和NETCONF。RESTCONF是基于HTTP的协议,使用XML或JSON作为负载格式,提供类REST的APIs以操作YANG建模的数据并且调用YANG建模的RPCs。NETCONF是基于XML的RPC协议,向客户端提供调用YANG建模的RPC、接收并读取通知、修改并操作YANG建模的数据的功能。
RESTCONF是一个类REST(Representational State Transfer),运行在HTTP协议之上,访问在YANG中定义的数据,使用NETCONF定义的数据存储,主要是为Web应用提供一个标准的获取设备配置数据及状态数据的途径。RESTCONF允许访问控制器中的数据存储。
NETCONF协议是一个基于XML的网络配置管理协议(Network Configuration Protocol),能表示复杂的、层次化的数据,为客户端提供一种调用基于YANG模型的RPC,接收和读取通知,提供修改和操作基于YANG模型的数据的能力。
2.6 本章总结
SDN即软件定义网络,是在物理上网络控制平面和转发平面(数据平面)相分离、控制平面控制多个设备、网络底层抽象、逻辑上控制集中、可编程的新型网络架构。
在SDN架构中,我们无须了解底层网络的情况,通过集中化控制平台/编排器就可对网络进行快速调整,能够适应迅速变化的业务需求。目前,市场上的SDN解决方案众多,SDN网络也从当初仅支持OpenFlow南向协议的简单校园网发展到现在泛SDN网络架构、得到广泛应用的网络。但总的来看,SDN架构还是分成SDN应用层、SDN控制器层、SDN基础架构层、SDN北向接口、SDN南向接口5个要素。
通过本章的学习,读者可以了解SDN的基本架构,在接下来的第3章和第4章,我们将分别介绍现有的SDN交换机和现有的SDN控制器,然后在第5章和第6章将对最出名的SDN控制器OpenDaylight做进一步介绍,建议读者认真学习了解。