实验4:开源控制器实践——OpenDaylight
一、实验目的
能够独立完成OpenDaylight控制器的安装配置;
能够使用Postman工具调用OpenDaylight API接口下发流表。
二、实验环境
下载虚拟机软件Oracle VisualBox或VMware;
在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;
三、实验要求
(一)基本要求
-
配置JAVA环境,下载并解压安装OpenDaylight,版本选择Carbon 或 Beryllium,下载并解压安装Postman;
-
利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器;
构造上述拓扑
sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
执行pingall
,然后在ODL中查看拓扑:
3. 通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s。
(二)进阶要求
查找资料,整理和记录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
2. 流表增删改查
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_flow_get_198
3. 获取指定交换机信息
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_node_get_5
4.获取交换机中某个流表信息
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_table_get_194
5. 获取特定交换机端口的状态
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-port-statistics(2013-12-14)/get_node_connector_statistics_post_0
四、实验总结
遇到的错误和解决方法
- 由于建立拓扑命令输入错误而导致主机之间无法联通
实验心得
这次的实验操作起来并不难,前期安装java和ODL的环境上花费了比较多的时间。后期的实验,老师的PDF讲解的很详细,但做实验过程中,因为自己的粗心大意导致了一些简单的细节上的错误而浪费了许多的时间。本次实验学习了OpenDaylight开源控制器和它的使用方法,在本周的理论课上老师也介绍了ODL还有其他的一些控制器,在对ODL有了一定的了解的基础后再完成本次实验,让我对理论的理解更加深入透彻。本次实验还涉及到一些java编程的部分,让我真正感知到了SDN的核心思想--网络的可编程。