实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现

摘要:
推荐阅读:SDNLAB文章:OpenFlow协议超时机制简介https://www.sdnlab.com/22563.html在这个实验中,OpenDaylight和Postman发送关于硬超时的流表,以在一定时间内实现拓扑中主机h1和h3的网络断开。指南手册的示例目录:/home/ubuntu/sdn/Postman,输入上述目录,运行Postman文件以清理旧数据,启动OpenDaylight,并通过Postman的DELETE操作清除残余流表(如果有)DELETEhttp://127.0.0.1:8181/restconf/config/opendaylight-资源清册:nodes/node/openflow:1/清除Mininet数据$sudom-c以生成拓扑并连接到OpenDaylight$sudom topo=single,3-controller=remote,ip=127.0.1,port=6633--switchovsk,protocols=OpenFlow13在正常情况下,三个主机是互连的。记住,在将邮递员压缩包放入虚拟机之前,先将其解压缩,这样它才能正常运行。
一、实验目的

熟悉 Postman 的使用;熟悉如何使用 OpenDaylight 通过 Postman 下发流表。

二、实验任务

流表有软超时和硬超时的概念,分别对应流表中的 idle_timeout 和 hard_timeout。
 idle timeout:如果值为非 0,那么在对应的时间内如果没有数据包匹配流表,时间到该流表将被删除;值为 0 不设软超时机制。
 hard timeout:如果值为非 0,那么在对应的时间内不论是否有数据包匹配流表,时间到流表都会被删除;值为 0 不设硬超时机制。

推荐阅读:SDNLAB 文章:OpenFlow 协议超时机制简介https://www.sdnlab.com/22563.html

本实验通过 OpenDaylight 及 Postman 下发关于硬超时的流表,实现拓扑内主机h1 和 h3 在一定时间内的网络断开。Postman 是一个 http 请求工具,可用于 REST API 的接口调试。实验拓扑如下:
实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现第1张

三 、 实验步骤

1. 实验环境

安装了 Ubuntu 18.04.5 Desktop amd64 的虚拟机

2. 实验过程

(1) Postman 安装

https://www.postman.com/downloads/

站点会监测系统版本,请下载 Linux 版本,解压到/home/ubuntu/你的用户名/目录下即可。指导书示例目录:/home/ubuntu/sdn/Postman,进入上述目录,运行Postman 文件即可
实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现第2张

(2) 清理旧数据

 启动 OpenDaylight,通过 Postman 的 Delete 动作清空残留流表(如有)
实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现第3张
实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现第4张

DELETE http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/

 清空 Mininet 数据
$ sudo mn -c

(3) 生成拓扑并连接 OpenDaylight

$ sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
正常情况下,三台主机是互通的。
实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现第5张
如果不通,可能控制器有旧的流表残留。

(4)使用 Postman 填入 JSON 格式的 http 请求

实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现第6张
先在 Mininet CLI 中运行 h1 ping h3,再在 Postman 处选择动作 PUT,填入硬超时流表内容(见附录),可以先阅读一下流表的内容,关注 match 匹配字段以及对应的 instructions 指令中的动作 action,这里是直接 drop 数据包。为了让流表能够匹配,将优先级 priority 调到最大。点击右上角 send,发送请求。

(5) 验证结果

实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现第7张
h1 ping h3 有 10 秒时间是中断的,结果符合预期。

(6)附录

JSON 格式的请求代码如下:

{
"flow": [
{
"id": "1",
"match": {
"in-port": "1",
"ethernet-match": {
"ethernet-type": {
"type": "0x0800"
}
},
"ipv4-destination": "10.0.0.3/32"
},
"instructions": {
"instruction": [
{
"order": "0",
"apply-actions": {
"action": [
{
"order": "0",
"drop-action": {}
}
]
}
}
]
},
"flow-name": "flow1",
"priority": "65535",
"hard-timeout": "10",
"cookie": "2",
"table_id": "0"
}
]
}

四、实验心得
本次实验需要安装postman,需要注意安装的是linux版本。将postman压缩包放入虚拟机前记得先解压,才能够正常运行。解压后的文件路径也要注意,否则很容易在终端里找不到文件。
此外,还要注意控制器中可能有流表残留,记得要清理。

免责声明:文章转载自《实验 6 : OpenDaylight 实验 ——OpenDaylight 及 Postman 实现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux用户创建及权限管理第三方应用授权下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

个人技术总结——postman的接口请求

一、技术概述 这个技术是做什么的 Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 学习该技术的原因 测试项目接口...

postman测试wsdl类型接口

1IP地址来源搜索 WEB 服务 接口信息http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 2 设置接口调用地址 3 设置请求方式为post 4打开body编辑器,设置body类型“text/xml” 5设置请求体 6发送请求...

postman使用之三:API请求和查看响应结果

请求 postman支持很多请求类型,界面左侧可以看到请求类型:get、post、put、patch等,右侧是发送和保存按钮,下方是请求支持的认证方式、信息头、信息体、私有脚本和测试结果。下面我们介绍下常用的get和put请求。 get请求 只需要选择get请求,输入接口地址,然后save,选择相应的文件夹 post请求 1. 选择get请求,输入接口地...

postman一直转圈圈,无法启动的终极解决方案

#事故现场 打开postman,一直转圈圈,如图: #解决方法 删除%appdata%目录下的postman文件就可以解决问题。这个文件夹是隐藏的,地址栏输入%appdata%即可进入此目录。打开以后找到postman,然后删除(必须关闭运行的postman),删除成功后,重新启动postman即可使用。 #友情提示 友情提示各位:按照这个步骤操作后,之...

postman的基本用法,请求,断言,环境变量

postman基本用法 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 它提供功能强大的 Web API & HTTP 请求调试。 它能够发送任何类型的HTTP 请求 (GET,HEAD, POST, PUT..), 附带任何数量的参数+ headers。   Postman功能:   主要用于模拟网络请求包  ...

Postman+ Newman (三)

一、Newman 环境配置 Newman是基于Node.js开发的可以运行postman的工具,使用Newman可以直接从命令行运行和测试postman集合,所以我们要先安装Node.js 1.1 安装Node.js 和 Newman 我们去 官网 下载合适的安装包 ,直接下一步 下一步就可以安装了 安装完成后我们验证一下 node -v npm -v...