实验5:开源控制器实践——POX
实验5:开源控制器实践——POX
一、实验目的
- 能够理解 POX 控制器的工作原理;
- 通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;
- 能够运用 POX控制器编写自定义网络应用程序,进一步熟悉POX控制器流表下发的方法。
二、实验环境
Ubuntu 20.04 Desktop amd64
三、实验要求
(一)基本要求
- 搭建下图所示SDN拓扑,协议使用Open Flow 1.0,控制器使用部署于本地的POX(默认监听6633端口)
- 阅读Hub模块代码,使用 tcpdump 验证Hub模块;
- 阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块。
(二)实验报告
- 请用Markdown排版;
- 所有实验相关代码文件(如有)保存在目录/home/用户名/学号/lab5/中;
- 基础要求只需要提交h1 ping h2、h2和h3的tcpdump抓包结果截图,外加L2_learning模块代码流程图,其余文字请勿赘述;
生成拓扑后,开启POX:./pox.py
log.level --DEBUG forwarding.hub
使用命令mininet> xterm h2 h3开启主机终端
在h2主机终端中输入tcpdump -nn -i h2-eth0
在h3主机终端中输入tcpdump -nn -i h3-eth0
1) h1 ping h2
2) h2 ping h3
L2_learning模块代码流程图
生成拓扑后,开启POX:./pox.py log.level --DEBUG forwarding.l2_learning
1) h1 ping h2
h2收到数据包,h3没有收到数据包
2) h1 ping h3
- 本次实验动手部分难度不高,照着老师的文档和阅读基本代码模块都能得到实验结果,但是真正理解起来真要命,文档一大堆,试着看过一遍英文文档。通过这次实验学会了pox的一些应用以及tcpdump命令,能够使用tcpdump进行抓包。主要在于阅读py模块代码和帮助文档,由于英文不是很好,看起来很花费时间。