实验5:开源控制器实践——POX

实验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模块;
  3. 阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块。

 

(二)实验报告

  1. 请用Markdown排版;
  2. 所有实验相关代码文件(如有)保存在目录/home/用户名/学号/lab5/中;
  3. 基础要求只需要提交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

 

 

  1. 本次实验动手部分难度不高,照着老师的文档和阅读基本代码模块都能得到实验结果,但是真正理解起来真要命,文档一大堆,试着看过一遍英文文档。通过这次实验学会了pox的一些应用以及tcpdump命令,能够使用tcpdump进行抓包。主要在于阅读py模块代码和帮助文档,由于英文不是很好,看起来很花费时间。
posted @ 2022-10-19 19:52  界冢伊奈帆  阅读(96)  评论(0)    收藏  举报