实验4:开源控制器实践——OpenDaylight
实验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控制器;
-
先启动ODL控制器
./distribution-karaf-0.6.4-Carbon/bin/karaf
-
再构造如图所示的拓扑
sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
-
执行pingall,然后在ODL中查看拓扑:
4.通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s。
(二)进阶要求
1.查找资料,整理和记录ODL控制器主要的REST API文档,包括但不限于ODL提供的文档链接,获取拓扑的交换机、获取流表状态数量、获取特定交换机端口的状态、新增修改和删除流表等。
-
获取拓扑的交换机
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/network-topology(2013-07-12)/GET_network_topology_get_171
-
流表增删改查
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_flow_get_198
-
获取指定交换机信息
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_node_get_5
-
获取交换机中某个流表信息
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_table_get_194
-
获取特定交换机端口的状态
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-port-statistics(2013-12-14)/get_node_connector_statistics_post_0
四、实验总结
-
实验难度:适中
-
实验过程遇到的困难及解决办法:
- 1.安装opendaylight时遇到解压安装包以后,运行karaf无法启动ODL,用carbon和beryllium都出现了问题,删除重试以后还是出现一样的问题,后来,发现二者出现的问题内容不一致,碳版本完全不行,但是铍版本的问题是permission denied,询问同学以后,只要用sudo chmod -R 777 文件名,将该文件夹所属所有子目录和文件都授予权限即
- 2.安装Postman时,大意了,本来要下载软件,错误的下载了Postman Desktop Agent。
- 3.由于复制粘贴时换行有回车,所以会出现复制粘贴出错的问题,所以在安装插件以及进行后续实验时,出现了问题,导致后面pingall出现问题,后续实验出错,以及无法打开ODL图形化界面(界面显示404),于是便用sudo rm -rf 文件夹的命令删除了ODL文件夹中的data文件夹,重新安装了插件,就正常了。
- 4.安装ryu时,无法下载源码,在csdn了解到可以改用国内镜像源来下载安装。改了之后还是不行,然后我尝试切换网络运营商,从电信切换至移动就好了。
-
个人感想:
- 在实验前,环境配置和软件的安装有很多零零散散的问题,但都一一克服,有些问题就模模糊糊的解决了。我学到了如何在Linux环境下下载压缩包和使用命令解压压缩包。实验过程中需要注意细节,比如说应该先开启ODL控制器之后再建立拓扑,在使用Postman工具调用OpenDaylight提供的API下发流表时,也必须注意URL地址要正确。通过本次实验,我学习到ODL控制器的安装配置和它的使用方法,学会了如何借助ODL图形化界面可视化查看拓扑。 通过查找资料,学习了ODL控制器主要的REST API文档,如:获取拓扑的交换机、获取流表状态数量、获取特定交换机端口的状态、新增修改和删除流表等。