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

实验目的

  • 能够理解 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模块;
1.打开POX:

2.端口监听


3.验证:

  • h1pingh2
  • h1pingh3

    可以发现不论是h1 ping h3还是h1 ping h2 其他的主机都能接收到包。可以知道这为洪泛转发

三:阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块。
程序流程图:

一:在pox文件目录下开启终端,输入命令:./pox.py log.level --DEBUG forwarding.l2_learning开启switch模块
二:端口监听
h1 ping h2

h1 ping h3

当h1 ping h2时候只有h2有接收到数据包,而当h1 ping h3时候也同样只有h3能接收到数据包,因此验证了switch模块的自学习功能,数据包只会发送给相应的主机

个人感想

此次实验难度较大。中间遇到了较多问题。一开始忘记先进行端口的监听就开始主机之间的通信,无法得到结果。才发现出错了。
然后在对switch模块进行验证时,发现了端口非正常关闭的现象。在求助同学之后得知要重启虚拟机便可以了。
最后便是对代码的理解后画出流程图,难度高。
本次实验后对pox的使用有了初步的认识,对hub模块的洪泛转发功能和switch的自学习功能有了验证性的认识。也体验了主机的命令行终端下抓包的效果。

posted @ 2021-10-12 22:04  anamazingclown  阅读(85)  评论(0编辑  收藏  举报