资讯详情

读书随笔(6)Wireshark实践

本文从实战的角度介绍了本文 Wireshark 主要目的有三:
1 )分析网络协议,掌握网络知识和技能;
2 )定位网络故障,解决网络问题;
3 )为行业从业人员进一步提高专业技能创造基本条件。
Wireshark 基于开源的免费网络协议分析工具 GPL 发布,在业内有非
应用广泛,操作系统平台多种多样( Windows , Linux , MacOS ,各种 Unix
等)二进制包和源代码下载。可直接下载各操作系统对应的预编译包或
下载源码自行编译。
下载地址: https://www.wireshark.org/#download
写这篇文章时,最新版本是 3.2.0 ,本文主要以本版为背景进行讨论。
图 07-01 WireShark 运行环境的版本和配置
标题栏、菜单栏、工具栏自上而下依次显示过滤文本框、开放区、最近捕获
文件、捕获区、捕获过滤文本框、本机所有网络接口、学习区和用户
指南等。重点关注显示过滤、捕获过滤和本机网卡。
1 )显示过滤,在此输入过滤表达式,过滤已被抓住的包,如果不输入
进入表达式,所有抓取的包都会显示在这里;
2 )捕获过滤器,在这里输入过滤表达式,如果没有表达式,只能抓取特定的包,
所有监听到的包都抓到下来;
3 )目前计算机上的网卡及其流量状态。
选择要捕获数据的网卡,填写过滤规则,按快捷键 Ctrl E” ,
开始捕获。如果不需要填写捕获过滤规则,直接双击要捕获数据的网卡。

图 07-02 认识 Wireshark3.2.0 主界面
生产中最常见的分析是 C/S 和 B/S 因此,在服务器或个人电力中进行架构数据交互
大脑抓包是最常见的场景。
因为交换机分隔冲突域,路由器分隔广播域,监听者想要监听到服务器和客户
端的正常通信,就必须与正常通信的双方在同一个冲突域。所以,作为监听设备,
如果与通信的服务器或客户不在同一个冲突域,就无法接收到相关数据。
可以通过以下方式来实现:
1 )增加一台集线器( Hub ),实现三方共享冲突域,但由于 Hub 的性能普通
存在问题,这种过去常用的方法现在基本不用; 2 )增加一台 TAP ( Test Access Point ,分路器),也可达到同样的目的,转发
发性能相对较好,而且价格也不太高;
3 )端口镜像,灵活,功能强大,可以 1:1 、 1:N 、 N:1 监控,甚至可以做虚接
口流量的监听,比如说绑定组接口。不需要额外增加设备及费用,只需要在交换
机上简单配置即可。这种方式在生产中使用较多。
以华为普通交换机为例进行说明。
1 )观察端口:监听者连接的端口,用于接收被监听的流量;
2 )镜像端口:被监听的端口,把本端口的流量镜像到观察端口。
实验使用华为公司实验模拟器 eNSP 搭建,本文所使用的版本是
V100R002C000B510 。 PC1 和 PC2 分别模拟出现通信故障的服务器和客户端,
PC3 模拟装有 Wireshark 的监听者。如图 07-03 所示。

                            图 07-03 抓包实验拓扑
执行全局配置命令
查看全局配置会显示如下内容:
#
#
执行全局配置命令
接口 gig0/0/1 的配置如下:
#
#
经过以上配置,就可以把端口 gig 0/0/1 的进出流量镜像到 gig 0/0/3 了。
经过如上一番设置,在接口 gig 0/0/3 所连接的捕获电脑上,就可以接收到服务
器与客户端通信的流量了。这时只需要在监听电脑上打开已经安装好的
Wireshark ,选中要监听的网络接口,填上过滤规则,再次双击这个接口或按快捷
,就开始捕获了。如果停止捕获,可按按快捷键 。如下 图 07-04 所示。

                                       图 07-04 填入过滤规则,开始捕获数据
但是生产中的环境往往要比这复杂得多,我们有时需要监听的是服务器上的流
量,有时需要监听的是客户端的流量。不管是需要监听哪个设备的流量,只要把
这台设备连接的交换机的端口设置为镜像端口就可以了。
如果是为了学习而搭建的实验环境,想要捕获某条线路上的数据,只需要在这
条线路的圆点上单击鼠标左键,在弹出的快捷菜单中选择
命令就会打开 Wireshark ,并在这个线路上开始捕获数据。如下图 07-05 所示。

        图 07-05 在华为 eNsp 模拟器上开启抓包
不是所有的数据都要捕获,尤其是面临一些大流量的接口应用,比如绑定口,
一般的监听电脑承受不了这么大的流量接收与处理。
依次点击 ,打开捕获过滤对话框。如图 07-06
所示

                    图 07-06 打开捕获过滤的对话框
通过实验,发现并不能够将这里的规则直接应用,但是可以将这里的规则表达 式复制后填入到主界面捕获过滤对话框中。如下图 07-07 所示。

 

                                       图 07-07 捕获过滤对话框,其实只是一个示例
可以单独使用一个过滤表达式,也可以综合使用多个表达式,中间用逻辑运算
符进行相连,比如:或的关系用“ ||” ,且的关系用“ &&” 。
最常用的数据链路层过滤表达式示例如下:
只抓取特定目的 MAC 地址
只抓取特定源 MAC 地址
只抓取广播流量
不抓取广播流量
只抓取特定 VLAN 的流量
生产中,我们使用网络过滤表达式最多,常见示例如下:
1 )只抓取某主机的通信流量,以下四种皆可:
2 )只抓取源地址是某地址的流量 ,以下两种皆可:
3 )只抓取目的地址是某地址的流量,以下两种皆可:
只抓取端口号为 80 ( HTTP )的流量
只抓取目的端口号为 80 的流量
只抓取源端口号为 80 的流量
只抓取目的端口号从 2000-5000 的流量
使用以下三种逻辑运算符,可以组合成更高级的过滤表达式。
表 07-01 捕获过滤表达式逻辑运算符
示例:
只抓取 vlan 2 上非 vlan 3 的流量
只抓取与 www.ietf.org 主机和
www.ieee.org 主机通信的流量
显示过滤是在抓到的数据包的基础上进行按需筛选查看。显示过滤与抓包过滤
的表达式和作用都是不一样的。
显示过滤的表达式填写在主显示界面的 显示过滤文
本框。如下图 07-08 所示:

 

                                   图 07-08 使用显示过滤,只显示与特定主机通信的包
只显示某通信协议的数据内容,在显示过滤文本框中填入协议的名字即可,比
如:“ospf”,“ip”,“tcp”,“udp”,“arp”等。
如图 07-09 所示,通过使用 关键字过滤,只显示 ARP 报文。

                      图 07-09 通过使用显示过滤关键字,只显示 ARP 报文
通过使用 关键字,只显示 HTTP 协议及内容中包
的报文。如下图 07-10 所示。

                                             图 07-10 只显示 HTTP 协议数据特定内容
使用显示过滤表达式前,首先需要了解一下显示过滤运算符。
通过使用显示过滤运算符,可以形成显示过滤表达式,可以实现更多过滤显示
效果。
表 07-02 显示过滤运算符

 

比如,只显示特定主机的通信数据,在显示过滤文本框中,填入
,只显示抓取的数据包中,与 192.168.6.30 通信的数据包。如图
07-11 所示。

 

                                                        图 07-11 只显示与特定主机通信的包
1) 数据链路层显示过滤表达式
示例 1:只显示 MAC 地址后 3 位是 c2:a4:a2 包
示例 2:只显示 MAC 地址前 3 位是 00:00:83 包
2) 网络层显示过滤表达式
3) 传输层显示过滤表达式
示例 1:只显示某一个 TCP 流:
示例 2:只显示特定标识:
如果不是太记得关键字,可以点击主界面的显示过滤文本框后面的
,以获取更多的过滤选项。如图 07-12 所示。

 

                                         图 07-12 更多的显示过滤选项
如果单独使用一个表达式不能满足要求,还可以组合使用多个表达式。
表 07-03 显示过滤表达式逻辑运算符

 

Wireshark 允许选择一个序列的子序列。在标签后你可以加上一对[]号,在里
面包含用逗号分离的列表范围。
1)
上例使用 n:m 格式指定一个范围。在这种情况下,n 是起始位置偏移(0 表示没
有偏移,即是第一位,同理 1 表示向右偏移一位,便是第二位),m 是从指定起始
位置的区域长度。
上例表示源 MAC 地址的前三段是 00:00:83 的数据包。
2)
上例使用 n-m 格式一个范围。在本例中 n 表示起始位置偏移,m 表示终止位置偏
移。
上例表示源地址从第二到第三段是 00:83 的数据包。
3)
上例使用:m 格式,表示从起始位置到偏移偏移位置 m,等价于 0:m。
上例表示源 MAC 地址最后四段是 00:00:83:00 的数据包
4)
上例使用 n:格式,表示从最后位置偏移 n 个序列。
上例表示最后四位是 20:20 的数据包。
5)
上例使用 n 形式指定一个单独的位置。在此例中中序列中的单元已经在偏移
量 n 中指定。它等价于 n:1。
上例表示源 MAC 地址最后两位是 83 的数据。
6) Wireshark 允许用户将多个逗号隔开的列表组合在一起表示复合区域,如上例
所示。不过生产中我们很少有用。
文件保存为 ,每个文件的大小为
如下图 07-13 所示。

                                           图 07-13 设置文件自动保存
设置自动捕获停止条件为:当满足以下三个条件之一,停止捕获。
1)抓了 10000 个包;
2)保存了 10 个文件;
3)数据大小达到 10megabytes。
如下图 07-14 所示。

                                            图 07-14 自动停止捕获
做统计分析之前,先清除过滤表达式。
1)基于协议分级结构显示统计信息,
如下图 07-15 所示。

                                    图 07-15 基于协议分级结构显示统计信息
2)基于协议显示两点之间的通信流量,数据链路层流量,IPv4 流量,IPv6 流
量,TCP 流量,UDP 流量等。如下图 07-16 所示。

                                       图 07-16 基于协议显示两点之间的最大流量
根据需要,可以将特定的包另存为一个新的文件。比如,将已经显示过滤的内
容再保存为另外一个文件。依次点击打开菜单,
,打开导出特定包对话框。如图 07-17 所示。

图 07-17 将经过显示过滤的包导出为另外一个文件。
还可以将显示过滤过的包保存为其它格式。比如,“.txt”,但是新文件的内
容就没有那么丰富了。如图下 07-18 所示。

     图 07-18 将已经显示过滤的包导出为另外一个“.txt”文件
怀疑某个网络或某个接口受到了 ARP 攻击,不管是 arp miss 还是 arp
spoofing,都可以使用下面的办法定位到具体的攻击源。
对的故障的接口做端口镜像,镜像到观察接口,观察接口接监听的电脑。
一切就绪,设置过滤规则:
只监听 ARP 包,抓 10000 个就好了。
首先打开捕获选项对话框,依次打开菜单 ,打开如
图 07-19 捕获选项对话框。
工业生产中多数情况下使用的是有线网络,我们的示例用 Wi-Fi。只捕获 ARP 包。

                                    图 07-19 设置捕获的接口和捕获过滤规则
设置文件自动保存,每个文件大小不超过 10Megabytes。如图 07-20 所示。

 

图 07-20 设置文件自动保存,每个文件大小不超过 10Megabytes

设置捕获自动结束条件,抓够 10000 个包停止捕获。如图 07-21 所示。 

                     图 07-21 设置捕获自动结束条件。
点击 开始捕获,并回到主界面。
在主界面中,依次点击 ,显示会话通信量统
计,很容易看出网络中的主机对带宽的占用情况。如图 07-22 所示。
                                                             图 07-22 显示会话通信量统计
通过过使用显示过滤表达式 滤,只显示特定主 机会话的通信包。如图 07-23 所示。
             图 07-23 通过使用显示过滤表达式,显示特定 MAC 地址的数据包
如果这里有 ARP 攻击,就很容易看出来了:短时间内对多台主机发送发送了很
多 ARP Reply,每秒几十上百。很显然,我们的这个案例中并没有。其实我也很
想弄一个有攻击的、真实的环境来写文档的,可是环境模拟风险太高了,超出了
我的承受能力!
题外话:这里只介绍了一种检查 ARP 攻击的方法,并不是唯一的方法,甚至都
不是最好的方法,目的只是为了通过这样一个案例来学习使用 WireShark 工具分
析网络问题。
1)打开抓取的视频流文件。 RTP 使用 UDP 传输,在新的版本上可以直接显示为 RTP,如果是别人用老版本的软件抓取的包,显示就是 UDP。如果是 UDP 的包,需要先将 UDP 解码为 RTP。老
版本抓取的 UDP 数据视频流如图 07-24 所示。

 

                                                         图 07-24 打开抓取的视频流包
2)解码成 RTP。
选中视频流中的一个包,依次点击菜单 ,打开
对话框。
点击右下角的 号图标,添加一路要解码的流,把 UDP 53962 解码成 RTP。
即把 Curren 项选择为
点击 回到主界面。如下图 07-25 所示。

 

                                               图 07-25 解码成 RTP 对话框
3)选择流进行分析。
依次点击 ,打开 RTP 流分析对话框。
项为显示 RTP 的类型。如下图 07-26 所示。

 

                                                       图 07-26 显示所有的 RTP 流
4)分析。
选中这一路流,点击上图中的 按钮,开始分析,并显示分析结果。
分析结果显示如图 07-27 所示。
这一路流这一次抓取丢了 113 个包,丢包率是 0.70%,包乱序错误有 1 个,视
频时长为 27.93 秒。

                                                                图 07-27 RTP 流分析报告
在上图中,点击 按钮,还可以将 RTP 流的载荷保存成
格式的视频文件,然后通过播放器打开。如下图 07-28 和图 07-29 所示。

                                                        图 07-28 保存视频流到文件

 

                                         图 07-29 选择要保存的文件类型为“.raw”
,也可以写成 RTTP)是一
个网络传输协议,它是由 IETF 的多媒体传输工作小组 1996 年在 RFC 1889 中公布
的, https://datatracker.ietf.org/doc/rfc1889/ 。是一个端到端传输协议,但不提供任
何服务质量的保证,服务质量由 RTCP 来提供。
相关的协议有:
),用于多方多媒体通信,
是一个基于文本的应用层控制协议,独立于底层传输协议 TCP/UDP/SCTP,用于建
立、修改和终止 IP 网上的双方或多方多媒体会话。在 RFC 2543 中定义,
https://datatracker.ietf.org/doc/rfc2543/ 。
( ) ,是与 RTP 伴生的一个
协议,它的基本功能和包结构在 RFC 3550 中定义。其主要功能是:服务质量的监
视与反馈、媒体间的同步,以及多播组中成员的标识。RTCP 分组周期性地在网上
传送,它带有发送端和接收端对服务质量的统计信息报告。在 RFC3550 中定义,
https://datatracker.ietf.org/doc/rfc3550/ 。
),是 TCP/IP 协议体
系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传
送多媒体数据。能够时支持多个实时流,进而支持视频会议。在 RFC 2326 中定义,
https://datatracker.ietf.org/doc/rfc2326/ 。
( ),是一个通过网络进
行资源预留的协议,是为实现综合业务网而设计的,在 RFC 2205 中定义,
https://datatracker.ietf.org/doc/rfc2205/ 。

 

 

标签: 0r002合金电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台