一、实验目的
- 能够理解 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,h3也可以收到数据包
- h1 ping h3,h2也可以收到数据包
- 阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块。
- 流程图
- h1 ping h2
- h1 ping h3
(二)个人总结
我觉得实验难度不高,实验环境在第一次实验时已经配置好,这次实验的主要的困难在于阅读l2_learning文档上,直接查看代码文档着实有些吃力。于是后面借助了百度翻译来帮助理解,虽然有些词翻译的有些不太正确,但是结合原文,可以勉强理解了大致流程,同时阅读速度也加快了。这次实验不仅学习了POX的一些知识,还让我意识到后续要加强英文和代码阅读能力。
实验中遇到的困难:
- 打开xterm时,开了一个新的终端,导致无法正确打开,如下图
- 解决:回到创建拓扑的终端可解决