sniffer简明教程
xiong2127 51cto技术博客
sniffer是由NAI公司提供的强大的协议分析仪,完整的sniffer系统,除了我们经常使用的以太网模块外,还具有广域网模块,广域网模块需要专用的硬件支持。比如E1/FR/POS/ATM等,均需要硬件模块配合。这里再强调一点,以太网模块的sniffer,NAI也提供了专用的网卡,专用网卡是针对sniffer软件做了优化,在捕获报文的性能上要强于普通网卡。我们通过sniffer捕获报文做故障分析时,千万要记住,大流量的链路假如用普通网卡捕获报文可能出现部分报文漏捕获情况,这对分析丢包问题是极为不利的,所以往往我们多捕获几份报文作为分析的可靠依据来拟补工具的不足。
xiong2127 51cto技术博客
接下来,我们对sniffer的使用做简单的介绍。Sniffer的具体运用请大家研读ftp服务器上的sniffer课程。
xiong2127 51cto技术博客
一、捕获数据包前的准备工作
xiong2127 51cto技术博客
在默认情况下,sniffer将捕获其接入碰撞域中流经的所有数据包,但在某些场景下,有些数据包可能不是我们所需要的,为了快速定位网络问题所在,有必要对所要捕获的数据包作过滤。Sniffer提供了捕获数据包前的过滤规则的定义,过滤规则包括2、3层地址的定义和几百种协议的定义。定义过滤规则的做法一般如下:
xiong2127 51cto技术博客
1、在主界面选择capturedefine filter选项。
2、define filteraddress,这是最常用的定义。其中包括MAC地址、ip地址和ipx地址的定义。以定义IP地址过滤为例,见图1。 xiong2127 51cto技术博客 xiong2127 51cto技术博客
xiong2127 51cto技术博客
比如,现在要捕获地址为10.1.30.100的主机与其他主机通信的信息,在Mode选项卡中,选Include(选Exclude选项,是表示捕获除此地址外所有的数据包);在station选项中,在任意一栏填上10.1.30.100,另外一栏填上any(any表示所有的IP地址)。这样就完成了地址的定义。
xiong2127 51cto技术博客
注意到Dir.栏的图标:
xiong2127 51cto技术博客
表示,捕获station1收发的数据包;
xiong2127 51cto技术博客
表示,捕获station1发送的数据包;
xiong2127 51cto技术博客
表示,捕获station1收到的数据包。
xiong2127 51cto技术博客
最后,选取
,将定义的规则保存下来,供以后使用。
xiong2127 51cto技术博客
3、define filteradvanced,定义希望捕获的相关协议的数据包。如图2。
xiong2127 51cto技术博客
xiong2127 51cto技术博客
xiong2127 51cto技术博客
比如,想捕获FTP、NETBIOS、DNS、HTTP的数据包,那么说首先打开TCP选项卡,再进一步选协议;还要明确DNS、NETBIOS的数据包有些是属于UDP协议,故需在UDP选项卡做类似TCP选项卡的工作,否则捕获的数据包将不全。
xiong2127 51cto技术博客
如果不选任何协议,则捕获所有协议的数据包。
xiong2127 51cto技术博客
Packet Size选项中,可以定义捕获的包大小,图3,是定义捕获包大小界于64至128bytes的数据包。
xiong2127 51cto技术博客
xiong2127 51cto技术博客
4、define filterbuffer,定义捕获数据包的缓冲区。如图4:
xiong2127 51cto技术博客
xiong2127 51cto技术博客
Buffer size选项卡,将其设为最大40M。
xiong2127 51cto技术博客
Capture buffer选项卡,将设置缓冲区文件存放的位置。
xiong2127 51cto技术博客
5、最后,需将定义的过滤规则应用于捕获中。如图5:
xiong2127 51cto技术博客
xiong2127 51cto技术博客
点选Select FilterCapture中选取定义的捕获规则。
xiong2127 51cto技术博客
xiong2127 51cto技术博客
二、捕获数据包时观察到的信息
xiong2127 51cto技术博客
CaptureStart,启动捕获引擎。
xiong2127 51cto技术博客
sniffer可以实时监控主机、协议、应用程序、不同包类型等的分布情况。如图6:
xiong2127 51cto技术博客
xiong2127 51cto技术博客
Dashboard:可以实时统计每秒钟接收到的包的数量、出错包的数量、丢弃包的数量、广播包的数量、多播包的数量以及带宽的利用率等。
xiong2127 51cto技术博客
Host Table:可以查看通信量最大的前10位主机。
xiong2127 51cto技术博客
Matrix:通过连线,可以形象的看到不同主机之间的通信。
xiong2127 51cto技术博客
Application Response Time:可以了解到不同主机通信的最小、最大、平均响应时间方面的信息。
xiong2127 51cto技术博客
History Samples:可以看到历史数据抽样出来的统计值。
xiong2127 51cto技术博客
Protocol distribution:可以实时观察到数据流中不同协议的分布情况。
xiong2127 51cto技术博客
Switch:可以获取cisco交换机的状态信息。
xiong2127 51cto技术博客
在捕获过程中,同样可以对想观察的信息定义过滤规则,操作方式类似捕获前的过滤规则。
xiong2127 51cto技术博客
xiong2127 51cto技术博客
三、捕获数据包后的分析工作
xiong2127 51cto技术博客
要停止sniffer捕获包时,点选CaptureStop或者CaptureStop and Display,前者停止捕获包,后者停止捕获包并把捕获的数据包进行解码和显示。如图7:
xiong2127 51cto技术博客
xiong2127 51cto技术博客 Decode:对每个数据包进行解码,可以看到整个包的结构及从链路层到应用层的信息,事实上,sniffer的使用中大部分的时间都花费在这上面的分析,同时也对使用者在网络的理论及实践经验上提出较高的要求。素质较高的使用者借此工具便可看穿网络问题的结症所在。
xiong2127 51cto技术博客
Expert:这是sniffer提供的专家模式,系统自身根据捕获的数据包从链路层到应用层进行分类并作出诊断。其中diagnoses提出非常有价值的诊断信息。图8,是sniffer侦查到IP地址重叠的例子及相关的解析。
xiong2127 51cto技术博客
xiong2127 51cto技术博客
sniffer同样提供解码后的数据包过滤显示。
xiong2127 51cto技术博客
要对包进行显示过滤需切换到Decode模式。
xiong2127 51cto技术博客
Displaydefine filter,定义过滤规则。
xiong2127 51cto技术博客
Displayselect filter,应用过滤规则。
xiong2127 51cto技术博客
显示过滤的使用基本上跟捕获过滤的使用相同。
xiong2127 51cto技术博客
四、sniffer提供的工具应用
xiong2127 51cto技术博客
sniffer除了提供数据包的捕获、解码及诊断外,还提供了一系列的工具,包括包发生器、ping、trace route、DNS lookup、finger、who is等工具。
xiong2127 51cto技术博客
其中,包发生器比较有特色,将做简单介绍。其他工具在操作系统中也有提供,不做介绍。
xiong2127 51cto技术博客
包发生器提供三种生成数据包的方式:
xiong2127 51cto技术博客
点选
,新构一个数据包,包头、包内容及包长由用户直接填写。图9,定义一个广播包,使其连续发送,包的发送延迟位1ms
xiong2127 51cto技术博客
xiong2127 51cto技术博客
xiong2127 51cto技术博客
点选
,发送在Decode中所定位的数据包,同时可以在此包的基础上对数据包进行如前述的修改。 xiong2127 51cto技术博客
点选
,发送buffer中所有的数据包,实现数据流的重放。见图10:
xiong2127 51cto技术博客 xiong2127 51cto技术博客
可以定义连续地发送buffer中地数据包或只发送一次buffer中地数据包。请特别注意,不要在运行的网络中重放数据包,否则容易引起严重的网络问题。数据包的重放经常用于实验环境中。
xiong2127 51cto技术博客
交换机做镜像端口使用
xiong2127 51cto技术博客
从sniffer的工作原理我们知道,与其在一个冲突域的报文均能被尽收囊中,对于交换机来说,一个物理端口就是一个冲突域(不像Hub所有端口均出在一个冲突域),为此,大部分交换机均提供端口镜像功能,便于监控链路承载的报文情况。如下图:
xiong2127 51cto技术博客
xiong2127 51cto技术博客
xiong2127 51cto技术博客
这里需要说明的是,Hammer系列交换机中,mirror功能在不同产品线存在不同的问题,这些问题对于我们做报文分析是极为不利的。要求我们清楚了解各个产品的mirror特性。下面举两个例子说明:
xiong2127 51cto技术博客
比如G产品线的百兆电口在做端口镜像时,如果监控端口与被监控端口不在一个控制器(一组端口)中的话,只能抓到进端口的包,出端口的包抓不到。
xiong2127 51cto技术博客
µHammer3550-48交换机内部由两块芯片堆叠而成的硬件特点,其中芯片1包括端口1-12、25-36、50,芯片2包括端口13-24、37-48、49,由于mirror不能跨芯片建立,因此建立端口镜像时只能在端口1-12、25-36、50或端口13-24、37-48、49范围内建立。
xiong2127 51cto技术博客
Hub使用注意事项
xiong2127 51cto技术博客
某些交换机不提供端口镜像功能或者在路由式网络的情况下,需要在网络中加入Hub来扩大某个冲突域的端口数,便于sniffer接入其中。如图所示:
xiong2127 51cto技术博客
xiong2127 51cto技术博客
xiong2127 51cto技术博客
在原来的网络插入Hub时,要特别注意Hub端口的工作状态,保证设备双方互连端口状态完全一致,否则强引入新的丢包点。比如Hub不具有端口自协商能力,且只能工作在半双工状态,而交换机的端口原先被设置为全双工状态,显然,Hub加入链路,在大流量情况下,必然引起丢包。
xiong2127 51cto技术博客
出自 51CTO.COM博客
|