SDN软件定义网络 学习笔记(5)--控制平面

SDN软件定义网络 学习笔记(5)--控制平面
1. 简介
2. SDN 控制器体系架构
3. 开源控制器和商用控制器
3.1 开源控制器
3.2 商用控制器
4. SDN 控制器评价要素
参考资料
1. 简介
SDN 控制平面主要由一个或者多个控制器组成,是连接底层交换设备与上层应用的桥梁。

一方面,控制器通过南向接口协议对底层网络交换设备进行集中管理、状态监测、转发决策以处理和调度数据平面的流量;

另一方面,控制器通过北向接口向上层应用开放多个层次的可编程能力,允许网络用户根据特定的应用场景灵活地制定各种网络策略。

2. SDN 控制器体系架构
市面上大多数开源控制器的设计采用了类似于计算机操作系统的层次化体系架构,如下图所示:

 

 


在这种层次化的体系结构下,控制器功能被分为基本功能层与网络基础服务层两个层面。

(1)基本功能层
这一层主要提供控制器所需要的最基本功能。

首先是协议适配功能,需要适配的协议主要包含两类:一类是用来跟底层交换设备进行信息交互的南向接口协议,另一类是用于控制平面分布式部署的东西向接口协议。

协议适配工作完成后,控制器需要提供用于支撑上层应用开发的功能主要包括四个方面:模块管理、事件机制、任务日志、资源数据库。

(2)网络基础服务层
网络基础服务层中的模块作为控制器实现的一部分,可以通过调用基本功能层的接口来实现设备管理、状态监测等一系列基本功能。
几个主要的功能模块:交换机管理、主机管理、拓扑管理、路由、转发策略、虚拟网划分

(3)总结
这种层次化的架构设计中,基础功能层提供了SDN 控制器作为整个控制平面最为基本的功能,包括对底层硬件的抽象和对上层网络功能模块的管理,所有的网络应用都基于这一层提供的接口进行开发,网络基础服务层的可扩展性得以显著地增强,可为上层网络应用的开发、运行提供一个强大的通用的平台。


3. 开源控制器和商用控制器
3.1 开源控制器
(1)NOX/POX
NOX 的核心组件提供了用于与 OpenFlow 交换机进行交互的 API 和辅助方法,包括连接处理器和事件引擎,同时还提供了如主机跟踪、路由计算、拓扑发现以及 Python 接口等在内可选择的附加组件。

由于 NOX 代码量和复杂度较高,推出了 NOX 的兄弟版控制器 POX,POX 控制器主要包含如下技术特征:一
是基于 Python 编程语言实现了 OpenFlow 接口;二是可以与 PyPy进行捆绑运行,易于部署;三是支持 Linux、Mac OS、Windows等多种计算机操作系统,灵活易操作。

其基本框架如下图所示:

 

 


(2)Ryu
Ryu 使用 Python 语言开发,提供了完备、友好的 API。Ryu 是基于组件的框架进行设计,这些组件都以 Python 模块的形式存在。组件是以一个或者多个线程形式存在的,这样可以便于提供一些接口用于控制组件状态和产生事件,事件中封装了具体的消息数据,由于事件会在多个组件中使用,因此事件对象是只读的。

其整体架构如下图所示:

 

 


(3)Floodlight
Floodlight是一款基于Java 语言的开源SDN 控制器,也使用了层次化架构来实现控制器的功能,同时提供了非常丰富的应用,可以直接在网络中部署数据转发、拓扑发现等基本功能。此外 Floodlight 还提供了友好的前端 Web 管理界面,用户可以通过管理界面查看连接的交换机信息、主机信息以及实时网络拓扑信息。

Floodlight 通过向 OpenFlow 交换机下发流表等方式来实现数据分组转发决策,以达到对交换设备集中控制的目的。

Floodlight 使用模块框架实现控制器特性和应用,在功能上 Floodlight 可看作由控制器核心服务模块、普通应用模块和 REST 应用模块 3 个部分构成。

其基本框架如下图所示:

 

 


(4)OpenDaylight
OpenDaylight 使用模块化方式来实现控制器的功能和应用。其系统架构如下图所示:

 

 


在 OpenDaylight 总体架构中,南向接口通过插件的方式来支持多种协议。

服务抽象层(SAL)一方面可以为模块和应用提供一致性的服务;另一方面支持多种南向协议,可以将来自上层的调用转换为适合底层网络设备的协议格式。

在 SAL 之上,OpenDaylight 提供了网络服务的基本功能和拓展功能,基本网络服务功能主要包括拓扑管理、交换机管理、主机监测以及最短路径转发等;拓展网络服务功能主要包括 DOVE管理、流量重定向等服务。

(5)ONOS
ONOS 目前支持包括 OpenFlow 在内的多种南向协议,同时提供开放的北向API,其分布式核心架构采用了多种分布式技术。

ONOS 基于 OSGi 框架,使用 Maven 构建项目,支持新模块运行态加载和注销(模块的热插拔),其控制器架构和其他控制器架构类似也是分层架构。

系统框架如下图所示:

 

 


ONOS 系统架构中定义了服务和子系统两个基本概念。其中,服务是由多个组件形成的功能集,这些组件按照 ONOS 的架构层级创建一个垂直切片,而多个组件共同提供的服务就成为一个子系统。
子系统划分如下图所示:

 

 


(6)OpenContrail
OpenContrail提供了用于网络虚拟化的所有基本组件,其用户界面采用 Python 语言编写。

主要应用于以下两个网络场景:一是云计算网络场景,主要有企业和运营商的私有云以及云服务提供商的基础设施即服务(IaaS)和虚拟专用云(VPC);二是在运营商网络中的网络功能虚拟化(NFV)场景,可以为运营商边缘网络(宽带固定接入、移动接入等)提供增值服务。

系统架构如下图所示:

 

 


该系统主要由 SDN 控制器和 vRouter(虚拟路由器)两个部分组成。

控制器通过北向接口与编排系统=及上层业务通信,通过 XMPP 与虚拟路由器通信,通过 BGP、NETCONF 等南向协议与网关路由器和物理交换机通信,通过 BGP 与其他控制器对等通信。

vRouter 是数据转发平面,运行在虚拟服务器的 Hypervisor,将通过软件方式部署在网络环境中,通过服务器到服务器之间的通道进行虚拟机之间的数据分组转发,从而在数据中心提供虚拟网络服务。

(7)其他开源控制器
如下表所示是对其他开源控制器的总结。

 

 


3.2 商用控制器
一些厂商企业推出了针对具体应用场景、支持具体交换机并提供相应服务的商用控制器,这些控制器可以有针对性地解决现网中存在的某些具体问题,同时会得到企业更加专业的支持与维护,具有更好的稳定性与可靠性以及性能。

(1)Big Network Controller
主要特点为:抽象的统一网络智能控制、 企业级可靠性和可扩展性、灵活和开源的网络应用平台。

系统架构如下图所示:

 

 


(2)XNC
XNC是一个典型的 SDN 控制器,它支持业界标准的 OpenFlow 协议,同时使用异构的、与平台无关的方式提供对 Cisco 以及第三方网络设备的可编程能力。

XNC 的控制平面采用了与传统控制协议共存的方式。在混合集成模式中,网络设备继续运行已有的网络控制协议(如 OSPF、IS-IS),Cisco XNC 的控制平面则重点实现其他控制功能。

(3)SDN Contrail
SDN Contrail是一款网络虚拟化及智能化解决方案,包括创建虚拟重叠网络所需要的所有元素,如 SDN 控制器、虚拟路由器以及分析引擎等。

SDN Contrail 可以很方便地为服务提供商及企业用户创建及管理虚拟网络,可以实现物理网络与虚拟网络之间的无缝集成整合,从而向其客户提供简单、开放、灵活的解决方案服务。

系统架构如下图所示:

 

 


(4)Agile Controller
Agile Controller 能够集中控制全网资源,面向用户和应用实现网络资源自动化与动态调配,以业务体验为中心重新定义网络,让网络更敏捷地为业务服务。

在 Agile Controller 的智能控制下,网络将能够从以前手工配置,转变为用自然语言规划与自动部署,从传统单点边界防护转变为全网协同防护。

其控制架构如下图所示:

 

 


Agile Controller 基于业界 SDN 架构分层解耦能力,提供从应用到物理网络的自动映射、资源池化部署和可视化运维,同时支持与业界主流云平台的无缝对接。

(5) ZENIC
ZENIC支持丰富的南向接口协议,对 OpenFlow 和非 OpenFlow 交换机进行统一控制,它是一套完整的可编程产品平台,内置南向、北向、东西向接口协议支持、L2/L3 网络功能、VDC 业务功能。

其控制架构如下图所示:

 

 



4. SDN 控制器评价要素
SDN 控制器的十大评估要素:

(1)对 OpenFlow 的支持

(2)网络虚拟化
网络虚拟化是指多个逻辑网络共享底层网络基础设施,从而提高网络资源利用率,加速业务部署,以及提供业务 QoS 保障。

(3)网络功能
SDN 控制器需要提供严格隔离性保障功能、提供基于流的QoS 保障功能,SDN控制器有能力发现源端到目的端的多条路径并提供多径转发功能,可打破 STP 协议的性能和可扩展性限制,相比于传统的 TRILL 和 SPB 方案,SDN 控制器可提供相同的能力而无需对网络进行任何改动。

(4)可扩展性
可支持 OpenFlow 交换机的数量和如何减少广播对网络带宽和流表规模的影响是两个重要指标。

(5)性能
控制器对流的处理时延以及每秒处理新流的数目是评价控制器性能的最主要性能指标。

(6)网络可编程性
网络可编程性具体包括数据流的重定向,精确的报文过滤以及为网络应用提供友好的北向可编程接口.

(7)可靠性
当网络链路或者单点设备出现故障时,是否会导致网络的瘫痪

(8)网络安全性
控制器需要实现企业级身份验证和授权,具备对各种关键流量访问进行管控的能力,并且能够限制控制信令的速率。

(9)集中管理和可视化

(10)控制器供应商

参考资料
《SDN软件定义网络核心原理与应用实践》
《重构网络:SDN架构与实现》

另:本文是对以上参考资料的学习笔记整理
————————————————
版权声明:本文为CSDN博主「hahahahaheiheihei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42896572/article/details/109439675

posted @ 2022-04-16 11:32  常给自己加个油  阅读(783)  评论(0编辑  收藏  举报