SDN控制器

SDN控制器是一个提供如下功能的软件系统或者系统的集合

- 网络状态管理。    
    某些情况下对于网络状态的管理与分布,有可能需要一个数据库。这些数据库作为知识库,保存来自于被控制的网元设备和相关软件的信息(以及被SDN应用程序所控制的信息,包括网络状态、一些临时配置信息、学习到的拓扑和控制会话信息)。    另一些情况下,控制器可能有多个由目的驱动的数据管理进程(例如,关系和非关系数据库)。再有一些情况下,也有可能使用内存型数据库


 - 高级数据模型。
     这个数据模型描述被管理的资源、策略和控制器提供的其他服务之间的关系。在很多情况下,这个数据模型可使用YANG建模语言来构建。


 - 一般使用现代的RESTFUL(Representational State Transfer,表征状态转移)API 来将控制服务提供给应用程序使用,为主要的控制器和应用程序之间的交互提供便利。
        理想情况下,API是通过描述控制器服务和特性的数据模型来提供的,在一些情况下,控制器和对应的API开发环境的一部分,这个开发环境可以从数据模型中产生相应的API代码,一些系统提供一个允许扩展核心功能并为新的模块发布API的开发环境,有些系统甚至支持控制器功能的动态扩展


 - 安全的控制会话
     即控制器和网元设备中相应的代理之间的TCP会话


 - 一个基于标准的、用于在网元设备上配置应用程序驱动的状态的协议

市场上的SDN控制器

1、VMware的控制器
提供了一个数据中心的服务编排解决方案及已成为事实标准的私有的SDN控制器和代理实现
2、Nicira的控制器
Nicira发布的网络虚拟化平台(NVP)
3、VMware/Nicira的控制器

4、OpenFlow相关的控制器

5、Mininet仿真器

6、NOX/POX控制器
POX是更新的、基于Python的NOX的版本,POX的开发是为要还原NOX的C++核心,并开发一个独立的基于Python的平台,POX有一套高级的SDN API,包含一个可查询的拓扑图以及对虚拟化的支持。
7、Trema控制器
Trema是一个为开发Openflow控制器设计的Openflow的编程框架。
8、Ryu控制器
Ryu是一个基于组件的完全用Python实现的开源框架
Ryu的组件包括Openflow协议支持(支持到OF1.3,并包含Nicira的扩展)、时间管理、消息机制、内存状态管理、应用程序管理、基础设施服务和一系列可重用的库(例如NETCONF库,sFlow/Netflow库)。
此外,Ryu提供一些应用程序和服务,例如Snort(侦测)、二层交换机、GRE隧道抽象、VRRP、拓扑和统计服务等
在API层,Ryu有一个Openstack Quantum插件,支持基于GRE的叠加网络和VLAN配置
Ryu针对Openflow操作也提供了REST接口
9、Big Switch公司/Floodlight控制器

猜你喜欢

转载自blog.csdn.net/shiliang1995/article/details/75244515