zeek-parser-CCLinkIENoIP

Zeek-Parser-CCLinkIENoIP

English is here

概要

Zeek-Parser-CCLinkIENoIPとはCC-LinkファミリーのCC-Link IE Field、CC-Link IE ControlとCC-Link IE TSNのTSNフレームを解析できるZeekプラグインです。

インストール

パッケージマネージャーによるインストール

このプラグインはZeek Package Manger用のパッケージとして提供されています。

以下のコマンドを実行することで、本プラグインは利用可能になります。

zkg refresh
zkg install zeek-parser-CCLinkIENoIP

マニュアルインストール

本プラグインを利用する前に、Zeek, Spicyがインストールされていることを確認します。

# Zeekのチェック
~$ zeek -version
zeek version 5.0.0

# Spicyのチェック
~$ spicyz -version
1.3.16
~$ spicyc -version
spicyc v1.5.0 (d0bc6053)

# 本マニュアルではZeekのパスが以下であることを前提としています。
~$ which zeek
/usr/local/zeek/bin/zeek

本リポジトリをローカル環境に git clone します。

~$ git clone https://github.com/nttcom/zeek-parser-CCLinkIENoIP.git

使い方

マニュアルインストールの場合

ソースコードをコンパイルして、オブジェクトファイルを以下のパスにコピーします。

~$ cd ~/zeek-parser-CCLinkIENoIP/analyzer
~$ spicyz -o cc_link_noip.hlto cc_link_noip.spicy cc_link_noip.evt
# cc_link_noip.hltoが生成されます
~$ cp cc_link_noip.hlto /usr/local/zeek/lib/zeek-spicy/modules/

同様にZeekファイルを以下のパスにコピーします。

~$ cd ~/zeek-parser-CCLinkIENoIP/scripts/
~$ cp main.zeek /usr/local/zeek/share/zeek/site/cc_link_noip.zeek

最後にZeekプラグインをインポートします。

~$ tail /usr/local/zeek/share/zeek/site/local.zeek
...省略...
@load cc_link_noip

本プラグインを使うことで cclink-ie.logが生成されます。pcapファイルにTSNフレームのパケットが含まれる場合に cclink-ie-tsn.log も生成されます。

以下を実行したら、生成されるログはcclink-ie.logとなります。

~$ cd ~/zeek-parser-CCLinkIENoIP/testing/Traces
~$ zeek -Cr test1.pcap /usr/local/zeek/share/zeek/site/cc_link_noip.zeek

以下を実行したら、生成されるログはcclink-ie.logcclink-ie-tsn.logとなります。

~$ zeek -Cr test2.pcap /usr/local/zeek/share/zeek/site/cc_link_noip.zeek

ログのタイプと説明

CC-Link IE FieldおよびCC-Link IE Control

CC-Link IE FieldおよびCC-Link IE Controlを監視してcclink-ie.logとして出力します。

フィールドタイプ説明
tstime最初に通信した時のタイムスタンプ
src_macstring送信元MACアドレス
dst_macstring宛先MACアドレス
servicestringプロトコル名
pdu_typestringプロトコルの関数名
cmdstringtransient1とtransient2の特有のフィールド
node_typestringノード種別
node_idintノード識別子
connection_infostringtransientDataの識別子
src_node_numberstring自ノード番号
numberintパケット出現回数
ts_endtime最後に通信した時のタイムスタンプ

cclink-ie.log の例は以下のとおりです。

#separator \x09
#set_separator	,
#empty_field	(empty)
#unset_field	-
#path	cclink-ie
#open	2023-03-15-16-56-36
#fields	ts	src_mac	dst_mac	service	pdu_type	cmd	node_type	node_id	connection_info	src_node_number	number	ts_end
#types	time	string	string	string	string	string	string	int	string	string	int	time
1658222113.678757	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	offset	-	-	0	-	0x0000	25	1658222113.737340
1658222113.676554	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	timer	-	-	-	-	0x0000	23	1658222113.738575
1658222113.676689	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	transient1	unknownCt\x00	-	0	0x13	0x0000	29	1658222113.738687
1658222113.679981	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	tokenM	-	-	0	-	0x0001	18	1658222113.732137
1658222113.676363	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	ipTransient	-	-	0	0x13	0x0000	21	1658222113.735251
1658222113.677097	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	cyclicDataRWr	-	-	0	-	0x0000	21	1658222113.737897
1658222113.682223	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	transientAck	-	-	0	0x13	0x0000	21	1658222113.739151
1658222113.677636	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	paramCheck	-	-	0	0x13	0x0000	26	1658222113.736735
1658222113.677231	00:11:11:11:11:11	00:00:00:00:00:01	cclink_ie_field	setup	-	-	1	-	0x0001	22	1658222113.736964
#close	2023-03-15-16-56-36

CC-Link IE TSN

CC-Link IE TSNを監視してcclink-ie-tsn.logに出力します。

フィールドタイプ説明
tstime最初に通信した時のタイムスタンプ
src_macstring送信元MACアドレス
dst_macstring宛先MACアドレス
servicestringプロトコル名
flame_typestringデータフレームの名前
pdu_typestringプロトコルの関数名
node_typestringノード種別
device_typestring機種タイプ
function_namestring機能種別
numberintパケット出現回数
ts_endtime最後に通信した時のタイムスタンプ

cclink-ie-tsn.log の例は以下のとおりです。

#separator \x09
#set_separator	,
#empty_field	(empty)
#unset_field	-
#path	cclink-ie-tsn
#open	2023-11-08-08-36-11
#fields	ts	src_mac	dst_mac	service	flame_type	pdu_type	node_type	device_type	function_name	number	ts_end
#types	time	string	string	string	string	string	string	string	string	int	time
1697605189.166718	00:0c:29:a8:c1:f0	80:22:a7:83:f9:7e	cclink_ie_tsn&field	acyclic	acyclicTestDataAck	master station	-	-	30	1697605189.169635
1697605738.834423	00:0c:29:a8:c1:f0	b4:b5:2f:76:cb:e4	cclink_ie_tsn	acyclic	acyclicTestData	master station	-	-	30	1697605738.837371
1697605817.307274	00:0c:29:a8:c1:f0	00:4e:01:c5:21:8f	cclink_ie_tsn	acyclic	acyclicData	-	-	-	30	1697605817.309732
1697605837.472867	28:e9:8e:18:71:58	08:00:27:b9:d0:0b	cclink_ie_tsn	acyclic	acyclicDetection Ver.0	-	-	-	30	1697605837.475716
1697605885.372366	28:e9:8e:18:71:58	28:e9:8e:75:95:a7	cclink_ie_tsn	cyclic	cyclicM/cyclicMs	-	-	-	30	1697605885.375176
1697605875.249707	28:e9:8e:18:71:58	ff:ff:ff:ff:ff:ff	cclink_ie_tsn	acyclic	acyclicPriority	-	-	-	30	1697605875.252467
1697605857.305008	28:e9:8e:75:95:a7	28:e9:8e:18:71:58	cclink_ie_tsn	acyclic	acyclicDetectionAck Ver.1	slave station	digital I/O	srwcvpdiIR	30	1697605857.309105
1697605894.366325	28:e9:8e:75:95:a7	28:e9:8e:18:71:58	cclink_ie_tsn	cyclic	cyclicS/cyclicSs	-	-	-	30	1697605894.369247
1697605847.495273	28:e9:8e:75:95:a7	28:e9:8e:18:71:58	cclink_ie_tsn	acyclic	acyclicDetectionAck Ver.0	slave station	personal computer	srwcl	30	1697605847.499091
1697605826.702719	00:0c:29:5f:70:ce	08:00:27:b9:d0:0a	cclink_ie_tsn	acyclic	acyclicDetection Ver.0	-	-	-	30	1697605826.705461
#close	2023-11-08-08-36-11

関連ソフトウェア

本プラグインはOsecTで利用されています。

Package Version :