4 如何抓包
4.1 抓包工具
常用的抓包工具有Windows下的mms-ethereal,WireShark和Solaris下的snoop命令。
mms-ethereal能够自动解释mms报文,适合进行应用层报文的分析。WireShark是ethereal的替代版本,界面更加友好,但标准版本中没有对mms报文分析的支持;snoop主要是用来抓包,没有图形化的分析界面,snoop抓取的文件能够用WireShark打开辅助分析;
4.2 抓包方法
对于广播和组播报文如装置的UDP心跳报文,能够用笔记本连接到交换机上任意端口抓取。 对于后台和装置之间的TCP通讯,有以下几种方法。
1)后台机上可安装软件来抓包,非window系统的也能够在笔记本电脑上用相同配置模拟后台截取报文。 2)利用HUB连接后台和装置,将笔记本接到HUB上抓包。注意一定要使用HUB,不能使用交换机。 WireShark和mms-ethereal均是图形化的界面,使用起来比较简单,注意选择正确的网卡即可。 snoop的使用方法能够用man snoop取得,最基本的命令为snoop -d bge0 -o xx.snoop
3)如果是远动、和子站装置,可在交换机上设定镜像端口,把要截取报文的端口镜像到镜像端口,则笔记本电脑只要连接到镜像端口即可截取其它端口的报文。交换机一般都支持端口镜像功能,需要参照说明书进行设定。
4.3 分析举例
均以WireShark为例,mms-ethereal和之类似。 1.3.1 设置抓包过滤条件
在后台上抓包时,数据量比较大,文件一大之后,解析起来速度很慢,如果单纯为了分析应用层报文,可在抓包的时候设置过滤条件。如果为了分析网络通断问题,一般不设置过滤条件,便于全面了解网络状况。 抓包过滤条件在Capture->Options->Capture Filter里设置,点Capture Filter会有很多现成的例子,下面列举几个最常用的。 tcp udp host 198.120.0.100 只抓取tcp报文 只抓取udp报文 只抓取198.120.0.100的报文 ether host 00:08:15:00:08:15 只抓取指定MAC地址的报文 1.3.2 设置显示过滤条件
打开一个抓包文件后,能够在工具栏上的filter栏设置显示过滤条件,这里的语法和Capture Filter有点差别,举例如下。 tcp udp ip.addr==198.120.0.100 只抓取tcp报文 只抓取udp报文 只抓取198.120.0.100的报文 eth.addr==00:08:15:00:08:15 只抓取指定MAC地址的报文
仍能够在报文上点击右键选择apply as filter等创建一个过滤条件,比较方便。 1.3.3 判别网络状况
输入显示过滤条件tcp.analysis.flags,能够显示丢失、重发等异常情况相关的TCP报文,此类报文的出现频率能够作为评估网络状况的一个标尺。
常见的异常类型有以下几个
[TCP Retransmission] [TCP Dup ACK xxx] 由于没有及时收到ACK报文而产生的重传报文 重复的ACK报文 [TCP Previous segment 前一帧报文丢失 lost] [TCP Out-Of-Order] TCP的帧顺序错误 偶尔出现属于正常现象,完全不出现说明网络状态上佳。
监视TCP连接建立和中断
输入显示过滤条件,tcp.flags.syn==1||tcp.flags.fin==1|| tcp.flags.reset==1
SYN是TCP建立的第一步,FIN是TCP连接正常关断的标志,RST是TCP连接强制关断的标志 (2) 统计心跳报文有无丢失
在statistics->conversations里选择UDP,能够见到所有装置的UDP报文统计。一般情况下,相同型号装置的UDP报文的数量应该相等,最多相差1到2个,如果个别装置数量异常,则可能是有心跳报文丢失,能够以该装置的地址为过滤条件进行进一步查找。
调试61850的站,最好要家里带上一个HUB(库房一般是8口10M的TP-LINK)---不是交换机。主要用于抓数据包,便于查问题。没有HUB根本没有办法查见远动和装置的mms报文以及goose数据包。抓报工具是归档里面的61850的报文监视工具。如下:
打开抓报工具,点击左侧第二个按钮开始设置:
选择本计算机网卡,地址就是本地连接里面设置的IP地址:
设置要监视的装置的IP地址:格式为host 198.120.0.72。
点击browse按钮设置存储文件名及路径:
设置长期抓包存储,选中,按抓包大小存贮(m代表MB,能够是KB或者GB);按时间存储如下图:
把这个选项勾上就能够实时显示数据,便于查找问题。
点击“start”按钮开始抓包。
7、 MMS报文简析
注:报文取自培训资料包中的associate-setting和file报文文件,报文对应的模型文件为csc1710.cid,对应子系统配置文件为ied1.ini。
5.1初始化相关
5.1.1初始化Initiate
是client端和IED建立连接的初始报文。 Client初始化请求Request
1. 报文时间显示格式可在view->Time display format中设置为绝对时间和相对时间(从运行报文软件
开始经过的时间)
2. Source为源端既报文发起方的IP地址,Destination为终端既报文接收方的IP地址 装置的应答Response
5.1.2读取控制模式:Read
子系统在初始化时,检查IED是否配置有控制数据,包括复归、压板、开关控制等,也就是模型中FC=CO的数据,对应于iedxx.ini中的CTL行。如果有控制数据,子系统需要读取每路控制的控制模式,模型中为ctlModel的数据。子系统对复归控制ctlModel默认为1,既直接控制,压板开关ctlModel默认为4,既带预置令的控制模式。 CTL CSC1034LD0 null
CTL CSC1034LD0 null
CTL CSC1034LD0
LLN0.CO.Pdis1Ena SPC 4(默认ctlModel为4)
2 0
0
2232
2232
LLN0.CO.PdifEna SPC 4(默认ctlModel为4)
2 0
0
2231
2231
LLN0.CO.LEDRs SPC 1(默认ctlModel为1) 2 0
0
2230
2230
2020年(IE工业工程)IEC61850模型建模及MMS报文分析



