1.利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性
(1)先打开终端通过命令sudo wireshark启动wireshark工具,在wireshark中使用any捕获过滤器(以免捕捉不到某些在建立网络拓扑时就发送的报文)
(2)通过miniedit.py创建给定的拓扑
(3)设置主机h1的IP地址为10.0.0.1,设置主机h2的IP地址为10.0.0.2;
(4)勾选start CLI,并支持OpenFlow 1.0 1.1 1.2 1.3,Controller选择默认的openflow reference![]
(5)测试两台主机之间的网络连通性
2. 利用Wireshark工具,捕获拓扑中交换机与控制器之间的通信数据,对OpenFlow协议类型的各类报文(hello, features_request, features_reply, set_config, packet_in, packet_out等)进行分析,对照wireshark截图写出你的分析内容。
-
hello
控制器6633端口 ---> 交换机48704端口(最高能支持OpenFlow 1.0)
交换机48704端口--- 控制器6633端口(最高能支持OpenFlow 1.3)
于是双方建立连接,并使用OpenFlow 1.0
-
Features Request
控制器6633端口(我需要你的特征信息) ---> 交换机48704端口
-
Set Config
控制器6633端口---> 交换机48704端口
控制器对交换机flags和miss_send_len属性进行配置
flags:用来指示交换机如何才处理 IP 分片数据包。
miss_send_len:用来指示当一个交换机无法处理的数据包到达时,将数据包发给控制器的最大字节数。
-
Features Reply
交换机48704端口(这是我的特征信息,请查收)--- 控制器6633端口
-
Packet_in
交换机48704端口(有数据包进来,请指示)--- 控制器6633端口
-
Packet_out
控制器6633端口(请按照我给你的action进行处理) ---> 交换机48704端口
接下来是另一台交换机(端口48706)与控制器(端口6633)的交互过程
h1 ping h2
-
packet_in
-
flow_mod
PS.把控制器从openflow reference改成ovs controller
在hello报文中可以发现控制器支持的OpenFlow版本从1.0变成了1.3,因此,经过协商交换机和控制器之间将通过1.3版本的OpenFlow协议进行通信
-
flow_mod