实验5:开源控制器实践——POX
一、实验目的
1.能够理解 POX 控制器的工作原理;
2.通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;
3.能够运用 POX控制器编写自定义网络应用程序,进一步熟悉POX控制器流表下发的方法。
二、实验环境
Ubuntu 20.04 Desktop amd64
三、实验要求
(一)基本要求
1.搭建下图所示SDN拓扑,协议使用Open Flow 1.0,控制器使用部署于本地的POX(默认监听6633端口)
2.阅读Hub模块代码,使用 tcpdump 验证Hub模块;
h1 ping h2
h1 ping h3
3.阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块;
流程图
h1 ping h2
h1 ping h3
(三)实验报告
个人总结
这次实验难度偏大,在实验过程中也遇到了不少的困难,同时也学会了很多东西。
最开始,进入mininet界面后pingall一直ping不通,最后通过询问其他同学才发现原因是自己没有先打开POX;后面搭建SDN拓扑时没有将协议设为Open Flow 1.0,导致使用 tcpdump 验证Hub模块时,抓包一直无法成功;对于l2_learning 模块的理解十分有难度,最后结合了网上所搜索到的资料才将程序的结构分析清楚,并画出流程图。
虽然这次实验难度很大,花费了我不少时间和精力才将实验完成,但同时也学到了不少新知识,了解并学习使用pox控制器,初步了解了其中的一些基础操作和阅读理解了其中一些模块的代码,同时对于流表下发、交换机工作原理等知识有了更深的理解。