实验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请求下发硬超时流规则的时候,直接复制老师给的网址却出现error
The value '1\n' for key 'id' specified in the URI doesn't match the value '1
查询资料后没有找到结果,重新做了一次实验后发现还是有问题,询问助教后发现原来是复制网址的时候多了一个换行符。
- 在安装JAVA时,需将压缩包提前放在/usr/local/java目录下,在虚拟机中发现没有找到这个文件夹,询问同学后发现,可以将压缩包防到虚拟机中任意位置,然后用
- 个人感想:
这次实验要先安装新的实验环境,再完成实验。安装实验环境的过程对我来说比较艰辛,好几次都出现错误,通过不断地搜索资料并询问同学,才安装清楚。这次实验主要学习了用Postman调用OpenDayLight提供的API下发流表操作,实验内容不是很难,主要是对ODL和Postman使用不熟悉,操作起来不是很难,通过这次实验也熟悉了一些,但发现在使用ODL的过程中,多次出现虚拟机卡顿现象。