安装步骤
打开终端,输入命令:
$sudo apt install python-pip #安装pip
cd /home/usrname/ryu #其实没有必要,使用pip install的方法会有默认的安装位置,之后在任何目录下都可以调用。
pip install ryu #使用pip方法安装(此时若想要知道ryu控制器安装的位置,可以输入pip show ryu, 可以发现,位置在/home/username/.local/lib/python2.7/site-packages)
ryu-manager #检验是否安装成功
出错了。。。。
解决方法1:
netstat -nltp | grep 6633 #看看RYU控制器监听的默认端口6633被哪个应用占用了。
kill此应用并重新尝试。
可以看出,端口6633被pid为108194的应用占用啦。
kill -9 108194 #解除端口6633的占用
解决方法2:
给RYU控制器重新换一个监听的端口。
RYU控制器正常运行啦~
此处参考链接:
将ryu控制器和mininet的控制器节点相连,测试能否连接成功。
打开另一个终端,输入:
sudo mn --controller=remote,ip=127.0.0.1,port=6633 #启动mininet,并且连接到远程ip = 127.0.0.1, port = 6633的ryu控制器。ryu控制器默认的端口为6633.
由右边的终端可以看出,mininet连接上了远端控制器,可以看到控制器的IP地址和端口号,以及控制器的pid。
ping一下两个主机,发现数据包全部丢失???
重新将ryu控制器和mininet的控制器节点相连,测试能否连接成功。
cd /home/username/ryu #进入ryu安装目录
ryu-manager --verbose ryu.app.simple_switch_13 #执行ryu应用程式
启动mininet, 命令如下:
cd /home/username/mininet
sudo mn --topo single,3 --mac --switch ovsk --controller remote -x #创建3个host,1个交换器(open vSwitch),外部控制器(openFlow controller)
此时,出现了5个命令窗口。分别为控制器c0, 交换机s1和3个hosts h0, h1, h2.
在交换机窗口分别输入以下命令:
ovs-vsctl show ovs-dpctl show #查看交换机信息
在mininet窗口输入:
h1 ping -c 4 h2
可以发现从h2发送了4个packets,全部被接收,因此 h1 和 h2 连接成功。
此处参考链接:
参考:
https://www.nctusam.com/2017/10/07/install-ryu-and-mininet-on-ubuntu-16-04/
目前内容就这么多,后续会持续更新~
新手学SDN,新手写文章,若有任何错误和建议请告知。