Ryu比floodlight功能少一点,但是更稳定,而且REST API更好用,毕业设计决定放弃floodlight转Ryu了
第一步,安装组件
$ sudo apt install python-eventlet
$ sudo apt install python-routes
$ sudo apt install python-webob
$ sudo apt install python-paramiko
第二步,git clone源码
$ git clone git://github.com/osrg/ryu.git
$ cd ryu
第三步,安装
$ sudo pip install -r tools/pip-requires
$ sudo python ~/ryu/setup.py install
第四步,验证
$ ryu --version
$ ryu-manager
看到下面输出就算正常
mitsuha@mitsuha-virtual-machine:~$ ryu --version
ryu 4.34
mitsuha@mitsuha-virtual-machine:~$ ryu-manager
loading app ryu.controller.ofp_handler
instantiating app ryu.controller.ofp_handler of OFPHandler
第五步,安装WebGUI
1.安装依赖
$ sudo pip install flask
$ sudo pip install gevent-websocket
2.下载GUI
$ wget https://github.com/yamada-h/ryu/archive/gui-patch-v3-rebase.zip
$ unzip gui-patch-v3-rebase.zip
$ cp ~/ryu-gui-patch-v3-rebase/ryu/gui ~/ryu/ryu/
3.修改switches.py
$ vim ~/ryu/ryu/topology/switches.py
4.注释掉其中的代码块,大约在48-56行
CONF.register_cli_opts([
cfg.BoolOpt('observe-links', default=False,
help='observe link discovery events.'),
cfg.BoolOpt('install-lldp-flow', default=True,
help='link discovery: explicitly install flow entry '
'to send lldp packet to controller'),
cfg.BoolOpt('explicit-drop', default=True,
help='link discovery: explicitly drop lldp packet in')
])
5.替换国内js插件源
gui/templates/base.html里的jsplumb插件国内不可用,替换成对应的版本的国内源
<script src="https://cdn.bootcss.com/jsPlumb/1.3.16/jquery.jsPlumb.min.js" type="text/javascript"></script>
6.补齐文件(如果遇到Disconnected问题)
Ryu的app有两种版本:
https://github.com/osrg/ryu/tree/master/ryu/app
https://github.com/o3project/ryu-oe/tree/master/ryu/app
如果通过$ git clone git://github.com/osrg/ryu.git
安装,则使用的是缺失client.py文件的app版本。所以需要将缺失的文件补齐。下载ryu-oe:$ git clone https://github.com/o3project/ryu-oe.git
$ cp -ri ryu-oe/ryu/app/* ~/ryu/ryu/app
7.重新安装
$ cd ~/ryu
$ sudo python setup.py install
8.安装完成后运行
$ ryu-manager --verbose --observe-links ryu.topology.switches ryu.app.rest_topology ryu.app.ofctl_rest ryu.app.simple_switch
运行GUI
$ ~/ryu/ryu/gui/controller.py
如果报错提示
ryu-manager: error: unrecognized arguments: --observe-links
那么前面第4步取消注释,再次安装
本文由 Mitsuha 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: 2020-11-24
博主是研究生吗
哈哈,不是,是正在备战研究生呢