一、实验内容:
1、下载安装virtualbox和mininet虚拟机
2、学习mininet的使用,阅读相关文献和网站,比如mininet walkthrough
3、采用线型(linear)或者树形(tree)拓扑,或者用python自定义拓扑。在该拓扑下,使用dpctl下发流表,完成两个host的ping操作,用wireshark或者tcpdump抓包,截屏并分析结果
二、实验原理
1、ARP request
host1 不知道host2的MAC地址,所以会发送ARP请求,交换机收到ARP包会产生Table miss,然后报告给控制器,实验中控制器经过查找发现MAC地址表没有ARP包中的目的MAC,然后会将此包发回给交换机,并让交换机广播出去,所以最终host2会收到此ARP包。
2、ARP reply
host2使用ARPreply回复host1,控制区就学习到了host2的MAC。
3、ICMP request
host1知道host2的MAC地址,因此发送echo request给host2,此包报告给控制器,然后控制器就会下发流表,然后由控制器发送flow——mod数据包,ONetSwitch收到此数据包,就会按照数据包内容来修改流表。
4、ICMP reply
host2此时也知道了host1的MAC地址,因此发送echo reply给host1.同样,控制器也会下发流表然后后面的icmp包就直接匹配流表到达目的地,不会再报告给控制器。
三、实验过程
1、安装virtualbox和mininet虚拟机
根据网上教程下载安装即可,不再赘述过程,下图为安装后界面,是有图形显示界面的。如果不下载安装moodle上的mininet,而直接从mininet官网上下载的话,安装的结果是一个黑色界面,没有蓝色的背景图像显示,当执行sudo wireshark &时结果也是无法进入,应该还需要再安装图像界面或者wireshark。本实验仅采用moodle上的mininet进行安装并做实验。