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

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

一、实验目的

  1. 能够编写程序调用OpenDaylight REST API实现特定网络功能;
  2. 能够编写程序调用Ryu REST API实现特定网络功能。

二、实验环境

  1. 下载虚拟机软件Oracle VisualBox或VMware;
  2. 在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet、OpenDaylight(Carbon版本)、Postman和Ryu;

三、实验要求

(一)基本要求

  1. 编写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服务

VLAN_ID Hosts
0 h1 h3
1 h2 h4
  • 创建并编写 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

posted @ 2022-10-26 16:27  窝叫小翠你嘞  阅读(40)  评论(0)    收藏  举报