实验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 文件
- 命令行输入
python3 delete.py
(3)下发硬超时流表,实现拓扑内主机h1和h3网络中断20s。
- 创建并编写 timeout.py 文件
- 创建并编写 timeout.json 文件
h1 ping h3
终端输入python3 timeout.py
(4)获取s1上活动的流表数。
创建并编写 getflow.py 文件
命令行输入python3 getflow.py
2.编写Python程序,调用Ryu的北向接口实现以下功能
(1) 实现上述OpenDaylight实验拓扑上相同的硬超时流表下发。
- 创建并编写 ryu_timeout.py 文件
- 创建并编写 ryu_timeout.json 文件
-
关闭ODL控制器,关闭上次的拓扑并清除拓扑sudo mn -c
-
启动ryu控制器
ryu-manager ryu.app.simple_switch_13 ryu.app.ofctl_rest
- 创建拓扑
sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
h1 ping h3 , 运行python3 ryu_timeout.py
(2) 参考Ryu REST API的文档,基于VLAN实验的网络拓扑,编程实现相同的VLAN配置。
提示:拓扑生成后需连接Ryu,且Ryu应能够提供REST API服务
- 创建并编写 ryu_topo.py 文件
- 创建并编写 ryu_vlan.py 文件
-
关闭控制器,关闭上一次实验的拓扑并清除sudo mn -c
-
启动Ryu控制器
ryu-manager ryu.app.simple_switch_13 ryu.app.ofctl_rest
-
创建拓扑
sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
-
删除流表
curl -X DELETE http://127.0.0.1:8080/stats/flowentry/clear/1
curl -X DELETE http://127.0.0.1:8080/stats/flowentry/clear/2
运行python3 ryu_vlan.py
pingall
标签:Ryu,--,py,REST,API,SDN,ryu From: https://www.cnblogs.com/bajzgayta/p/16828901.html