实验4:开源控制器实践——OpenDaylight
一、实验目的
- 能够独立完成OpenDaylight控制器的安装配置;
- 能够使用Postman工具调用OpenDaylight API接口下发流表。
二、实验环境
Ubuntu 20.04 Desktop amd64
三、实验要求
(一)基本要求
-
利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器;
- 打开OpenDaylight 控制器
./distribution-karaf-0.4.4-Beryllium-SR4/bin/karaf feature:install odl-restconf odl-l2switch-switch-ui odl-openflowplugin-all odl-mdsal-apidocs odl-dlux-core odl-dlux-node odl-dlux-yangui
-
在命令行输入
sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
- 在mininet命令行中输入
pingall
- Mininet拓扑生成并连接控制器的结果
- Mininet中ping测试截图
-
通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s。
- 在含有Postman文件的页面打开终端,输入命令
./Postman
运行Postman - 先在Mininet CLI中运行h1 ping h3,再在Postman处选择动作PUT
- 执行结果
- 在含有Postman文件的页面打开终端,输入命令
(二)进阶要求
查找资料,整理和记录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-flow-table-statistics(2013-12-15)/get_flow_tables_statistics_post_0
(3)获取特定交换机端口的状态
- URL:
http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-port-statistics(2013-12-14)/get_node_connector_statistics_post_0
(4)新增修改和删除流表
- URL:
http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_flow_get_198
个人总结
- 实验中遇到到了pingall无法ping通,发现是因为速度太慢的问题,多试几次就可以ping通。
- 通过本实验能够独立完成OpenDaylight控制器的安装配置;拓扑连接OpenDaylight以及OpenDaylight查看拓扑结果;能够使用Postman工具调用OpenDaylight API接口下发流表;能够查找计录ODL控制器主要的REST API文档。
- 实验内容不是很难,主要是对ODL和Postman使用不熟悉,操作起来不是很难,通过这次实验也熟悉了一些,但发现在使用ODL的过程中,多次出现虚拟机卡顿现象。