任务目的
1、 熟悉并掌握Wireshark的基本使用,抓取网络数据包。
2、 掌握过滤器的使用方法,有效的提高捕获数据包、分析数据包的效率。
任务环境
设备名称 |
软件环境 |
硬件环境 |
控制器 |
Floodlight 1.0桌面版 |
CPU:1核 内存:2G 磁盘:20G |
交换机 |
Open vSwitch 2.3.1命令行版 |
CPU:1核 内存:2G 磁盘:20G |
主机 |
Ubuntu 14.04桌面版 |
CPU:1核 内存:2G 磁盘:20G |
注:系统默认的账户为root/root@openlab,openlab/user@openlab。
任务内容
1、 从Wireshark的界面入手,深入了解Wireshark强大的功能。
2、 使用Wireshark捕获OpenFlow数据包,利用捕获过滤器和显示过滤器快速筛选出OpenFlow数据包,并学会简单分析。
实验原理
Wireshark(前称Ethereal)是一个免费开源的网络数据包分析软件,用于截取网络数据包并尽可能显示出最为详细的网络数据包数据。1997年底,Gerald Combs需要一个能够追踪网络流量的工具软件作为其工作上的辅助,于是他开始撰写Ethereal软件。随后越来越多的人参与Ethereal的开发工作,2006年6月,因为商标的问题,Ethereal更名为Wireshark。Wireshark的特点有:
1、 支持数百种协议
2、 实时捕捉数据包和离线分析
3、 标准三窗格分组显示
4、 支持Windows,Linux,macOS,Solaris,FreeBSD,NetBSD等多平台
5、 捕获的网络数据可以通过GUI或TTY-modeTShark实用程序浏览
6、 业界最强大的显示过滤工具
7、 丰富的VoIP分析
8、 支持许多不同的捕获包格式
9、 捕获使用gzip压缩的文件可以动态解压缩
10、 实时数据可以从 Ethernet,IEEE802.11, PPP/HDLC, ATM,Bluetooth,USB,Token Ring,Frame Relay,FDDI等中读取
11、 支持对许多协议的解密,包括IPsec,ISAKMP,Kerberos,SNMPv3,SSL/TLS,WEP和WPA/WPA2
12、 着色规则可以应用于数据包列表,以进行快速,直观的分析
13、 输出可以导出为XML,PostScript,CSV或纯文本格式
Wireshark的实现基于分解器(dissector),网络上每一层的协议都有对应的分解器,分解器的作用是把每一层的信息分解,显示出首部字段,把有效载荷字段传递给上一层的分解器,以达到逐层分解的目的。使用Wireshark抓取网络数据包的流程如下:
1、 确定Wireshark的位置。如果没有一个正确的位置,启动Wireshark后会花费很长的时间捕获一些与自己无关的数据。
2、 选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。
3、 使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。
4、 使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤。
5、 使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。
6、 构建图表。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。
7、 重组数据。Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是一个重组一个完整的图片或文件。由于传输的文件往往较大,所以信息分布在多个数据包中。为了能够查看到整个图片或文件,这时候就需要使用重组数据的方法来实现。
实验步骤
一、实验环境检查
步骤1 以root用户登录交换机,执行如下命令初始化OVS。
#cd /home/fnic
#./ovs_init
步骤2 输入ovs-vsctl show命令检查网络连通性,当控制器连接状态显示为“true”时表示交换机连接上控制器,如下图所示。
说明:交换机镜像的用户名是root,密码是root@openlab。
二、 Wireshark抓包设置
步骤1 选择控制器,打开终端。输入sudo wireshark命令,启动Wireshark,如下图所示。
Wireshark界面如图所示,主要包括主工具栏、过滤工具栏和状态栏。
-
主工具栏中左起前5个按钮与抓包操作有关,其余按钮分别关于文件操作、数据包选择操作、配色及自动滚屏设置等。
-
过滤工具条用于过滤数据包,在输入框中手动输入过滤表达式或者单击“Expression”按钮根据预定义的模板构造过滤表达式。
-
状态栏主要显示抓包文件名及其所在目录,抓包文件中包含的数据包数量、Wireshark实际显示出的数据包数量以及认为打上标记的数据包数量。
步骤2 选择抓包网卡,单击“Capture -> Options”选择实际用来抓包的网卡,界面如下图所示:
三、 捕获OpenFlow数据包
步骤1 单击“Start”按钮开始抓包。数据包列表的面板中会滚动显示所抓取的数据包,包括数据包的编号、时间戳、源地址、目标地址、协议、长度以及相关信息,如下图所示。
步骤2 停止抓包。
步骤3 过滤出OpenFlow协议,查看数据包详情,如下图所示。
可以发现一个数据详情中主要包含五层,依次是:
-
Frame:物理层数据帧概况。
-
Ethernet II:数据链路层以太网帧头部信息。
-
Internet Protocol Version 4:互联网IP包头信息。
-
transmission control protocol:传输层数据段头部信息,此处是TCP。
-
OpenFlow:位于TCP协议之上,负责解析应用层。
步骤4 可以在数据包详情中查看OpenFlow包的具体内容。OpenFlow包中主要字段包括:协议版本、消息类型、消息长度、事件id等,如下图所示。
步骤5 保存数据。
-
选择“File -> Save”或者“File -> Save As”将所有数据包保存进一个文件。
-
选择“File -> Export Specified Packets”,保存已抓取数据包中一部分。导出数据的具体方法包括:
(1) 选择All packets,则保存所有已抓取的数据包。
(2) 选择Selected packets only,则保存当前鼠标选中的数据包。
(3) 选择Marked packets only,则保存当前标记的数据包。标记数据包的方法是在数据包列表中选中目标数据包,然后右击选择“mark packet toggle”。
(4) 选择First to last marked,则将两个标记数据包之间所有的数据包导出。
(5) 选择Range,并输入数据包的编号范围,则将编号连续的数据包导出。
(6) 选择 Remove ignored packets,则放弃部分数据包并导出其他所有数据包。放弃数据包的方法是,在数据包列表中选中数据包,右击,选择“ignore packet toggle”。
选择题
Wireshark的主要作用是()
A、截取并分析网络封包
B、修改封包内容
C、发送封包
D、检测并阻止入侵系统的病毒
正确答案: A
在Wireshark中过滤出源地址是192.168.1.101或者目标地址是192.168.1.102的数据包,正确的过滤表达式是()
A、ip.src==192.168.1.101 and ip.dst===192.168.1.102
B、ip.src == 192.168.1.101 or ip.dst == 192.168.1.102
C、ip.src =192.168.1.101 ,ip.dst=192.168.1.102
D、ip.src=192.168.1.101 or ip.dst=192.168.1.102
正确答案: B
下图中封包列表显示的是()协议的数据包
A、FTP
B、SSH
C、DNS
D、HTTP
正确答案: D
判断题
Wireshark可以同时抓取所有网卡上的数据包。
正确答案: 对
下图中封包详细信息界面中的Frame表示物理层的数据概况。
正确答案: 对