实验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 表来进行判断,表中若没有目的端口则进行一次洪泛转发,之后把对应端口加入表中,下一次转发时只转发到对应目的端口,以此达到交换机自学习的目的。