Sniffer抓包分数据包分析手册前言现在大家在一线解决故障过程中,经常会利用sniffer软件来分析网络中的数据包,从而为故障的解决及相关的部门(如研发)提供更有说服力的数据。
应该来说,sniffer的包文对于解决问题确实起到了很大的作用,但很多时候有些人所提供的sniffer数据包什么数据都抓,很混,要花很大的力气才能对看明白该数据包,另外,很多时候没有给出相应的抓包的网络拓扑图,数据包中的源端口、目的端口、IP地址等方面的说明,这样不利于相关人员的分析和定位。
为此,我做个这方面的case,供大家参考,望大家能够提供更有价值的数据给相关的人员。
认证客户端与NAS 设备(交换机)报文交互一、捕获数据包拓扑图:1、 捕获认证客户端电脑(192.168.0.241/24)与S2126G 交换机交互的报文;2、 捕获S2126G 交换机与SAMII 服务器(192.168.0.232)交互的报文;三、所捕获得到的sniffer 报文的文件命名:请尽可能采用一目了然的文件名,即从文件名即 可以大概知道该sniffer 的报文的内容;同时,对于每个sniffer 文件,请用一个readme.txt 简短地说明,这样便于相关的人员能够更好地知道sniffer 报文的内容; 四、交换机的配置: show runBuilding configuration... Current configuration : 633 bytes version 1.0 hostname Switchradius-server host 192.168.0.232 aaa authentication dot1xaaa accounting server 192.168.0.232aaa accountingenable secret level 1 5 %2,1u_;C34-8U0<D4'.tj9=GQ+/7R:>Henable secret level 15 5 %2-aeh`@34'dfimL4t{bcknAQ7zyglowinterface fastEthernet 0/16dot1x port-control autointerface vlan 1no shutdownip address 192.168.0.249 255.255.255.0radius-server key startip default-gateway 192.168.0.254五、开始捕获认证客户端电脑与S2126G交换机交互报文时,sniffer程序的设置准备:由于我们只关心认证客户端电脑与S2126G交换机之间的报文,因此我们需要将其他电脑或交换机所发的广播等报文过过滤掉,而交换机与认证客户端之间报文的交互,都是通过二层的MAC地址来进行的,因此我们要设置sniffer程序的捕获条件,即定义“定义捕获数据过滤板”,设置过程如下:在主菜单,选择Capture(捕获),选中Define filter(定义过滤器)。
在Define Filter (定义过滤器) 中的Address(地址)的Address(地址类型)选择Hardware;Mode(模式)选择Include(包含);在Station1(位置1) 输入认证客户端电脑的网卡MAC地址:0040-050c-0ac4,Station 2(位置2) 输入交换机的MAC地址00d0-f8ef-99dc,选择捕获双向数据流;然后有在Station1 (位置1)输入认证客户端电脑的网卡MAC地址:0040-050c-0ac4,在Station 2(位置2)输入组播地址:0180-C200-0003(注:此组播地址为我们客户端私有组播地址),选择捕捉双向数据流。
然后选择Capture(选择过滤器)中的Select Filter 中的Default,具体的操作如图所示:六、单击sniffer软件左上角的“开始”按键,开始捕获数据:七、运行客户端软件,开始认证;八、停止捕获,则选择“捕获-Æ停止并显示”:九、保存捕获所得到的数据包文件,SNIFFER主菜单FILE选项的选择SAVE AS,选择一个保存位置,输入保存的文件名称,保存文件,此处,所采用的文件名为:pc_nas(注:在取文件名时,请尽可能采用一目了然的文件名,这样便于分析)1、首先分析客户端软件发起认证时的802.1X EAPOL-START数据包报文说明:A、 一般来说,由客户端发起一个带有组播地址为0180-C200-0003的EAPOL-START 数据帧。
B、 在数据包中,整个EAPOL数据包封装在普通802.3以太网帧中。
首先是一个普通以太网相关的源MAC地址和目的MAC地址,其中目的MAC地址是802.1X协议申请了一个组播地址0180-C200-0003。
后面是802.1X协议包头内容:(1)802.1X协议版本:0000 0001;(2)802.1X 报文类型:0000 0001 表示是一个EAPOL-START 报文;(3)802.1X报文长度为0,表示是PACKET BODY FIELD 没有实际内容,全部采用零来填充。
(4)在802.1X报文中,版本字段长度是一个字节,指明现今EAPOL的版本号,一般来说填充的是:0000 00001。
(4)包类型字段(Packet Type):其中长度为一个字节,表示的正在传输包的类型,主要有以下几种数据类型:1、EAP-PACKET:0000 0000 表示的是一个EAP数据包。
2、EAPOL-START:0000 0001表示的是一个EAPOL-START帧。
3、EAPOL-LOGOFF:0000 0010表示的是一个EAPOL-LOGFF 帧。
4、EAPOL-KEY:0000 0010 表示的一个EAPOL-KEY 帧。
2、NAS设备发送一个对EAPOL-START响应EAP请求数据帧(请求相关信息)说明:1)802.1X Version =1 表示当前的802.1X协议版本是1。
2)802.1X Packet Type = 0 表示的是802.1X, PACKET DATA的内容是:一个EAP 数据包。
3)EAP:Code=1 表示是一个请求数据包。
4)EAP Identifier=1 EAP标识是1。
5)EAP Data 后面跟随的是数据内容。
3、客户端Suppliant发送对前一个EAP请求数据帧进行响应,采用EAP数据帧的方式发送客户端的请求信息(用户名)。
说明:1、802.1X Packet Type =0 表示一个EAP数据包2、EAP:Code= 2 表示一个EAP响应数据包3、EAP:Message = “hhh ” 表示请求的用户名是hhh。
4、NAS发起一个对客户端的EAP-MD5挑战信息数据包。
解释:其中在EAP DATA 里面:1)EAP Type = 4 表示的是MD5_challenge type ,表示请求相关的MD5挑战认证的相关信息。
5、客户端对MD5_challenge挑战信息进行响应,发送一个响应数据包。
6、NAS发送一个成功的消息给认证客户端,并且把相关NAS数据逻辑端口给打开。
说明:EAP Code = 3 表示成功认证的数据包。
7、断开客户端的连接时,客户端发送一个EAPOL-LOGOFF报文给NAS8、NAS发送一个失败响应数据包对客户端发送一个EAPOL-LOGOFF报文响应。
说明:EAP Code=4 表示失败认证的消息。
NAS到SAMII报文交互步骤一:定义Sniffer捕获过滤表在Sniffer的菜单中选择捕获项(Capture)中的定义过滤表(define fliter),如图:在地址卡(Address)中进行定义,具体规则如下:在地址类型(address)项中选择:IP如图所示:在模式(Mode)中选择:包含(Include) 如图所示在工作站(Station)选择:Station1设置为NAS的IP地址,Statio2设置为Radius服务器IP地址如图所示:如图所示:步骤二:捕获端口的选择:对NAS的上联端口进行双向的数据流进行捕获(如图所示),上连端口为连接上层交换机的端口,此口为非受控口,一般选择交换机的第一个端口或最后一个端口。
将此口镜像到交换机的其他端口上,然后利用装有Sniffer软件的PC进行数据捕获。
步骤三:典型的交换机与SAM服务器认证交互的数据包分析:交换机与SAM服务器进行认证交互分为以下四个阶段:如图所示,将有四种类型的数据包:数据包如图:该数据包由以下特征:1.在IP的内容中,源地址(source address)为交换机(NAS) 的IP地址,目的地址(destination address)为SAM服务器的IP地址。
在UDP的内容中,源端口(source port)为1812,目的端口(destination port)为1812。
在Radius的内容中,code的值标识为1,含义为接入请求。
在Radius的内容中,Identifier的值为1,含义为第一次接入请求。
具备以上特征的数据包认定为交换机(NAS)向SAM服务器发起的接入请求包(RADIUS Access-request)。
二.SAM服务器向交换机(NAS)发送的接入询问数据包(RADIUS access-challenge)数据包如图:该数据包由以下特征:1.在IP的内容中,源地址(source address)为SAM服务器的的IP地址,目的地址(destination address)为的交换机(NAS)IP地址。
UDP的内容中,源端口(source port)为1812,目的端口(destination port)为1812。
Radius的内容中,code的值标识为11,含义为由SAM服务器向交换机发出的接入询问。
Radius的内容中,Identifier的值为1,表示这个包是SAM服务器向交换机的第一个接入请求包作出的响应。
具备以上特征的数据包认定为SAM服务器向交换机(NAS)发送的接入询问数据包(RADIUS access-challenge)。
三.交换机(NAS)向SAM服务器发起的第二次接入请求(RADIUS Access-request)数据包如图:该数据包有以下特征:1. 在IP的内容中,源地址(source address)为交换机(NAS) 的IP地址,目的地址(destination address)为SAM服务器的IP地址。
UDP的内容中,源端口(source port)为1812,目的端口(destination port)为1812。