实验 6:OpenDaylight 实验——OpenDaylight 及 Postman实现流表下发
一、实验准备
- 推荐阅读: OpenFlow 协议超时机制简介
1.实验环境
- 安装了 Ubuntu 18.04.5 Desktop amd64 的虚拟机;
2.任务要求
- 熟悉 Postman 的使用;熟悉如何使用 OpenDaylight 通过 Postman 下发流表。
- 本实验通过 OpenDaylight 及 Postman 下发关于硬超时的流表,实现拓扑内主机 h1 和 h3 在一定时间内的网络断开。
- 拓扑,如下:
3.所需工具
- Mininet
- OpenDaylight
- Postman
二、实验过程
1.下载、试运行Postman
- 使用版本:Postman-linux-x64-7.33.1.tar.gz
- 下载地址: tip:站点会监测系统版本,请选择,下载 Linux 版本;
- 解压到/home/ubuntu/你的用户名/目录下即可。
sudo mkdir /home/ubuntu/lancl/myPostman
sudo cp /home/ubuntu/Downloads/Postman-linux-x64-7.33.1.tar.gz /home/ubuntu/lancl/myPostman //也可以选择文件管理窗口,进行可视化操作
cd lancl/myPostman
sudo tar -zxvf Postman-linux-x64-7.33.1.tar.gz
- 运行Postman
cd lancl/myPostman/Postman
./Postman
- 首次开启,点击下方的灰色logo名,可以跳过登录注册;直接注册也行。
2.开启OpenDaylight
cd lancl/OpenDaylight
./distribution-karaf-0.6.4-Carbon/bin/karaf
esp,遇到问题,如:
*** Adding controller
// Unable to contact the remote controller at 127.0.0.1:6633
- 方法一:重装feature
logout //退出odl
rm -rf distribution-karaf-0.6.4-Carbon/data //清空安装目录下的data文件夹;
./distribution-karaf-0.6.4-Carbon/bin/karaf clean
feature:install odl-restconf odl-l2switch-switch-ui odl-openflowplugin-flow-services-ui odl-mdsal-apidocs odl-dluxapps-applications
- 方法二:重装odl
// 删除整个文件夹
cd lancl/OpenDaylight
rm -rf distribution-karaf-0.6.4-Carbon
// 重新解压安装
tar -zxvf distribution-karaf-0.6.4-Carbon.tar.gz
./distribution-karaf-0.6.4-Carbon/bin/karaf
feature:install odl-restconf odl-l2switch-switch-ui odl-openflowplugin-flow-services-ui odl-mdsal-apidocs odl-dluxapps-applications
3.通过 Postman 的 Delete 动作清空残留流表
- DELETE
http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/
- Authorization
- TYPE:Basic Auth
- Username/Password:admin
- Send
4.清空 Mininet 数据,生成拓扑并连接 OpenDaylight
sudo mn -c
sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
pingall
- 如果不通:可能控制器有旧的流表残留(见步骤3);或者odl的feature没有安装好(见步骤2)。
quit
sudo mn -c
5.使用 Postman 填入 JSON 格式的 http 请求
- PUT
http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/flow/1
- Body–>raw–>JSON
– 参考链接: JSON 格式的请求代码
6.验证结果
- 先在 Mininet CLI 中运行 h1 ping h3,
h1 ping h3
-
再在 Postman 处选择动作 PUT,填入硬超时流表内容–>步骤5–>Send
-
最后,终止ping过程。
ctrl+c
图示,h1 ping h3 有 10 秒时间是中断的,结果符合预期。
7.扫尾工作
-
通过 Postman 的 Delete 动作清空残留流表;
-
退出Mininet CLI,并清空 Mininet 数据;
quit
sudo mn -c
exit
- 退出odl;
logout
- 关闭Postman图形界面。