软件定义网络实验教程
上QQ阅读APP看书,第一时间看更新

项目1 学习使用开源工具

任务一 抓包分析工具Wireshark使用介绍

任务目的

1. 熟悉并掌握Wireshark的基本使用方法,利用Wireshark抓取网络数据包。

2. 掌握Wireshark过滤器的使用方法,从而提高分析数据包的效率。

任务环境

抓包分析工具Wireshark使用介绍实验的拓扑如图1-1所示。

0

图1-1 实验拓扑

实验环境镜像配置说明如表1-1所示。

表1-1 实验环境镜像配置说明

0

注:系统默认的账户为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”时,表示交换机连接上控制器,如下所示。

0

二 Wireshark抓包设置

步骤1 选择控制器,打开终端。执行sudo wireshark命令,启动Wireshark,如图1-2所示。

Wireshark界面主要包括主工具栏、过滤工具栏和状态栏。

(1)主工具栏中左起前5个按钮与抓包操作有关,其余按钮分别与文件操作、数据包选择操作、配色及自动滚屏设置等有关。

(2)过滤工具栏用于过滤数据包,在输入框中手动输入过滤表达式或单击“Expression”按钮根据预定义的模板构造过滤表达式。

(3)状态栏主要显示抓包文件名及其所在目录。抓包文件中包含数据包数量、Wireshark实际显示出的数据包数量以及人为打上标记的数据包数量。

0

图1-2 Wireshark开始界面

步骤2 选择抓包网卡,单击“Capture> Options”,选择网卡eth0,界面如图1-3所示。

0

图1-3 Wireshark抓包页面

三 捕获OpenFlow数据包

步骤1 单击“开始”按钮开始抓包。

数据包列表的面板中会滚动显示所抓取的数据包,包括数据包的编号、时间戳、源地址、目标地址、协议、长度以及相关信息,如图1-4所示。

0

图1-4 Wireshark抓包信息

步骤2 在过滤工具栏中输入“openflow_v4”,过滤出OpenFlow协议并查看数据包详情,如图1-5所示。

由图1-5可知,一个数据包详情中主要包含5层,依次如下。

(1)Frame:物理层数据概况。

(2)Ethernet II:数据链路层以太网帧头部信息。

(3)Internet Protocol Version 4:互联网IP包头信息。

0

图1-5 过滤OpenFlow协议数据包

(4)Transmission Control Protocol:传输层数据段头部信息,此处是TCP。

(5)OpenFlow:位于TCP之上,负责解析应用层。

步骤3 在数据包详情中查看OpenFlow包的具体内容。OpenFlow包中主要字段包括协议版本、消息类型、消息长度、事件ID等,如图1-6所示。

0

图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”。