实验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,启动完成后打开浏览器访问http://127.0.0.1:8181/index.html进入ODL图形化界面
  • 在命令行中输入sudo mn --topo=single,3 --mac --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提供的文档链接,获取拓扑的交换机、获取流表状态数量、获取特定交换机端口的状态、新增修改和删除流表等。

(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_node_get_5

(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_table_get_200

四、个人总结

  • 实验难度:适中
  • 实验过程遇到的困难及解决办法:
    • 在安装JAVA时,需将压缩包提前放在/usr/local/java目录下,在虚拟机中发现没有找到这个文件夹,询问同学后发现,可以将压缩包防到虚拟机中任意位置,然后用sudo mv /usr/local/java命令将文件夹移入指定目录下。
    • 在安装ODL插件时发现出现错误,但输入命令三次后就可以了。
    • 安装Ryu时,在下载源码的时候第一次发现等了很久还是不行,重新输入了一次后就可以了。
    • 安装Ryu时,在ryu目录安装 OF-Config,NETCONF,BGP,Zebra 等功能需要的扩展包这一步输入sudo pip install -r tools/optional-requires命令,等了许久后出现错误ERROR : Could not find a version that satisfies the requirenent lxnl!=3.7.0,>=2.3(fron -r tools/optional-requires( line 1)) (from versions: none)以为和之前一样多试几次就可以了,没想到一直不行,查询资料后发现可能是使用的镜像源的问题,但还不知道怎么解决,询问同学后学习到可以采用清华镜像源,输入的命令改为sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r tools/optional-requires,在安装 Ryu,在 ryu 目录允许命令时,输入的命令也要改为sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple .
    • 在使用Postman模拟http请求下发硬超时流规则的时候,直接复制老师给的网址却出现errorThe value '1\n' for key 'id' specified in the URI doesn't match the value '1查询资料后没有找到结果,重新做了一次实验后发现还是有问题,询问助教后发现原来是复制网址的时候多了一个换行符。
  • 个人感想:

这次实验要先安装新的实验环境,再完成实验。安装实验环境的过程对我来说比较艰辛,好几次都出现错误,通过不断地搜索资料并询问同学,才安装清楚。这次实验主要学习了用Postman调用OpenDayLight提供的API下发流表操作,实验内容不是很难,主要是对ODL和Postman使用不熟悉,操作起来不是很难,通过这次实验也熟悉了一些,但发现在使用ODL的过程中,多次出现虚拟机卡顿现象。

posted @ 2021-10-03 15:33  jasf  阅读(1056)  评论(0编辑  收藏  举报