 |
|
| |
rwsilk2ipfix(1) |
SiLK Tool Suite |
rwsilk2ipfix(1) |
rwsilk2ipfix - Convert SiLK Flow records to IPFIX records
rwsilk2ipfix [--ipfix-output=PATH] [--no-site-name-elements]
[--print-statistics] [--single-template]
[--site-config-file=FILENAME]
{[--xargs] | [--xargs=FILENAME] | [FILE [FILE ...]]}
rwsilk2ipfix --help
rwsilk2ipfix --version
rwsilk2ipfix reads SiLK Flow records, converts the records
to an IPFIX (Internet Protocol Flow Information eXport) format, and writes
the IPFIX records to the path specified by --ipfix-output or to the
standard output when the --ipfix-output switch is not provided and
standard output is not the terminal.
rwsilk2ipfix reads SiLK Flow records from the files named
on the command line or from the standard input when no file names are
specified and --xargs is not present. To read the standard input in
addition to the named files, use "-" or
"stdin" as a file name. If an input file
name ends in ".gz", the file is
uncompressed as it is read. When the --xargs switch is provided,
rwsilk2ipfix reads the names of the files to process from the named
text file or from the standard input if no file name argument is provided to
the switch. The input to --xargs must contain one file name per
line.
The IPFIX records generated by rwsilk2ipfix will contain
ten information elements that are in the Private Enterprise space for CERT
(the IPFIX Private Enterprise Number of CERT is 6871). These ten information
elements fall into three groups:
- Elements 30 and 31 contain the packing information that was determined by
rwflowpack(8), specifically the flowtype and the sensor. These
values correspond to numbers specified in the site configuration file,
silk.conf(5).
- Elements 938, 939, 940, and 941 contain the names that correspond to the
values in elements 30 and 31. These elements are not exported if
rwsilk2ipfix is unable to find the silk.conf file or if the
--no-site-name-elements switch is provided. Since SiLK
3.20.0.
- Elements 14, 15, 32, and 33 contain information elements generated by the
yaf(1) flow meter (<http://tools.netsa.cert.org/yaf/>). The
information elements may be present even if yaf was not used to
generate the flow records, but their value will be empty or 0.
For each of the ten information elements that rwsilk2ipfix
produces, the following table lists its numeric ID, its length in octets (or
"v" for variable length), its name, the
field name it corresponds to on rwcut(1), and a brief
description.
30 1 silkFlowtypeId class & type How rwflowpack categorized
the flow record
31 2 silkSensorId sensor Sensor where the flow was
collected
938 v silkFlowtypeName - Name of the silkFlowtypeId
as read from F<silk.conf>
939 v silkClassName class Class name derived from
the silkFlowtypeId
940 v silkTypeName type Type name derived from the
silkFlowtypeId
941 v silkSensorName sensor Name of the silkSensorId
as read from F<silk.conf>
14 1 initialTCPFlags initialFlags TCP flags on first packet in
the flow record
15 1 unionTCPFlags sessionFlags TCP flags on all packets in
the flow except the first
32 1 silkTCPState attributes Flow continuation attributes
set by generator
33 2 silkAppLabel application Guess by flow generator as
to the content of traffic
Note: Elements 30 and 31, silkFlowtypeId and silkSensorId, may
appear as silkFlowType and silkFlowSensor in some documentation.
Since SiLK 3.12.0, rwsilk2ipfix has used ten different
IPFIX templates for writing SiLK Flow records, and the format of these
templates changed in SiLK 3.20.0. The --single-template switch causes
rwsilk2ipfix to revert to its previous behavior and use a single
template for all records.
The final four elements in these templates (Elements 938--941) are
variable length and they are not included if the site configuration file
(silk.conf(5)) is not available or if the
--no-site-name-elements option is given.
- 1.
- Template ID 0x9DD0 (40400), for IPv4 records whose protocol is not ICMP,
ICMPv6, UDP, SCTP, or TCP:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35- 38 sourceIPv4Address (8) 12 sIP
39- 42 destinationIPv4Address (12) 13 dIP
43- 46 ipNextHopIPv4Address (15) 14 nhIP
47- v silkFlowtypeName (6871, 938) 15 class & type
v- v silkClassName (6871, 939) 16 class
v- v silkTypeName (6871, 940) 17 type
v- v silkSensorName (6871, 941) 18 sensor
- 2.
- Template ID 0x9DD1 (40401), for ICMP IPv4 records:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35- 36 icmpTypeCodeIPv4 12 dPort
37- 40 sourceIPv4Address (8) 13 sIP
41- 44 destinationIPv4Address (12) 14 dIP
45- 48 ipNextHopIPv4Address (15) 15 nhIP
49- v silkFlowtypeName (6871, 938) 16 class & type
v- v silkClassName (6871, 939) 17 class
v- v silkTypeName (6871, 940) 18 type
v- v silkSensorName (6871, 941) 19 sensor
- 3.
- Template ID 0x9DD2 (40402), for IPv4 records whose protocol is UDP or
SCTP:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35- 36 sourceTransportPort (7) 12 sPort
37- 38 destinationTransportPort (11) 13 dPort
39- 42 sourceIPv4Address (8) 14 sIP
43- 46 destinationIPv4Address (12) 15 sIP
47- 50 ipNextHopIPv4Address (15) 16 nhIP
51- v silkFlowtypeName (6871, 938) 17 class & type
v- v silkClassName (6871, 939) 18 class
v- v silkTypeName (6871, 940) 19 type
v- v silkSensorName (6871, 941) 20 sensor
- 4.
- Template ID 0x9DD3 (40403), for IPv4 records whose protocol is TCP and
that do not have the expanded TCP flags fields (initial flags and session
flags):
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35 tcpControlBits (6) 12 flags
36- 37 sourceTransportPort (7) 13 sPort
38- 39 destinationTransportPort (11) 14 dPort
40- 43 sourceIPv4Address (8) 15 sIP
44- 47 destinationIPv4Address (12) 16 dIP
48- 51 ipNextHopIPv4Address (15) 17 nhIP
52- v silkFlowtypeName (6871, 938) 18 class & type
v- v silkClassName (6871, 939) 19 class
v- v silkTypeName (6871, 940) 20 type
v- v silkSensorName (6871, 941) 21 sensor
- 5.
- Template ID 0x9DD4 (40404), for IPv4 records whose protocol is TCP and
that have have the initial flags and session flags fields:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35 initialTCPFlags (6871, 14) 12 initialFlags
36 unionTCPFlags (6871, 15) 13 sessionFlags
37 tcpControlBits (6) 14 flags
38- 39 sourceTransportPort (7) 15 sPort
40- 41 destinationTransportPort (11) 16 dPort
42- 45 sourceIPv4Address (8) 17 sIP
46- 49 destinationIPv4Address (12) 18 dIP
50- 53 ipNextHopIPv4Address (15) 19 nhIP
54- v silkFlowtypeName (6871, 938) 20 class & type
v- v silkClassName (6871, 939) 21 class
v- v silkTypeName (6871, 940) 22 type
v- v silkSensorName (6871, 941) 23 sensor
- 6.
- Template ID 0x9ED0 (40656), for IPv6 records whose protocol is not ICMP,
ICMPv6, UDP, SCTP, or TCP:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35- 50 sourceIPv6Address (27) 12 sIP
51- 66 destinationIPv6Address (28) 13 dIP
67- 82 ipNextHopIPv6Address (62) 14 nhIP
83- v silkFlowtypeName (6871, 938) 15 class & type
v- v silkClassName (6871, 939) 16 class
v- v silkTypeName (6871, 940) 17 type
v- v silkSensorName (6871, 941) 18 sensor
- 7.
- Template ID 0x9ED1 (40657), for ICMPv6 IPv6 records:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35- 36 icmpTypeCodeIPv6 12 dPort
37- 52 sourceIPv6Address (27) 13 sIP
53- 68 destinationIPv6Address (28) 14 dIP
69- 84 ipNextHopIPv6Address (62) 15 nhIP
85- v silkFlowtypeName (6871, 938) 16 class & type
v- v silkClassName (6871, 939) 17 class
v- v silkTypeName (6871, 940) 18 type
v- v silkSensorName (6871, 941) 19 sensor
- 8.
- Template ID 0x9ED2 (40658), for IPv6 records whose protocol is UDP or
SCTP:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35- 36 sourceTransportPort (7) 12 sPort
37- 38 destinationTransportPort (11) 13 dPort
39- 54 sourceIPv6Address (27) 14 sIP
55- 70 destinationIPv6Address (28) 15 dIP
71- 86 ipNextHopIPv6Address (62) 16 nhIP
87- v silkFlowtypeName (6871, 938) 17 class & type
v- v silkClassName (6871, 939) 18 class
v- v silkTypeName (6871, 940) 19 type
v- v silkSensorName (6871, 941) 20 sensor
- 9.
- Template ID 0x9ED3 (40659), for IPv6 records whose protocol is TCP and
that do not have the expanded TCP flags fields (initial flags and session
flags):
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35 tcpControlBits (6) 12 flags
36- 37 sourceTransportPort (7) 13 sPort
38- 39 destinationTransportPort (11) 14 dPort
40- 55 sourceIPv6Address (27) 15 sIP
56- 71 destinationIPv6Address (28) 16 dIP
72- 87 ipNextHopIPv6Address (62) 17 nhIP
88- v silkFlowtypeName (6871, 938) 18 class & type
v- v silkClassName (6871, 939) 19 class
v- v silkTypeName (6871, 940) 20 type
v- v silkSensorName (6871, 941) 21 sensor
- 10.
- Template ID 0x9ED4 (40660), for IPv6 records whose protocol is TCP and
that have have the initial flags and session flags fields:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 19 packetDeltaCount (2) 3 packets
20- 23 octetDeltaCount (1) 4 bytes
24- 25 ingressInterface (10) 5 in
26- 27 egressInterface (14) 6 out
28- 29 silkAppLabel (6871, 33) 7 application
30- 31 silkSensorId (6871, 31) 8 sensor
32 silkFlowtypeId (6871, 30) 9 class & type
33 silkTCPState (6871, 32) 10 attributes
34 protocolIdentifier (4) 11 protocol
35 initialTCPFlags (6871, 14) 12 initialFlags
36 unionTCPFlags (6871, 15) 13 sessionFlags
37 tcpControlBits (6) 14 flags
38- 39 sourceTransportPort (7) 15 sPort
40- 41 destinationTransportPort (11) 16 dPort
42- 57 sourceIPv6Address (27) 17 sIP
58- 73 destinationIPv6Address (28) 18 dIP
74- 89 ipNextHopIPv6Address (62) 19 nhIP
90- v silkFlowtypeName (6871, 938) 20 class & type
v- v silkClassName (6871, 939) 21 class
v- v silkTypeName (6871, 940) 22 type
v- v silkSensorName (6871, 941) 23 sensor
When the --single-template switch is provided,
rwipfix2silk uses a single IPFIX template for all records. That
template has ID 0xAFEA (45034) and contains the following information
elements:
OCTETS INFORMATION ELEMENT (PEN, ID) POS SILK FIELD
======= ============================= === =============
0- 7 flowStartMilliseconds (152) 1 sTime
8- 15 flowEndMilliseconds (153) 2 sTime + duration
16- 31 sourceIPv6Address (27) 3 sIP
32- 47 destinationIPv6Address (28) 4 dIP
48- 51 sourceIPv4Address (8) 5 sIP
52- 55 destinationIPv4Address (12) 6 dIP
56- 57 sourceTransportPort (7) 7 sPort
58- 59 destinationTransportPort (11) 8 dPort
60- 63 ipNextHopIPv4Address (15) 9 nhIP
64- 79 ipNextHopIPv6Address (62) 10 nhIP
80- 83 ingressInterface (10) 11 in
84- 87 egressInterface (14) 12 out
88- 95 packetDeltaCount (2) 13 packets
96-103 octetDeltaCount (1) 14 bytes
104 protocolIdentifier (4) 15 protocol
105 silkFlowtypeId (6871, 30) 16 class & type
106-107 silkSensorId (6871, 31) 17 sensor
108 tcpControlBits (6) 18 flags
109 initialTCPFlags (6871, 14) 19 initialFlags
110 unionTCPFlags (6871, 15) 20 sessionFlags
111 silkTCPState (6871, 32) 21 attributes
112-113 silkAppLabel (6871, 33) 22 application
114-119 paddingOctets (210) 23 -
Note that the template contains both IPv4 and IPv6 addresses. One
set of those addresses contains the IP addresses and the other set contains
only zeros. The template never includes elements 938--941.
Option names may be abbreviated if the abbreviation is unique or
is an exact match for an option. A parameter to an option may be specified
as --arg=param or --arg param, though the first
form is required for options that take optional parameters.
- --ipfix-output=PATH
- Write the IPFIX records to PATH, where PATH is a filename, a
named pipe, the keyword "stderr" to
write the output to the standard error, or the keyword
"stdout" or
"-" to write the output to the standard
output. If PATH names an existing file, rwsilk2ipfix exits
with an error unless the SILK_CLOBBER environment variable is set, in
which case PATH is overwritten. If this switch is not given, the
output is written to the standard output. Attempting to write the binary
output to a terminal causes rwipfix2silk to exit with an
error.
- --no-site-name-elements
- Do not export the elements that use the site configuration file
(silk.conf(5)) to get the names of the flowtype, class, type, and
sensor. That is, do not include silkFlowtypeName, silkClassName,
silkTypeName, and silkSensorName in the exported templates and records.
Since SiLK 3.20.0.
- --print-statistics
- Print, to the standard error, the number of records that were written to
the IPFIX output file.
- --single-template
- Use a single IPFIX template for all records. Using this switch produces
output identical to that produced by rwsilk2ipfix from SiLK 3.11.0
and earlier. Since SiLK 3.12.0.
- --site-config-file=FILENAME
- Read the SiLK site configuration from the named file FILENAME. When
this switch is not provided, rwsilk2ipfix searches for the site
configuration file in the locations specified in the "FILES"
section.
- --xargs
- --xargs=FILENAME
- Read the names of the input files from FILENAME or from the
standard input if FILENAME is not provided. The input is expected
to have one filename per line. rwsilk2ipfix opens each named file
in turn and reads records from it as if the filenames had been listed on
the command line.
- --help
- Print the available options and exit.
- --version
- Print the version number and information about how SiLK was configured,
then exit the application.
In the following examples, the dollar sign
("$") represents the shell prompt. The
text after the dollar sign represents the command line.
To convert the SiLK file silk.rw into an IPFIX format and
store the results in ipfix.dat:
$ rwsilk2ipfix --ipfix-output=ipfix.dat silk.rw
To view the contents of ipfix.dat using the
yafscii(1) tool (see <http://tools.netsa.cert.org/yaf/>):
$ yafscii --in=ipfix.dat --out=-
To view the contents of ipfix.dat using the
ipfixDump(1) tool (see <http://tools.netsa.cert.org/yaf/>):
$ ipfixDump --yaf --in=ipfix.dat --out=-
Use the rwipfix2silk(1) tool to convert the IPFIX file back
into SiLK Flow format:
$ rwipfix2silk --silk-output=silk2.rw ipfix.dat
- SILK_CLOBBER
- The SiLK tools normally refuse to overwrite existing files. Setting
SILK_CLOBBER to a non-empty value removes this restriction.
- SILK_CONFIG_FILE
- This environment variable is used as the value for the
--site-config-file when that switch is not provided.
- SILK_DATA_ROOTDIR
- This environment variable specifies the root directory of data repository.
As described in the "FILES" section, rwsilk2ipfix may use
this environment variable when searching for the SiLK site configuration
file.
- SILK_PATH
- This environment variable gives the root of the install tree. When
searching for configuration files, rwsilk2ipfix may use this
environment variable. See the "FILES" section for details.
- ${SILK_CONFIG_FILE}
- ${SILK_DATA_ROOTDIR}/silk.conf
- /data/silk.conf
- ${SILK_PATH}/share/silk/silk.conf
- ${SILK_PATH}/share/silk.conf
- /usr/local/share/silk/silk.conf
- /usr/local/share/silk.conf
- Possible locations for the SiLK site configuration file which are checked
when the --site-config-file switch is not provided.
rwipfix2silk(1), rwcut(1), rwflowpack(8),
silk.conf(5), silk(7), yaf(1), yafscii(1),
ipfixDump(1), applabel(1)
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
|