实验7:基于REST API的SDN北向应用实践

实验7:基于REST API的SDN北向应用实践

一、实验目的

能够编写程序调用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

3.下发硬超时流表,实现拓扑内主机h1和h3网络中断20s

代码:
timeout.py

timeOut.json

4.获取s1上活动的流表数

编写Python程序,调用Ryu的北向接口实现以下功能
实现上述OpenDaylight实验拓扑上相同的硬超时流表下发。

代码:
ryu_timeout.py

ryu_timeout.json

参考Ryu REST API的文档,基于VLAN实验的网络拓扑,编程实现相同的VLAN配置。提示:拓扑生成后需连接Ryu,且Ryu应能够提供REST API服务提示:拓扑生成后需连接Ryu,且Ryu应能够提供REST API服务


(二)进阶要求

OpenDaylight或Ryu任选其一,编程实现查看前序VLAN实验拓扑中所有节点(含交换机、主机)的名称,以及显示每台交换机的所有流表项。

代码:
getall.py

(三)个人总结

这次的实验比起之前的实验比较难,学习了用OpenDaylight和Ryu的rest API来实现特定的要求,也还进一步学习了python的request库。在实验中遇到好几个问题

问题1:删除下发流表时一直报错,、

解决1:询问老师后知道是没有流表存在,不是报错,不需要进行删除操作,在下发过硬超命令后就能进行删除操作;

问题2:用curl命令删除流表一直报错

解决2:经常查阅材料知道了使用sudo apt install curl安装才可以使用

posted @ 2022-10-31 20:15  212106689许晓轩  阅读(23)  评论(0编辑  收藏  举报