1 2 Fork me on GitHub 6

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

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

实验步骤

一、搭建拓扑,开启控制器,抓包

验证 Hub 模块

  • h1 ping h2

  • h1 ping h3

验证 Switch 模块

  • h1 ping h2

  • h1 ping h3

  • 可以看到在 learning 模式下首先会洪泛转发一次进行学习,之后只转发给指定的端口

二、L2_learning 模块代码流程图

个人总结

  • 本次实验难度正常,主要在于阅读相关模块代码。刚做 Switch 模块验证的时候疑惑于为何不相关的端口对应的主机也会收到一次 ICMP 报文。后来经过 DEBUG 日志查找,相关代码的阅读,发现了问题所在。原来是 Learning 模式会先进行包过滤,之后第一次包转发时会根据 macToPort 表来进行判断,表中若没有目的端口则进行一次洪泛转发,之后把对应端口加入表中,下一次转发时只转发到对应目的端口,以此达到交换机自学习的目的。
posted @ 2021-10-08 16:33  鹤寻  阅读(110)  评论(0编辑  收藏  举报
1