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

一、实验目的

  1. 能够理解 POX 控制器的工作原理;
  2. 通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;
  3. 能够运用 POX控制器编写自定义网络应用程序,进一步熟悉POX控制器流表下发的方法。

二、实验环境

  1. 下载虚拟机软件Oracle VisualBox 或 VMware;
  2. 在虚拟机中安装Ubuntu 20.04 Desktop amd64;

三、实验要求

(一)基本要求

  1. 搭建下图所示SDN拓扑,协议使用Open Flow 1.0,控制器使用部署于本地的POX(默认监听6633端口)
    实验5:开源控制器实践——POX_desktop
  2. 阅读Hub模块代码,使用 tcpdump 验证Hub模块;
  • h1 ping h2,h3也可以收到数据包
    实验5:开源控制器实践——POX_oracle_02
  • h1 ping h3,h2也可以收到数据包
    实验5:开源控制器实践——POX_流程图_03
  1. 阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块。
  • 流程图
    实验5:开源控制器实践——POX_desktop_04
  • h1 ping h2
    实验5:开源控制器实践——POX_SDN作业_05
  • h1 ping h3
    实验5:开源控制器实践——POX_oracle_06

(二)个人总结

我觉得实验难度不高,实验环境在第一次实验时已经配置好,这次实验的主要的困难在于阅读l2_learning文档上,直接查看代码文档着实有些吃力。于是后面借助了百度翻译来帮助理解,虽然有些词翻译的有些不太正确,但是结合原文,可以勉强理解了大致流程,同时阅读速度也加快了。这次实验不仅学习了POX的一些知识,还让我意识到后续要加强英文和代码阅读能力。

实验中遇到的困难:

  • 打开xterm时,开了一个新的终端,导致无法正确打开,如下图
  • 解决:回到创建拓扑的终端可解决
    实验5:开源控制器实践——POX_流程图_07