实验5:开源控制器实践——POX
实验5:开源控制器实践——POX
一、实验目的
- 能够理解 POX 控制器的工作原理;
- 通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;
- 能够运用 POX控制器编写自定义网络应用程序,进一步熟悉POX控制器流表下发的方法。
二、实验环境
- 下载虚拟机软件Oracle VisualBox 或 VMware;
- 在虚拟机中安装Ubuntu 20.04 Desktop amd64;
三、实验要求
(一)基本要求
-
搭建下图所示SDN拓扑,协议使用Open Flow 1.0,控制器使用部署于本地的POX(默认监听6633端口)
-
阅读Hub模块代码,使用 tcpdump 验证Hub模块;
h1 ping h2 (h2和h3都能同时接收到数据包)
h2 ping h3 (h1和h3都能同时接收到数据包)
-
阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块。
h1 ping h2 (h3没有收到数据包)
h2 ping h3 (h1没有收到数据包)
程序流程图
四、个人总结
- 实验难度:本次实验基础部分本身难度不大,难度主要在于流程图
- 实验过程遇到的困难及解决办法:在做本次实验的基础部分时没有碰到什么大问题,认真阅读pdf文档后只要按部就班基本能够顺利完成,但是在阅读L2_learning模块代码时,理解流程图的逻辑确实需要花了不少时间,结合代码作者所提供的思路简介,最后也是勉强将流程图完成了。
- 个人感想:在准备做本次实验之前,原本的虚拟机出了一些故障,命令行无法打开,经过努力还是没办法解决,最后重新创建了一个新的虚拟机。在重新配置环境的时候碰到了很多之前没有碰到的问题,也是费了很大的劲才解决。这让我认识到有的时候过程很顺利并不代表真的了解了整个过程,只能说这次运气好没有碰到问题,下次就不一定了,所以要尽可能学会碰到问题自己解决问题。本次实验花的时间比较久,主要是在阅读代码画流程图上,这一定程度上提高了我阅读代码和画流程图的能力与耐心,同时对pox控制器的工作原理以及使用方法有了初步了解。