wireshark使用方法.docx

上传人:b****0 文档编号:9334503 上传时间:2023-05-18 格式:DOCX 页数:20 大小:2.06MB
下载 相关 举报
wireshark使用方法.docx_第1页
第1页 / 共20页
wireshark使用方法.docx_第2页
第2页 / 共20页
wireshark使用方法.docx_第3页
第3页 / 共20页
wireshark使用方法.docx_第4页
第4页 / 共20页
wireshark使用方法.docx_第5页
第5页 / 共20页
wireshark使用方法.docx_第6页
第6页 / 共20页
wireshark使用方法.docx_第7页
第7页 / 共20页
wireshark使用方法.docx_第8页
第8页 / 共20页
wireshark使用方法.docx_第9页
第9页 / 共20页
wireshark使用方法.docx_第10页
第10页 / 共20页
wireshark使用方法.docx_第11页
第11页 / 共20页
wireshark使用方法.docx_第12页
第12页 / 共20页
wireshark使用方法.docx_第13页
第13页 / 共20页
wireshark使用方法.docx_第14页
第14页 / 共20页
wireshark使用方法.docx_第15页
第15页 / 共20页
wireshark使用方法.docx_第16页
第16页 / 共20页
wireshark使用方法.docx_第17页
第17页 / 共20页
wireshark使用方法.docx_第18页
第18页 / 共20页
wireshark使用方法.docx_第19页
第19页 / 共20页
wireshark使用方法.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

wireshark使用方法.docx

《wireshark使用方法.docx》由会员分享,可在线阅读,更多相关《wireshark使用方法.docx(20页珍藏版)》请在冰点文库上搜索。

wireshark使用方法.docx

wireshark使用方法

1.目的

在ADSL、AG及其他产品的日常排障过程中经常需要现场进行抓包配合,本文档提供了Wireshark的常用操作指南。

2.范围

AG、ADSL现场工程师。

3.Wireshark安装

作为Ethereal的替代产品,Wireshark()是一款优秀且免费的抓包分析软件,可到Internet自行下载安装。

Wireshark的安装软件包由Wireshark-setup和WinPcap等2个安装文件组成。

4.Wireshark使用

抓包

点击菜单Capture->Options…,打开CaptureOptions窗口。

在Interface中选择网络接口;在CaptureFilter中输入需要过滤的协议(如过滤megaco协议,输入udpport2944);在CaptureFile(s)的File中输入要保存的抓包文件名,如要将抓包分文件保存,则在Usemultiplefiles中选择保存文件的分割机制,如下图每5M就保存一个文件;如需要实时显示抓包结果并让抓包结果自动滚屏,则在DisplayOptions中选中Updatelistofpacketsinrealtime和Automaticscrollinginlivecapture。

Interface:

这项用于指定截包的网卡。

Link-layerheadertype:

指定链路层包的类型,一般使用默认值。

Buffersize(nmegabyte(s)):

用于定义Ethereal用于截包的缓冲,当缓冲写满后,就将截的数据写道磁盘上。

如果遇到ethereal丢包现象,将该缓冲尽量增大。

Capturepacketsinpromiscuousmode:

截包时,Ethereal将网口置于混杂模式。

如果没有配置这项,Ethereal只能截取该PC发送和接收的包(而不是同一LAN上的所有包)。

Limiteachpackettonbytes:

定义Ethereal截取包的最大数据数,大于这个值的数据包将被丢掉。

默认为65535。

点击Start启动抓包。

如果开启了自动保存文件机制,请确认自动存盘的前3个文件,确保机制生效。

并定期检查磁盘空间,以防磁盘空间溢出。

如果用Dell笔记本抓包时发现无法抓到带VLANTag的包,请修改注册表,修改方法参见附录。

常用抓包过滤命令

为防止抓包文件过大而影响分析效果,可在抓包阶段就设置抓包过滤(在CaptureFilter中输入需要过滤的协议或命令)。

现将常用抓包过滤命令总结如下:

抓包过滤要求

抓包过滤命令

MAC地址为00:

18:

8b:

ba:

86:

d6的报文

etherhost00:

18:

8b:

ba:

86:

d6

IP地址为的报文

host

id为100的报文

vlan100

ARP报文

arp

PPPoE报文

pppoed

DHCP报文

udpport67orudpport68

IGMP报文

ipmulticastandnotudp

megaco信令报文(通常端口为2944)

udpport2944

sip信令报文(通常端口为5060)

udpport5060

SCTP报文(通常端口为9900)

udpport9900

Ethereal截包过滤条件,通过and和or,将一系列的primitive表达式连接在一起,有时可在primitive表达式前用not。

[not]primitive[and|or[not]primitive…]

例一:

tcpport23andhost。

这个例子表示只截取发给主机的telnet数据包或主机发出的telnet数据包。

例二:

tcpport23andnothost。

这个例子表示截取所有的telnet数据包,除了主机收发的telnet数据包。

Primitive表达式如下:

[src|dst]host通过主机IP地址/名称过滤截取的数据包。

也可以在前面加关键字[src|dst]来限制是目的或源地址。

ether[src|dst]host同上,只是通过MAC地址来过滤。

gatewayhost截取将该主机作为网关的包,即MAC地址是主机的地址,而包的源和目的IP都不是该主机的IP

[src|dst]net[{mask}|{len}]

[tcp|udp][src|dst]port通过TCP/UDP的端口过滤

less|greater截取数据保小于、等于指定的大小;或大于、等于指定的大小。

ip|etherprotoIP/Ethernet层的指定协议。

ether|ipbroadcast|multicast截取ether/ip的广播包。

relop允许建立一个更复杂的表达式,可以通过它来选取数据包的字节或字节范围来过滤。

分析

为便于分析,可在查看抓包文件时设置过滤。

ADSL

如检查PC(MAC地址为00:

06:

5b:

e1:

96:

e9)的PPPoE拨号过程,可在Filter中输入==00:

06:

5b:

e1:

96:

e9and(pppoedorppp)。

一旦截取数据包后,或打开以前截取的数据包文件,显示如图2。

显示有三个视图分区:

“PacketList”、“PacketDetails”、“Packetbytes”。

“PacketList”用于显示所数据包,如果这是有显示过滤条件,显示的是满足该条件的所有包。

“PacketDetails”用于显示在“PacketList”视图中选定的数据包的详细信息。

“PacketBytes”以十六进制方式显示“PacketList”视图中选定的数据包的信息。

AG

如检查AG中2个端口(如tdm/1与tdm/2)之间的通话消息,则可在Filter输入megaco先进行信令过滤。

重点查看AG对软交换chooseoneadd消息的reply,以明确AG为这2个端口分配的context号和localrtp端口号。

如上图,tdm/1的context号为310,localrtp端口号为40034;tdm/2的context号为275,localrtp端口号为40036。

如需过滤这两个端口的信令,则在Filter中输入=="tdm/1"or=="tdm/2"or==310or==275。

除了过滤这2个端口的信令,如还需要过滤RTP,则在Filter中输入=="tdm/1"or=="tdm/2"or==310or==275or==40034or==40036。

点击菜单Statistics->RTP->Showallstreams,打开RTPStreams窗口。

其中列出抓包文件中所有的RTPStream。

选中要查看的stream,再点击Analyze,打开RTPStreamAnalysis窗口,进一步检查该stream的丢包率,jitter等。

点击Savepayload…则可将该RTPStream保存为声音文件。

(WiresharkVersion版本将RTP包导成声音文件时有bug,建议尝试用Ethereal完成此操作。

显示过滤表达式

Ethereal提供了简单但是很强大的过滤语言,通过它我们可以建立复杂的显示过滤表达式。

我们可以比较数据包的数据值,也可以将多个表达式合成一个更复杂的表达式。

接下来将详细介绍。

显示过滤域(Displayfilterfields)

在“Packetdetails”视图中的每一个域能够用作一个过滤字符串(filterstring),这样,就只显示存在该域的数据包。

例如:

过滤字符串:

tcp,这就只显示所有tcp协议的包。

比较表达式

我们可以创建一个比较值的显示过滤条件,通过使用不同的比较操作符。

它们显示在表1

英语(English)

类C(C-like)

描述和举例(DescriptionandExample)

eq

==

等于==

不等于!

=

大于>10

lt

<

小于<10

ge

>=

大于或等于ge0x100

le

<=

小于或等于<=0x20

所有的域(Field)都是有类型,见表2

类型

举例

Unsignedinteger(8-bit,16bit,24bit,32bit)

无符号整型可以表示为十进制、八进制、十六进制。

下面的表达式是等同的。

le1500

le02734

le0x436

Signedinteger(8-bit,16-bit,24-bit,32-bit)

Boolean

Ethernetaddress(6bytes)

==

address

==

address

IPXnetworknumber

String(text)

Double-precisionfloatingpointnumber

我们经常使用这样的一个过滤条件:

=,它将只显示包含ip地址的所有包。

我们理所当然的认为!

=的过滤条件将不会显示ip地址为的所有包。

其实不然。

它说表达的意思为:

“数据包有一个的域值不等于(thepacketcontainsafieldnamedwithavaluedifferentfrom如果我们想过滤所有包含ip地址为的数据包,我们必须将表达式写为:

!

==。

组合表达式

通过逻辑操作符,我们可以组合过滤条件表达式。

逻辑操作符如表3

英语(Englishi)

类C(C-like)

描述和举例(Descriptionandexample)

And

&&

LogicalAND==and

OR==or==

XOR[0:

3]==xor[0:

3]==Tr(tokenringMAC)

Not

!

LogicalNOTNotllc(Logical-linkcontrolt)

[…]

SubstringOperator

Ethereal允许我们选取一个子序列。

下面例子中的eth=00:

:

00:

20:

20

[0:

3]==00:

00:

83

上面的例子用了n:

m格式定义一个范围,n表示开始的位置,m表示这个范围的长度。

[1-2]==00:

83

上面的例子用了n-m格式定义一个范围,n表示开始的位置,m表示结束的位置。

[:

4]==00:

00:

83:

00

上面的例子用了:

m格式定义一个范围,等价为0:

m。

[4:

]==20:

20

上面的例子用了m:

格式定义一个范围,表示从eth序列位置m到其结束的子序列。

[2]==83

上面的例子用n的格式表示一个范围。

这个例子表示在n位置的值。

[0:

3,1-2,:

4,4:

,2]==00:

00:

83:

00:

83:

00:

00:

83:

00:

20:

20:

83

Ethereal允许我们将各种独立的子集组合成另外一个独立的范围集,如上例。

“FilterExpression”对话框

当我们很熟练的使用ethereal的过滤系统,很容易就写出一个过滤表达式。

但如果是一ethereal初学者或者对协议不是很熟悉,这就比较困难。

我们这时可以通过“FilterExpression”对话框来写过滤条件。

如图4

“FilterExpression”对话框:

树形域名(Fieldname)列表(协议排序);关系运算符(relation)选择列表。

FiledName:

从协议域名树中选择一个协议域名。

每一个协议位于最上部,并带有可设为过滤条件的域。

通过点击协议名称后的“+”,我们可以看到一系列的可设为过滤条件的域。

Relation:

选择一个关系运算符。

“ispresent”是一元(unary)关系运算符。

如果被选的域名存在数据包中,就是true;其它的关系运算符是二元的(binary),还需要一个数据来结束这个表达式(如,需要一个值(Value)来配合)。

Value:

我们可以在“Value”文本框中输入合适的值。

注意数据类型应该与域名(fieldname)匹配。

Range:

相当于SubString运算符[]。

时间显示格式

当我们截包时,ethereal给每一个数据包一个时间戳(timestamped)。

当我们显示数据包时,我们可以设定时间戳的显示形式。

如图5。

TimeofDay

DateandTimeofDay

SecondsSinceBeginningofCapture

SecondsSincePreviousPacket

过滤成248协议保存文件

如果只需要抓取H248信令,点击Capture选择Option出现如下示图:

图6CaptureOption

点击CaptureFilter出现下面示图:

图7CaptureFilter

选择“New”

在下面Filtername里输入megaco,在Filterstring里输入:

udpport2944andport2944(megaco的过滤条件)

图8设置megaco的过滤条件

点击OK就创建好了过滤megaco的规则,这样直接就可以抓包,只会抓到H248的信令消息。

信令过滤与保存

由于同一MG下仍然可能有多个用户在同时使用,为了显示我们关注的用户,可以在察看时进行条件过滤,例如:

==USER001||==RTP000

由于在抓包软件中察看信令不大方便,还可以把信令导出为文本格式,如下图;

需要注意的是,抓包软件不可能完全智能,过滤时有可能滤掉一些东西,例如某些报错的响应之类,所以应针对具体故障现象结合原始报文来看。

丢包与网络抖动

利用抓包软件的分析功能,可以比较容易的看出媒体流是否有丢包,如下图,在RTP菜单中,点击“ShowAllStreams”即可看到丢包。

对于较小的丢包,可以在两端配置冗余来规避。

但根本上应排查网络问题。

图9查看丢包

类似的,RTP菜单?

“StreamAnalysis”即可看到网络时延是否稳定;

图10查看网络时延

这里所说的网络抖动在WireShark中可以通过Delta的值来衡量,Delta是相邻两个媒体包之间的间隔值。

因为网关发送媒体包时的打包间隔是固定的,在没有网络抖动的情况下,接收侧网关收到的媒体流的Delta也应该是一个定值。

当有网络抖动时,Delta的值会随着网络抖动而变化。

媒体流还原

对捕获的报文除了分析协议运作外,还可以还原成音频流进行问题判断。

如果打开报文看到的媒体流类型是UDP,可以右击任意UDP报文,选“DecodeAs”—端口选“Both”,类型选RTP,即可解码为RTP流。

然后在RTP菜单(Statistics或Telephony菜单下)中,选择”showAllStreams”,在弹出的窗口中选中其中某次媒体流交互(根据交互的IP地址来选),点”Analyze”分析,对分析的结果可以”SavePayload”保存为.au等音频格式进行播放。

也可以保存为raw(.pcm)格式用AdobeAudition软件进行dtmf/传真/modem信号分析。

图11媒体流还原

对于传真,点击菜单Statistics->VoIPCalls检查的消息流程。

对于2833,点击菜单Edit->Preferences…,根据AG中2833配置的payloadtype修改Wireshark中的RTPEvent设置,然后再检查抓包中对应的2833包。

对于RFC2198RTP冗余,点击菜单Edit->Preferences…,根据AG中RTP冗余配置的payloadtype修改Wireshark中的RTP设置,然后再检查抓包中对应的RTP包。

(Ethereal不支持该Feature。

保存

点击菜单File->Saveas…,保存抓包文件。

可点击Displayed对只在Wireshark窗口中被过滤显示的包进行保存。

附录

如果Dell笔记本无法抓取带VLANTag的包,请按如下步骤修改注册表。

1.确保网卡版本在以上。

如果网卡版本低于,需要先将网卡驱动升版,请到下载更新的驱动程序。

2.运行注册表编辑程序regedit。

3.在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet下搜索TxCoalescingTicks,并确保该组为唯一的注册表项组。

4.在该注册表项组内右键创建类型为REG_SZ,名称为PreserveVlanInfoInRxPacket的注册表项,并将其值设置为1。

5.重启Windows确保设置生效。

文件结束

Endoffile

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2