实验五:开源控制器实践——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的自学习功能有了验证性的认识。也体验了主机的命令行终端下抓包的效果。
分类:
FZU软件定义网络作业
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了