一、捕获数据包前的准备工作
在默认情况下,
sniffer
将捕获其接入碰撞域中流经的所有数据包,但在某些场景下,有些数据包可能不是我们所需要的,为了快速定位网络问题所在,有必要对所要捕获的数据包作过滤。
Sniffer
提供了捕获数据包前的过滤规则的定义,过滤规则包括
2
、
3
层地址的定义和几百种
协议
的定义。定义过滤规则的做法一般如下:
1
、在主界面选择
captureàdefinefilter
选项。
2
、
definefilteràaddress
,这是最常用的定义。其中包括
MAC
地址、
ip
地址和
ipx
地址的定义。以定义
IP
地址过滤为例,见图
1
。
图 1
比如,现在要捕获地址为
10.1.30
.100
的主机与其他主机通信的信息,在
Mode
选项卡中,选
Include(
选
Exclude
选项,是表示捕获除此地址外所有的数据包
)
;在
station
选项中,在任意一栏填上
10.1.30.100,
另外一栏填上
any
(
any
表示所有的
IP
地址)。这样就完成了地址的定义。
注意到
Dir.
栏的图标:
表示,捕获 station1 收发的数据包;
表示,捕获 station1 发送的数据包;
表示,捕获
station1
收到的数据包。
最后,选取
,将定义的规则保存下来,供以后使用。
3
、
definefilteràadvanced
,定义希望捕获的相关
协议
的数据包。如图
2
。
图 2
比如,想捕获 FTP 、 NETBIOS 、 DNS 、 HTTP 的数据包,那么说首先打开 TCP 选项卡,再进一步选 协议 ;还要明确 DNS 、 NETBIOS 的数据包有些是属于 UDP协议 ,故需在 UDP 选项卡做类似 TCP 选项卡的工作,否则捕获的数据包将不全。 如果不选任何 协议 ,则捕获所有 协议 的数据包。 PacketSize 选项中,可以定义捕获的包大小,图 3 ,是定义捕获包大小界于 64 至 128bytes 的数据包。
图 3
4 、 definefilteràbuffer, 定义捕获数据包的缓冲区。如图 4 :
图 4
Buffersize
选项卡,将其设为最大
40M
。
Capturebuffer
选项卡,将设置缓冲区文件存放的位置。
5
、最后,需将定义的过滤规则应用于捕获中。如图
5
:
图 5
点选 SelectFilteràCapture 中选取定义的捕获规则。
二、捕获数据包时观察到的信息
CaptureàStart,
启动捕获引擎。
sniffer
可以实时监控主机、
协议
、应用程序、不同包类型等的分布情况。如图
6
:
图 6
Dashboard:
可以实时统计每秒钟接收到的包的数量、出错包的数量、丢弃包的数量、广播包的数量、多播包的数量以及带宽的利用率等。
HostTable
:可以查看通信量最大的前
10
位主机。
Matrix:
通过连线,可以形象的看到不同主机之间的通信。
ApplicationResponseTime:
可以了解到不同主机通信的最小、最大、平均响应时间方面的信息。
HistorySamples:
可以看到历史数据抽样出来的统计值。
Protocoldistribution:
可以实时观察到数据流中不同
协议
的分布情况。
Switch:
可以获取
cisco
交换机的状态信息。
在捕获过程中,同样可以对想观察的信息定义过滤规则,操作方式类似捕获前的过滤规则。
三、捕获数据包后的
分析
工作
要停止
sniffer
捕获包时,点选
CaptureàStop
或者
CaptureàStopandDisplay,
前者停止捕获包,后者停止捕获包并把捕获的数据包进行解码和显示。如图
7
:
图 7
Decode:
对每个数据包进行解码,可以看到整个包的结构及从链路层到应用层的信息,事实上,
sniffer
的使用中大部分的时间都花费在这上面的
分析
,同时也对使用者在网络的理论及实践经验上提出较高的要求。素质较高的使用者借此工具便可看穿网络问题的结症所在。
Expert:
这是
sniffer
提供的专家模式,系统自身根据捕获的数据包从链路层到应用层进行分类并作出诊断。其中
diagnoses
提出非常有价值的诊断信息。图
8
,是
sniffer
侦查到
IP
地址重叠的例子及相关的解析。
图 8
sniffer
同样提供解码后的数据包过滤显示。
要对包进行显示过滤需切换到
Decode
模式。
Displayàdefinefilter
,定义过滤规则。
Displayàselectfilter,
应用过滤规则。
显示过滤的使用基本上跟捕获过滤的使用相同。
四、
sniffer
提供的工具应用
sniffer
除了提供数据包的捕获、解码及诊断外,还提供了一系列的工具,包括包发生器、
ping
、
traceroute
、
DNSlookup
、
finger
、
whois
等工具。
其中,包发生器比较有特色,将做简单介绍。其他工具在操作系统中也有提供,不做介绍。
包发生器提供三种生成数据包的方式:
点选
,新构一个数据包,包头、包内容及包长由用户直接填写。图 9 ,定义一个广播包,使其连续发送,包的发送延迟位 1ms
图 9
点选
发送在
Decode
中所定位的数据包,同时可以在此包的基础上对数据包进行如前述的修改。
点选
,发送 buffer 中所有的数据包,实现数据流的重放。见图 10 :
图 10
可以定义连续地发送 buffer 中地数据包或只发送一次 buffer 中地数据包。请特别注意,不要在运行的网络中重放数据包,否则容易引起严重的网络问题。数据包的重放经常用于实验环境中。