一、实验目的
- 能够独立完成OpenDaylight控制器的安装配置;
- 能够使用Postman工具调用OpenDaylight API接口下发流表。
二、实验环境
- 下载虚拟机软件Oracle VisualBox或VMware;
- 在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;
三、实验要求
(一)基本要求
1. 配置JAVA环境,下载并解压安装OpenDaylight,版本选择Carbon 或 Beryllium;
2. 下载并解压安装Postman;
3. 利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器;
4. 通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s。
-
用Postman创建请求
url:http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/flow/1
json:
执行h1 ping h3后用postman发送请求(二)进阶要求
- 查找资料,整理和记录ODL控制器主要的REST API文档,包括但不限于ODL提供的文档链接,获取拓扑的交换机、获取流表状态数量、获取特定交换机端口的状态、新增修改和删除流表等。
- api文档:
- 获取拓扑的交换机:
- 获取流表状态数量、新增修改和删除流表:
- 获取特定交换机端口的状态:
四、个人总结
-
实验难度:因为有过Java开发的经验,对于Postman的使用以及api文档都不陌生,所以感觉这次的实验难度比较简单,就是在安装环境那一块有点不顺畅
-
遇到的问题:
- 在安装OpenDaylight的插件时,直接复制了老师PDF文档中的命令,结果命令自带的换行符导致安装失败,后来重新输入命令也不行,一直打不开UI界面,最后把OpenDaylight删除掉重新解压再重新用命令安装插件解决 (直接复制命令到虚拟机要谨慎啊)
- 在安装Ryu时没有配置pip镜像源一直报超时,后来更换豆瓣的镜像源但是在豆瓣的仓库中找不到依赖。。最后换了清华的镜像源解决 (不谈了,清华nb)
- 查看Ryu版本时也是直接复制了PDF上的ryu –version 结果报错,后来自己手敲的成功,发现是因为PDF上的‘–’有问题,最后自己输入ryu --version才有结果 (还是不能过分依赖实验文档)
-
个人感想
这次在api文档中找api的过程让我深刻感受到英语的重要性,连单词都看不懂来找纯英文的api文档真的太痛苦了,最后还是借助百度完成api的整理。