1、日本NTT公司推出的轻量级、开源SDN控制器
2、Ryu架构
图片
3、Ryu安装
apt-get update 更新apt-get
apt-get install git 安装git
apt-get install python-pip 安装pip
pip install --upgrade pip 更新pip
git clone https://github.com/osrg/ryu.git 下载ryu源码
cd ryu
pip install -r tools/pip-requires 下载ryu依赖软件
python setup.py install 安装ryu
遇到问题后,解决问题后需要重新安装ryu
4、ryu一键安装脚本
ryuinstallhelper(https://github.com/sdnds-tw/ryuInstallHelper)
5、资源推荐
Ryubook: https://osrg.github.io/ryu/resources.html#books
Sdnlab: https://www.sdnlab.com/?s=ryu
QQ群: 258264125
6、mininet安装
git clone https://gtihub.com/mininet/mininet.git
cd mininet/
cd util/
./install.sh -n3V 2.5.0
7、启动ryu应用
ryu-manager ruy/ryu/app/simple_switch.py
8、启动mininet
mn --controller=remote 使用默认拓扑(一台交换机下挂两台主机),并设置远端控制器(没有设置IP地址默认是本机上的控制器)
9、Learning Switch/自学习交换机
有两个表:MAC address table
Flow table(位于datapath)
10、Ryu Learning Switch脚本
11、Ryu应用开发
12、怎么编程:从宏观到微观、从架构到实现
明确问题——设计解决方案——确定具体技术方案——部署实施——验证方案——优化
example:
如何实现软件定义的集线器?——通过控制器来实现集线器算法(泛洪),然后指导数据平面实现集线器操作——控制器选用Ryu数据平面通过Mininet模拟——在控制器上编程开发集线器应用/创建网络实验为验证方案做准备——运行程序调试程序验证程序——验证成功后优化程序
13、sdn应用程序:是在控制器ryu上编写