实验6:开源控制器实践——RYU

一、实验目的

能够独立部署RYU控制器;
能够理解RYU控制器实现软件定义的集线器原理;
能够理解RYU控制器实现软件定义的交换机原理。

二、实验环境

下载虚拟机软件Oracle VisualBox或VMware;
在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;

三、实验要求

(一)基本要求

完成Ryu控制器的安装。

搭建下图所示SDN拓扑,协议使用Open Flow 1.0,并连接Ryu控制器。

使用命令ryu-manager ryu/ryu/app/gui_topology/gui_topology.py --observe-links连接ryu控制器

使用命令sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow10

通过Ryu的图形界面查看网络拓扑。

阅读Ryu文档的The First Application一节,运行并使用 tcpdump 验证L2Switch,分析和POX的Hub模块有何不同。

使用命令ryu-manager L2Switch.py

h1 ping h2

h1 ping h3

通过上述实验可以看到均为洪泛转发ICMP报文

两个模块都使用的是洪泛转发 ICMP 报文,当h1 ping h2时 h3都能抓到数据包。L2Switch 与 Hub 模块的不同在于———— L2Switch 下发的流表无法在 mininet 查看(如下图),Hub 可以。

四、个人总结

这次实验难度比上次略难,完成还算是顺畅。但还是遇到了一些问题,好在在同学的帮助下一一解决了。如h1 ping h2 时,h2,h3终端无反应。找到的方法是应先开启控制器,然后重新建立拓扑。通过这次的学习,理解了RYU控制器实现软件定义的集线器原理,以及RYU控制器实现软件定义的交换机原理。对RYU有了更深的理解

posted @ 2021-10-20 17:48  陈宫  阅读(70)  评论(0编辑  收藏  举报