您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > wireshark使用方法
1.目的在ADSL、AG及其他产品的日常排障过程中经常需要现场进行抓包配合,本文档提供了Wireshark的常用操作指南。2.范围AG、ADSL现场工程师。3.Wireshark安装作为Ethereal的替代产品,Wireshark()是一款优秀且免费的抓包分析软件,可到Internet自行下载安装。Wireshark的安装软件包由Wireshark-setup和WinPcap等2个安装文件组成。4.Wireshark使用4.1抓包点击菜单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的包,请修改注册表,修改方法参见附录。4.1.1常用抓包过滤命令为防止抓包文件过大而影响分析效果,可在抓包阶段就设置抓包过滤(在CaptureFilter中输入需要过滤的协议或命令)。现将常用抓包过滤命令总结如下:抓包过滤要求抓包过滤命令MAC地址为00:18:8b:ba:86:d6的报文etherhost00:18:8b:ba:86:d6IP地址为192.168.1.10的报文host192.168.1.10VLANid为100的报文vlan100ARP报文arpPPPoE报文pppoedDHCP报文udpport67orudpport68IGMP报文ipmulticastandnotudpmegaco信令报文(通常端口为2944)udpport2944sip信令报文(通常端口为5060)udpport5060SCTP报文(通常端口为9900)udpport9900Ethereal截包过滤条件,通过and和or,将一系列的primitive表达式连接在一起,有时可在primitive表达式前用not。[not]primitive[and|or[not]primitive…]例一:tcpport23andhost10.0.0.5。这个例子表示只截取发给主机10.0.0.5的telnet数据包或主机10.0.0.5发出的telnet数据包。例二:tcpport23andnothost10.0.0.5。这个例子表示截取所有的telnet数据包,除了主机10.0.0.5收发的telnet数据包。Primitive表达式如下:[src|dst]hosthost通过主机IP地址/名称过滤截取的数据包。也可以在前面加关键字[src|dst]来限制是目的或源地址。ether[src|dst]hostehost同上,只是通过MAC地址来过滤。gatewayhosthost截取将该主机作为网关的包,即MAC地址是主机的地址,而包的源和目的IP都不是该主机的IP[src|dst]netnet[{maskmask}|{lenlen}][tcp|udp][src|dst]portport通过TCP/UDP的端口过滤less|greaterlength截取数据保小于、等于指定的大小;或大于、等于指定的大小。ip|etherprotoprotocolIP/Ethernet层的指定协议。ether|ipbroadcast|multicast截取ether/ip的广播包。exprrelopexpr允许建立一个更复杂的表达式,可以通过它来选取数据包的字节或字节范围来过滤。4.2分析为便于分析,可在查看抓包文件时设置过滤。4.2.1ADSL如检查PC(MAC地址为00:06:5b:e1:96:e9)的PPPoE拨号过程,可在Filter中输入eth.addr==00:06:5b:e1:96:e9and(pppoedorppp)。一旦截取数据包后,或打开以前截取的数据包文件,显示如错误!未找到引用源。。显示有三个视图分区:“PacketList”、“PacketDetails”、“Packetbytes”。“PacketList”用于显示所数据包,如果这是有显示过滤条件,显示的是满足该条件的所有包。“PacketDetails”用于显示在“PacketList”视图中选定的数据包的详细信息。“PacketBytes”以十六进制方式显示“PacketList”视图中选定的数据包的信息。4.2.2AG如检查AG中2个端口(如tdm/1与tdm/2)之间的通话消息,则可在Filter输入megaco先进行H.248信令过滤。重点查看AG对软交换chooseoneadd消息的reply,以明确AG为这2个端口分配的context号和localrtp端口号。如上图,tdm/1的context号为310,localrtp端口号为40034;tdm/2的context号为275,localrtp端口号为40036。如需过滤这两个端口的H.248信令,则在Filter中输入megaco.termid==tdm/1ormegaco.termid==tdm/2ormegaco.context==310ormegaco.context==275。除了过滤这2个端口的H.248信令,如还需要过滤RTP,则在Filter中输入megaco.termid==tdm/1ormegaco.termid==tdm/2ormegaco.context==310ormegaco.context==275orudp.port==40034orudp.port==40036。点击菜单Statistics-RTP-Showallstreams,打开RTPStreams窗口。其中列出抓包文件中所有的RTPStream。选中要查看的stream,再点击Analyze,打开RTPStreamAnalysis窗口,进一步检查该stream的丢包率,jitter等。点击Savepayload…则可将该RTPStream保存为声音文件。(WiresharkVersion1.0.3版本将RTP包导成声音文件时有bug,建议尝试用Ethereal完成此操作。)显示过滤表达式Ethereal提供了简单但是很强大的过滤语言,通过它我们可以建立复杂的显示过滤表达式。我们可以比较数据包的数据值,也可以将多个表达式合成一个更复杂的表达式。接下来将详细介绍。显示过滤域(Displayfilterfields)在“Packetdetails”视图中的每一个域能够用作一个过滤字符串(filterstring),这样,就只显示存在该域的数据包。例如:过滤字符串:tcp,这就只显示所有tcp协议的包。比较表达式我们可以创建一个比较值的显示过滤条件,通过使用不同的比较操作符。它们显示在错误!未找到引用源。英语(English)类C(C-like)描述和举例(DescriptionandExample)eq==等于ip.addr==10.50.56.61ne!=不等于ip.addr!=10.50.56.61gt大于frame.pkt_len10lt小于frame.pkt_len10ge=大于或等于frame.pkt_lenge0x100le=小于或等于frame.pke_len=0x20所有的域(Field)都是有类型,见错误!未找到引用源。类型举例Unsignedinteger(8-bit,16bit,24bit,32bit)无符号整型可以表示为十进制、八进制、十六进制。下面的表达式是等同的。ip.lenle1500ip.lenle02734ip.lenle0x436Signedinteger(8-bit,16-bit,24-bit,32-bit)BooleanEthernetaddress(6bytes)Eth.addr==ff.ff.ff.ff.ff.ffIpv4addressIp.addr==10.50.56.61Ipv6addressIPXnetworknumberString(text)Double-precisionfloatingpointnumber我们经常使用这样的一个过滤条件:ip.addr=1.2.3.4,它将只显示包含ip地址1.2.3.4的所有包。我们理所当然的认为ip.addr!=1.2.3.4的过滤条件将不会显示ip地址为1.2.3.4的所有包。其实不然。它说表达的意思为:“数据包有一个ip.addr的域值不等于1.2.3.4”(thepacketcontainsafieldnamedip.addrwithavaluedifferentfrom1.2.3.4)如果我们想过滤所有包含ip地址为1.2.3.4的数据包,我们必须将表达式写为:!(ip.addr==1.2.3.4)。组合表达式通过逻辑操作符,我们可以组合过滤条件表达式。逻辑操作符如错误!未找到引用源。英语(Englishi)类C(C-like)描述和举例(Descriptionandexample)And&&LogicalANDIp.addr==10.0.0.5andtcp.flags.finOr||LogicalORIp.addr==10.0.0.5orip.addr==192.1.1.1Xor^^LogicalXORTr.dest[0:3]==0.6.29xortr.src[0:3]==0.6.29Tr(tokenringMAC)Not!LogicalNOTNotllc(Logical-linkcontrolt)[…]SubstringOperatorEthereal允许我们选取一个子序列。下面例子中的eth=00:00.83:00:20:20eth.src[0:3]==00:00:83上面的例子用了n:m格式定义一个范围,n表示开始的位置,m表示这个范围的长度。eth.src[1-2]==00:83上面的例子用了n-m格式定义一个范围,n表示开始的位置,m表示结束的位置。eth.src[:4]==00:00:83:00上面的例子用了:m格式定义一个范围,等价为0:m。eth.src[4:]==20:20上面的例子用了m:格式定义一个范围,表示从eth序列位置m到其结束的子序列。eth.src[2]==83上面的例子用n的格式表示一个范围。这个例子表示在n位置的值。eth.src[0:3,1-2,:4,4:,2]==00:00:83:00:83:00:00:83:00:20:20:83Ethereal允许我们将各种独立的子集组合成另外一个独立的范围集,如上例。“FilterExp
本文标题:wireshark使用方法
链接地址:https://www.777doc.com/doc-7085559 .html