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

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

一、实验目的

1.能够独立部署RYU控制器;

2.能够理解RYU控制器实现软件定义的集线器原理;

3.能够理解RYU控制器实现软件定义的交换机原理。

二、实验环境

1.下载虚拟机软件Oracle VisualBox或VMware;

2.在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;

三、实验要求

(一)基本要求

1.完成Ryu控制器的安装。

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

  • 搭建拓扑

  • 链接Ryu控制器

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

4.阅读Ryu文档的The First Application一节,运行并使用 tcpdump 验证L2Switch,分析和POX的Hub模块有何不同。
通过以下命令创建.py文件

touch L2Switch.py

然后在/ryu文件下打开相应文件,并输入相应代码。

(二)进阶要求

1.阅读Ryu关于simple_switch.py和simple_switch_1x.py的实现,以simple_switch_13.py为例,完成其代码的注释工作,并回答下列问题:
a) 代码当中的mac_to_port的作用是什么?
b) simple_switch和simple_switch_13在dpid的输出上有何不同?
c) 相比simple_switch,simple_switch_13增加的switch_feature_handler实现了什么功能?
d) simple_switch_13是如何实现流规则下发的?
e) switch_features_handler和_packet_in_handler两个事件在发送流规则的优先级上有何不同?

(三)实验报告

1.请用Markdown排版;

2.将Ryu的安装目录设定为:/home/用户名/学号,所有实验相关代码文件(如有)保存在目录/home/用户名/学号/lab6/中;

3.(一)需要提交在Ryu安装目录下执行ryu --version 结果截图,以及tcpdump的验证过程截图和附图说明,其余文字请勿赘述;

  • ryu --version 结果截图

  • h1 ping h2

  • h1 ping h3

由上述结果可知,相比于POX的Hub模块,L2Switch的相同之处在于:
二者实现的都是洪泛发送ICMP报文,所以在h2和h3可以看到都有抓到数据包。
不同之处在于:Ryu中,L2Switch下发的流表无法查看;而POX中Hub则可以查看。

4.(二)不做必须要求,有完成的同学请提交相关代码和运行结果,以及tcpdump的验证过程,代码保存目录同要求2,形式不限。

5.个人总结,包括但不限于实验难度、实验过程遇到的困难及解决办法,个人感想,不少于200字。
遇到的问题
本次实验难度,有实验5基础,相对较为顺利进行。但过程中仍旧会遇到一些问题:
1)安装Ryu的时候,输入安装依赖命令时进行不顺利的情况。

sudo apt install gcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev 
zlib1g-dev

有了上次的经验,很有可能是“l”与“1”搞混掉,遂将pdf内的命令行复制到其他显示设备上,果不其然是在pdf文档显示中字母l与数字1相像导致命令输入不准确。有了上次的经验后,再排查起来就很快速。

2)安装Ryu时,第(5)安装 Ryu,在 ryu 目录允许命令,漏掉最后面的“ .”,导致第一次提示错误。

sudo pip install .

要细心核对输入,不能有所遗漏。特别是代码输入,除了技法娴熟、代码命令积累足够运用熟练外,保证精确度准确度也是很有必要的,需要确保足够的细心。

3)安装Ryu时,第(6)查看版本,输入命令行,提示“ryu:error:the following arguments are required: subcommand,subcommand_args”

ryu -version

老师提供的pdf命令行有误,缺少一个“-”,正确的命令应为:ryu -–version

4)连接Ryu控制器时,直接在ryu目录下输入pdf文件中的命令,提示不存在文件;复查后发现已经是在ryu目录下进行操作,因此直接照搬命令,等于是多输入了一层ryu文件夹,才导致命令执行对应的文件夹找寻不到。

5)阅读Ryu文档的The First Application一节,创建L2Switch.py文件
使用touch命令创建py文件,后方可输入代码

个人感想:
本次实验较上次相对顺利,但在安装等过程中仍出现不够细心的情况。特别是像在连接Ryu控制器时,照搬了目录没有仔细观察,但好在及时就发现问题并解决。而在验证switch时,创建新的.py文件,并没有找到命令,需要再在网上搜索相关命令。

posted @ 2021-10-20 15:14  土二月  阅读(233)  评论(0编辑  收藏  举报