ryu控制器安装教程

1 安装一些python的套件:

python-eventlet
python-routes
python-webob
python-paramiko

2 安装ryu

参考文章:https://www.sdnlab.com/11010.html

这里有一篇文章,显示说ryu3.19+的版本无法进行web ui的显示,我最初安装了4.31版本,发现无法下载gui-patch-v3-rebase进行web的拓扑图显示,只能通过ryu原生自带的拓扑图显示,因此这里推荐3.16版本。

git clone git://github.com/osrg/ryu.git
cd ryu
git tag
git checkout v3.16

 安装包下载好后,建议备份一份,以便之后使用。

  

 然后执行安装命令

sudo pip install -r tools/pip-requires
sudo python setup.py install
安装tools/pip-requires

 

安装完成

这里建议不要用python3和pip3安装,用python3或pip3会出现问题。

同时pip最好不要安装最新版,本次安装用的是系统自带的pip-8.1.1和python 2.7.12。

查看安装版本,测试安装是否完成

ryu --version
ryu-manager

 运行时出现报错,如下,这些报错比较好处理,一般网上都有解决方案。

ImportError: No module named oslo.config.cfg
'module' object has no attribute 'SSL_ST_INIT'

 sudo pip install oslo.config --upgrade

 sudo pip install pyopenssl --upgrade

其他错误的解决方案,参考博客https://www.cnblogs.com/cotyb/p/4598044.html

3 安装web gui

web gui有两种方式实现,一种是ryu原生的,另一种是下载gui-patch-v3-rebase实现。不过据查,ryu不支持显示主机,只能显示交换机和交换机之间的链路。

3.1 方式1 ryu原生实现

参考官方文档:https://ryu.readthedocs.io/en/latest/gui.html

安装ryu完毕,打开两个终端窗口。

终端1

PYTHONPATH=. ./bin/ryu run --verbose --observe-links ryu/app/gui_topology/gui_topology.py ryu/app/simple_switch_13.py

其中,--verbose参数用于显示LOG.debug信息,--observe-links用于指明拓扑发现。

终端2

sudo mn --controller remote --topo tree,depth=3

浏览器

http://127.0.0.1:8080/

测试联通性

3.2 方式2 gui-patch-v3-rebase实现

参考这篇文章https://www.cnblogs.com/zxqstrong/p/4780307.html

(1)下载Flask

sudo pip install Flask

(2)下载gevent-websocket

sudo pip install gevent-websocket

(3)下载gui-patch-v3-rebase.zip

wget https://github.com/yamada-h/ryu/archive/gui-patch-v3-rebase.zip

下载之后解压,先做一个简单的测试

进入gui-patch-v3-rebase/ryu/gui目录,运行controller.py文件

./controller.py

打开浏览器,输入127.0.0.1:8000

 

 如果浏览器出现报错,大概是500错误,无法打开页面,下面这几行语句可能出现error,这个之前碰到过,好像是因为我用python3和pip3安装,导致出现了问题,后来卸载Flask和gevent-websocket,重新安装后问题解决。

2019-04-08 13:54:55,586 [INFO] Running on ('0.0.0.0', 8000)
2019-04-08 13:55:03,733 [DEBUG] Initializing WebSocket
2019-04-08 13:55:03,733 [DEBUG] Validating WebSocket request
2019-04-08 13:55:03,734 [DEBUG] view loaded. views.topology
2019-04-08 13:55:03,749 [INFO] 127.0.0.1 - - [2019-04-08 13:55:03] "GET / HTTP/1.1" 200 4122 0.015587

如果能够正常打开页面,则说明gui没有问题,用ryu-gui-patch-v3-rebase目录下的ryu文件夹替换掉ryu目录下的ryu

然后进入/home/yongpu/ryu/ryu/gui目录,运行./controller.py,可以看到,运行正常

 4. 运行topo测试

打开三个窗口

窗口1

ryu-manager --verbose --observe-links  ryu.topology.switches ryu.app.rest_topology ryu.app.ofctl_rest ryu.app.simple_switch

ryu-manager --observe-links ryu.app.rest_topology ryu.app.ofctl_rest ryu.app.simple_switch_13

窗口2

sudo mn --controller remote --mac --topo tree,2,2 

窗口3

./controller.py

打开浏览器,输入127.0.0.1:8000

备注:不知道为什么,我这里进入网页很慢很慢,而且无法显示拓扑图,一直显示Unconnected状态,因此该方式未能成功实现。

4 一些RestApi

https://blog.csdn.net/jmh1996/article/details/72636628

1 得到所有交换机列表:

URL: http://192.168.1.197:8080/stats/switches 
使用GET方法 

2 得到某台交换机状态信息

URL : http://192.168.1.197:8080:/stats/desc/ 
方法:get 
其中 是可变的,由3.1 所得填入即可 

比如得到交换机1的基本信息: 
URL http://192.168.1.197:8080/stats/desc/1 

3 得到指定交换机的所有flow的状态信息

URL: http://192.168.1.197:8080/stats/flow/ 
方法:GET 

 

  • 9
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值