Java教程

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

本文主要是介绍实验4:开源控制器实践——OpenDaylight,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、实验目的

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

二、实验环境

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

三、实验要求

(一)基本要求

配置JAVA环境,下载并解压安装OpenDaylight,版本选择Carbon 或 Beryllium;
下载并解压安装Postman;
利用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中查看拓扑:

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

(二)进阶要求

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

  • 获取拓扑的交换机
    http://127.0.0.1:8181/apidoc/explorer/index.html#!/network-topology(2013-07-12)/GET_network_topology_get_171

  • 流表的增删改查

  • 获取特定交换机端口的状态
    http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/{id}

  • 获取交换机中某个流表信息
    http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/{id}/table/{id}

  • 获取特定交换机端口的状态
    http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-port-statistics(2013-12-14)/get_node_connector_statistics_post_0

实验总结

(一) 出现的问题

  1. 建立拓扑pingall后,主机均无法ping通
    解决方法:忘记开ODL控制器了,先在另一个终端开启ODL控制器后再建立拓扑即可ping通。

  2. 下发硬超时流表后,没有让h1 ping h3停止10秒
    解决办法:用postman下发流表时,authorization中的type选项要选择basci auth并在右侧填入admin即可。

  3. 安装ODL了出现报错Error executing command: Can't install feature odl-openflowplugin-flow-servicesui/0.0.0: null
    解决办法:该步的命令从 PDF 直接复制下来有的连接符会消失或变为空格,执行后会报错,注意核对。

(二)个人心得

本次实验难度不大,按部就班一步步来即可,主要是要细心不要漏了步骤。我做的时候因为粗心,跳了步骤导致出了错,以为是命令打错了啥的,搜了半天找不到原因,后来才发现是粗心跳过了些步骤,以后做实验要细心,一步步按部就班的来。通过本次实验学习了ODL控制器的安装配置和它的使用方法,学习了使用Postman工具调用ODL API接口下发流表。通过查找资料,学习了ODL控制器主要的REST API文档,如:获取拓扑的交换机、获取流表状态数量、获取特定交换机端口的状态、新增修改和删除流表等。

这篇关于实验4:开源控制器实践——OpenDaylight的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!