一、实验目的

  • 能够编写程序调用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的架构有了进一步的理解。