一、实验目的
- 能够编写程序调用OpenDaylight REST API实现特定网络功能;
- 能够编写程序调用Ryu REST API实现特定网络功能。
二、实验环境
- 下载虚拟机软件Oracle VisualBox或VMware;
- 在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet、OpenDaylight(Carbon版本)、Postman和Ryu;
三、实验要求
(一)基本要求
编写Python程序,调用OpenDaylight的北向接口实现以下功能
(1) 利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;
(2) 下发指令删除s1上的流表数据。
delete.py
python delete.py
(3) 下发硬超时流表,实现拓扑内主机h1和h3网络中断20s。
timeout.py
timeout.json
python timeout.py
(4) 获取s1上活动的流表数。
getflow.py
python getflow.py
编写Python程序,调用Ryu的北向接口实现以下功能
(1) 实现上述OpenDaylight实验拓扑上相同的硬超时流表下发。
(2) 参考Ryu REST API的文档,基于VLAN实验的网络拓扑,编程实现相同的VLAN配置。
提示:拓扑生成后需连接Ryu,且Ryu应能够提供REST API服务
(二)进阶要求
OpenDaylight或Ryu任选其一,编程实现查看前序VLAN实验拓扑中所有节点(含交换机、主机)的名称,以及显示每台交换机的所有流表项。
四、实验心得
- 本次实验真的做了好久好久,之前配置Ryu的时候出了问题,ODL也一直显示404Not Found,在网上找了很久的解决办法都没搞定,最终下定决心全部重装;
- 这次实验我个人的感觉是非常综合,关于ODL和Ryu还有前六次的一些细节全部融进本次实验了,所以难度还是有的;
- 总而言之我复习到了之前所有学习过的知识,例如VLAN的设置、硬超时的设置等。我也对一些相关指令的操作更加熟练,例如利用指令查看交换机上的流表,同时对控制器下发流表、交换机与控制器间的沟通有了更深的认识,对SDN的架构有了进一步的理解。