实验4:开源控制器实践——OpenDaylight

一、实验目的

1.能够独立完成OpenDaylight控制器的安装配置;
2.能够使用Postman工具调用OpenDaylight API接口下发流表。

二、实验环境

1.下载虚拟机软件Oracle VisualBox或VMware;
2.在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;

三、实验要求

(一)基本要求

1.配置JAVA环境,下载并解压安装OpenDaylight,版本选择Carbon 或 Beryllium;
2.下载并解压安装Postman;
3.利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器;
实验4:开源控制器实践——OpenDaylight

构造拓扑

sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13

实验4:开源控制器实践——OpenDaylight

先执行pingall,然后在ODL中查看拓扑

实验4:开源控制器实践——OpenDaylight

实验4:开源控制器实践——OpenDaylight

4.通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s。

实验4:开源控制器实践——OpenDaylight

(二)进阶要求

查找资料,整理和记录ODL控制器主要的REST API文档,包括但不限于ODL提供的文档链接,获取拓扑的交换机、获取流表状态数量、获取特定交换机端口的状态、新增修改和删除流表等。

  1. 获取拓扑的交换机

URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/network-topology(2013-07-12)/GET_network_topology_get_171

实验4:开源控制器实践——OpenDaylight

  1. 流表增删改查

URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_flow_get_198

实验4:开源控制器实践——OpenDaylight

  1. 获取指定交换机信息

URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_node_get_5

实验4:开源控制器实践——OpenDaylight

  1. 获取交换机中某个流表信息

URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_table_get_194

实验4:开源控制器实践——OpenDaylight

  1. 获取特定交换机端口的状态

URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-port-statistics(2013-12-14)/get_node_connector_statistics_post_0

实验4:开源控制器实践——OpenDaylight

四、实验总结

1. 实验难度:中等
2. 实验中遇到的问题

  • 实验环境安装问题:
    虽然这次实验还没有使用到ryu,但是在安装的的过程中我遇到了问题Error in the pull function
    实验4:开源控制器实践——OpenDaylight
    解决方法如图所示:将网址中的https改成git即可解决。

  • 没有先在Mininet CLI中运行h1 ping h3,再在Postman处选择动作PUT,导致无法得到实验结果

  • 重复打开Postman
    在文件夹里不小心点开了Postman,想通过命令行打开Postman出现如下问题:
    Could not get the lock, quitting
    原因:已经有Postaman在运行或者因为某种原因意外中止
    解决方法:执行pkill -fi Postman,尝试杀死Postman的所有实例

  • 重复构造同一个拓扑,需要先删除上一个构造过的拓扑
    执行sudo mn -c删除

3. 实验心得

本次实验操作不难,但是在安装实验环境上我耗费了很多时间。在安装Opendaylight时,本来想选择Carbon版本,但是下载的过程中一直出现网络问题无法下载,但是换了另一个Beryllium版本后就可以下载了。通过本次实验,我能够独立完成OpenDaylight控制器的安装配置,我也能够使用Postman工具调用OpenDaylight API接口下发流表,但是对Opendaylight和Postman的使用并不熟练,还需要多多练习、多多操作。

上一篇:实验4:开源控制器实践——OpenDaylight


下一篇:开源控制器实践——OpenDaylight