- Ryu代码模块化风格明显,其整体架构与其他SDN控制器类似,大致可以分为控制层和应用层,架构如图所示
- 控制层主要包含协议解析、事件系统、基本的网络报文库类和内建应用等模块
- 应用层则是基于控制层提供的API编写的网络应用,以及支持Ryu和其他系统协同工作的组件和模块
- Ryu通过南向接口与数据平面的设备进行通信,通过北向接口完成应用层和控制层的通信
- 面向北向,Ryu提供了RESTAPI和RPC等接口,允许外界的进程与Ryu进行通信
因此实验人员可以在OpenStack或者其他程序上与Ryu通信,进而控制SDN网络
Ryu是一个特性丰富的SDN控制器
- 南向协议方面,不仅支持从1.0到1.5版本OpenFlow协议的特性及Nicira公司的拓展,还支持如OFConfig、OVSDB、VRRP和NET-CONF等其他南向协议。
- 北向方面,Ryu可以作为OpenStack的插件,也支持和开源入侵检测系统Snort 协同合作。
- Ryu 也支持使用Zookeeper 来实现高可用性( High Availability)的目标。
在内建应用方面,Ryu源码中已经包含了许多基础的应用,比如简单的二层交换、路由、最短路径和简单的防火墙。
部分重要的Ryu组件及其功能