实验5:开源控制器实践——POX
实验目的
- 能够理解 POX 控制器的工作原理;
- 通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;
实验要求
1、搭建下图所示SDN拓扑,协议使用Open Flow 1.0,控制器使用部署于本地的POX(默认监听6633端口)
- 构建拓扑:sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow10
2、阅读Hub模块代码,使用 tcpdump 验证Hub模块;
- 开启POX: ./pox.py log.level --DEBUG forwarding.hub
- 开启主机终端 mininet> xterm h2 h3
- 在h2主机终端中输入 tcpdump -nn -i h2-eth0
- 在h3主机终端中输入 tcpdump -nn -i h3-eth0
- h1 ping h2
h2,h3都可以接收到数据包 - h1 ping h3
h2,h3都可以接收到数据包
3、阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块。
- 流程图
- 开启pox,运行L2_learning模块:./pox.py log.level --DEBUG forwarding.l2_learning
- h1 ping h2
h2收到数据包,h3没有收到数据包 - h1 ping h3
h3收到数据包,h2没有收到数据包
实验总结
- 实验中遇到了sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk主机可以ping通的问题,使用命令dpctl del-flows删除流表也不起作用,通过重启虚拟机解决了。使用./pox.py....命令不能加.py后缀。