一、实验目的
1.能够运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包;
2.能够借助包解析工具,分析与解释 OpenFlow协议的数据包交互过程与机制。
二、实验环境
1.下载虚拟机软件Oracle VisualBox;
2.在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;
三、实验要求
(一)基本要求
1.搭建下图所示拓扑,完成相关 IP 配置,并实现主机与主机之间的 IP 通信。用抓包软件获取控制器与交换机之间的通信数据包。
- 配置网段
- 配置IP地址
- 保存为py文件
运行sudo wireshark命令,并选择any模式进行抓包,开启另一个终端,命令行运行topo.py文件,运行pingall
2.查看抓包结果,分析OpenFlow协议中交换机与控制器的消息交互过程,画出相关交互图或流程图。
- (1)Hello:当连接启动时交换机和控制器会发送Hello交互。
OFPT_HELLO 源端口6633 -> 目的端口46038,从控制器到交换机
交换机46038端口(OpenFlow 1.5)--- 控制器6633端口
- OpenFlow交换机与OpenFlow控制器之间通过TCP三次握手过程建立连接,使用的TCP端口号为6633。
- TCP连接建立后,交换机和控制器就会互相发送hello报文。Hello报文负责在交换机和控制器之间进行版本协商,该报文中OpenFlow数据头的类型值为0。
(2)Features Request:控制器发向交换机的一条OpenFlow 消息,目的是为了获取交换机性能,功能以及一些系统参数。该报文中OpenFlow 数据头的类型值为5。
- 控制器6633端口(OpenFlow 1.0) ---> 交换机46038端口
(3)Features Reply: 由交换机向控制器发送的功能响应(Feature Reply)报文,描述了OpenFlow交换机的详细细节。控制器获得交换机功能信息后,OpenFlow协议相关的特定操作就可以开始了。
- 交换机46038端口(openflow 1.0)--- 控制器6633端口
该报文中OpenFlow 数据头的类型值为6.
(4)Packet_in
- 分析抓取的数据包,可以发现是因为交换机发现此时自己并没有匹配的流表(Reason: No matching flow (table-miss flow entry) (0)),所以要问控制器如何处理
- Packet-in的原因,分两种:
- 0: 无匹配
- 1: 流表中明确提到将数据包发送至控制器
(5)Flow_mod
- 分析抓取的flow_mod数据包,控制器通过6633端口向交换机46038端口、交换机46038端口下发流表项,指导数据的转发处理
(6)Packet_out
(7)port_status
(二)进阶要求
(1)Hello
(2)Features Request
(3)Set Conig
(4)Port_Status
(5)Features Reply
(6)Packet_in
(7)Flow_mod
(8)Packet_out
三、个人总结
OpenFlow协议是SDN(Software-Defined Networking)的重要协议之一,它为网络设备提供了开放的、标准化的接口,使得网络设备的控制平面和数据平面分离,实现了网络的可编程性和可扩展性。OpenFlow协议的出现,对网络技术的发展产生了深远的影响,也为网络管理带来了许多启示。
首先,OpenFlow协议的实现使得网络设备的控制平面和数据平面分离,从而提高了网络的性能和稳定性。传统的网络设备通常是硬件厂商定制的,由于硬件设备的限制,使得网络设备的数据平面和控制平面耦合度较高,一旦出现问题,就需要硬件厂商进行修复,这不仅效率低下,而且也会影响网络的稳定性。而OpenFlow协议的出现,使得网络设备的数据平面和控制平面分离,从而可以由软件厂商进行管理和优化,提高了网络的性能和稳定性。
其次,OpenFlow协议的出现为网络管理带来了许多便利。传统的网络管理方式通常是人工管理或者使用一些简单的自动化工具进行管理,这种方式不仅效率低下,而且难以实现大规模的网络管理。而OpenFlow协议的出现,使得网络管理可以通过编程的方式实现,这不仅可以提高管理的效率,而且还可以实现更精细化的管理,比如对网络流量进行更精细的控制和管理。
此外,OpenFlow协议的出现也推动了网络技术的发展。由于OpenFlow协议是开放的、标准化的协议,因此可以支持多种网络设备厂商和网络应用厂商,这不仅可以促进网络技术的发展,而且还可以提高网络的安全性和可靠性。同时,OpenFlow协议的出现也推动了SDN技术的发展和应用,SDN技术可以实现网络的集中管理和自动化配置,从而提高了网络的灵活性和可扩展性。