实验7:基于REST API的SDN北向应用实践

(一)基本要求

  1. OpenDaylight
    (1) 利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;
    SND第七次上机作业_网络拓扑
    SND第七次上机作业_平台搭建_02
    (2) 编写Python程序,调用OpenDaylight的北向接口下发指令删除s1上的流表数据。
    SND第七次上机作业_python_03
    SND第七次上机作业_网络拓扑_04
    (3) 编写Python程序,调用OpenDaylight的北向接口下发硬超时流表,实现拓扑内主机h1和h3网络中断20s。
    SND第七次上机作业_平台搭建_05
    SND第七次上机作业_平台搭建_06
    (4) 编写Python程序,调用OpenDaylight的北向接口获取s1上活动的流表数。
    SND第七次上机作业_python_07
    SND第七次上机作业_主机名_08
    2.Ryu
    (1) 编写Python程序,调用Ryu的北向接口,实现上述OpenDaylight实验拓扑上相同的硬超时流表下发。
    SND第七次上机作业_shell脚本_09
    SND第七次上机作业_主机名_10
    SND第七次上机作业_主机名_11
    (2) 利用Mininet平台搭建下图所示网络拓扑,要求支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确。拓扑生成后需连接Ryu,且Ryu应能够提供REST API服务。
    SND第七次上机作业_网络拓扑_12
    SND第七次上机作业_python_13
    SND第七次上机作业_平台搭建_14
    (3) 整理一个Shell脚本,参考Ryu REST API的文档,利用curl命令,实现和实验2相同的VLAN。
    SND第七次上机作业_主机名_15
    SND第七次上机作业_平台搭建_16
    SND第七次上机作业_shell脚本_17
    SND第七次上机作业_python_18
    SND第七次上机作业_网络拓扑_19
    SND第七次上机作业_shell脚本_20

心得:
本次实验首先要感谢一下先做完的几个同学,如炜龙和诗文,参考了他们的注意事项才能做完这个实验。然后在做ODL部分的时候,遇到了ImportError: No module named requests的报错,使用老师ppt上的方法无法解决,后来查阅资料,发现是因为安装了多个版本的python,有2.8和3.8,之后通过更改pyhton的默认版本得以解决。之后的Ryu部分,运行shell脚本的时候出现报错,后来询问同学得知是curl没有安装。总之,这次实验还是挺难的,有的问题需要查找很多资料才能解决。