实验 6:OpenDaylight 实验——OpenDaylight 及 Postman实现流表下发

一、实验准备

1.实验环境

  • 安装了 Ubuntu 18.04.5 Desktop amd64 的虚拟机;

2.任务要求

  • 熟悉 Postman 的使用;熟悉如何使用 OpenDaylight 通过 Postman 下发流表。
  • 本实验通过 OpenDaylight 及 Postman 下发关于硬超时的流表,实现拓扑内主机 h1 和 h3 在一定时间内的网络断开。
  • 拓扑,如下:

3.所需工具

  • Mininet
  • OpenDaylight
  • Postman

二、实验过程

1.下载、试运行Postman

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图形界面。
posted @ 2020-10-08 20:02  兰小路  阅读(378)  评论(0编辑  收藏  举报