一、mininet安装
sudo apt-get upadate
sudo apt-get upgrade
sudo apt-get install mininet
sudo mn
如下:
二、Ryu安装
sudo apt-get install python3-pip
sudo apt-get install git
git clone https://github.com/faucetsdn/ryu.git
cd ryu; pip install .
ryu-manager
如下:
三、Ryu自带可视化
cd ryu/ryu/app/gui_topology/
ryu-manager gui_topology.py --observe-links
sudo mn --controller=reomte --topo=tree,3,3
如下:
四、Ryu GUI可视化
1、下载Ryu的Web GUI补丁,将ryu/ryu中的gui/文件夹复制到Ryu的安装目录ryu/ryu中:
cp -r ./ryu/ryu/gui ~/ryu/ryu/
2、Ryu的Web GUI是通过Flask来显示的,需要安装以下依赖套件:
sudo apt-get install python3-flask
sudo apt-get install python3-gevent-websocket
3、由于在gui/templates/base.html文件中,用到了几个在线的库,而jsplumb这个库无法获取到,因此换用国内提供的在线库。在库里找到对应版本的链接用于替换base.html(使用记事本打开)中的isplumb库。
cd ryu/ryu/gui/templates/
sudo gedit base.html
源文件如下:
因此,从https://www.bootcdn.cn/jsPlumb/中找到对应版本的链接,用于替换掉上图中的链接。 替换后的base.html文件如下:
4、运行
sudo mn --controller=remote --topo tree,depth
ryu-manager --verbose --observe-links ryu.topology.switches ryu.app.rest_topology ryu.app.ofctl_rest ryu.app.simple_switch
cd ryu
python3 ./ryu/gui/controller.py
此时报错如下 : 分析错误为找不到client模块,即缺失client.py文件,解决方法如下:
git clone https://github.com/o3project/ryu-oe.git
cd ryu/ryu/app
cp ryu-oe/ryu/app/client.py ./
cd ryu
sudo python ./setup.py install
pip3 install .
python3 ./ryu/gui/controller.py
可以看到如下拓扑结构:
部署完成。 tutorial:
|