项目1 学习使用开源工具
任务一 抓包分析工具Wireshark使用介绍
任务目的
1. 熟悉并掌握Wireshark的基本使用方法,利用Wireshark抓取网络数据包。
2. 掌握Wireshark过滤器的使用方法,从而提高分析数据包的效率。
任务环境
抓包分析工具Wireshark使用介绍实验的拓扑如图1-1所示。
图1-1 实验拓扑
实验环境镜像配置说明如表1-1所示。
表1-1 实验环境镜像配置说明
注:系统默认的账户为root/root@openlab、openlab/user@openlab。
任务内容
1. 从Wireshark的界面入手,深入了解Wireshark的功能。
2. 使用Wireshark捕获数据包,利用捕获过滤器和显示过滤器快速筛选出OpenFlow数据包,并学会简单分析。
实验原理
Ethereal是一个免费开源的网络数据包分析软件,用于捕获网络数据包并尽可能显示出最为详细的网络数据包数据。1997年年底,Gerald Combs需要一个能够追踪网络流量的工具软件作为其工作上的辅助,于是他开始撰写Ethereal软件。随后越来越多的人参与Ethereal的开发工作,2006年6月,Ethereal更名为Wireshark。Wireshark的特点如下。
1. 支持数百种协议。
2. 支持实时捕捉数据包和进行离线分析。
3. 支持标准三窗格分组显示。
4. 支持Windows、Linux、macOS、Solaris、FreeBSD和NetBSD等多平台。
5. 支持捕获的网络数据通过GUI或TTY模式的TShark实用程序浏览。
6. 业界最强大的显示过滤工具。
7. 支持丰富的VoIP分析。
8. 支持许多不同的捕获包格式。
9. 用gzip压缩方式对实时捕获的数据进行压缩和加密。
10. 支持对多种协议的解密,包括IPsec、ISAKMP、Kerberos、SNMPv3、SSL/TLS、WEP和WPA/WPA2。
11. 着色规则可以应用于数据包列表,以进行快速、直观的分析。
12. 输出可以导出为XML、PostScript、CSV或纯文本格式。
Wireshark的实现基于分解器(Dissector),网络上每一层的协议都有对应的分解器,分解器的作用是把每一层的信息分解,显示出首部字段,把有效载荷字段传递给上一层的分解器,以达到逐层分解的目的。使用Wireshark抓取网络数据包的流程如下。
1. 确定在哪个目录下启动Wireshark。若目录选择错误,将无法抓取到预期的数据包。
2. 选择捕获接口。一般选择连接到Internet网络的接口,才能捕获到与网络相关的数据。
3. 使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。用户在分析数据时,不会受其他数据干扰,还可以为用户节约大量的时间。
4. 使用显示过滤器。为了使过滤的数据包更细致,可以使用显示过滤器进行过滤。
5. 使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出地显示某个会话,可以使用着色规则高亮显示。
6. 构建图表。如果用户想要更明显地看出一个网络中数据的变化情况,使用图表的形式可以很方便地展现数据分布情况。
7. 重组数据。由于传输的文件较大,信息分布在多个数据包中。为了能够查看到整个图片或文件,需要使用重组数据的方法来实现。
实验步骤
一 实验环境检查
登录交换机,执行ovs-vsctl show命令检查网络连通性,当控制器连接状态显示为“true”时,表示交换机连接上控制器,如下所示。
二 Wireshark抓包设置
步骤1 选择控制器,打开终端。执行sudo wireshark命令,启动Wireshark,如图1-2所示。
Wireshark界面主要包括主工具栏、过滤工具栏和状态栏。
(1)主工具栏中左起前5个按钮与抓包操作有关,其余按钮分别与文件操作、数据包选择操作、配色及自动滚屏设置等有关。
(2)过滤工具栏用于过滤数据包,在输入框中手动输入过滤表达式或单击“Expression”按钮根据预定义的模板构造过滤表达式。
(3)状态栏主要显示抓包文件名及其所在目录。抓包文件中包含数据包数量、Wireshark实际显示出的数据包数量以及人为打上标记的数据包数量。
图1-2 Wireshark开始界面
步骤2 选择抓包网卡,单击“Capture> Options”,选择网卡eth0,界面如图1-3所示。
图1-3 Wireshark抓包页面
三 捕获OpenFlow数据包
步骤1 单击“开始”按钮开始抓包。
数据包列表的面板中会滚动显示所抓取的数据包,包括数据包的编号、时间戳、源地址、目标地址、协议、长度以及相关信息,如图1-4所示。
图1-4 Wireshark抓包信息
步骤2 在过滤工具栏中输入“openflow_v4”,过滤出OpenFlow协议并查看数据包详情,如图1-5所示。
由图1-5可知,一个数据包详情中主要包含5层,依次如下。
(1)Frame:物理层数据概况。
(2)Ethernet II:数据链路层以太网帧头部信息。
(3)Internet Protocol Version 4:互联网IP包头信息。
图1-5 过滤OpenFlow协议数据包
(4)Transmission Control Protocol:传输层数据段头部信息,此处是TCP。
(5)OpenFlow:位于TCP之上,负责解析应用层。
步骤3 在数据包详情中查看OpenFlow包的具体内容。OpenFlow包中主要字段包括协议版本、消息类型、消息长度、事件ID等,如图1-6所示。
图1-6 OpenFlow消息字段
步骤4 保存数据。
(1)选择“File > Save”或“File > Save As”将所有数据包保存到一个文件中。
(2)选择“File > Export Specified Packets”,保存已抓取数据包中一部分。导出数据的具体方法如下。
● 选择All packets,则保存所有已抓取的数据包。
● 选择Selected packets only,则保存当前鼠标选中的数据包。
● 选择Marked packets only,则保存当前标记的数据包。标记数据包的方法是在数据包列表中选中目标数据包,然后右击选择“mark packet toggle”。
● 选择First to last marked,则将两个标记数据包之间所有的数据包导出。
● 选择Range,并输入数据包的编号范围,则将编号连续的数据包导出。
● 选择Remove ignored packets,则放弃部分数据包并导出其他所有数据包。放弃数据包的方法是,在数据包列表中选中数据包,右击选择“ignore packet toggle”。