Community ID
Synopsis
Computes the Community ID for network flow data, as defined in the Community ID Specification.
Schema
- community_id:
description: <text>
destination_ip: <ident>
destination_port: <ident>
iana_number: <ident>
icmp_code: <ident>
icmp_type: <ident>
if: <script>
ignore_missing: <boolean>
ignore_failure: <boolean>
on_failure: <processor[]>
on_success: <processor[]>
source_ip: <ident>
source_port: <ident>
seed: <numeric>
tag: <string>
target_field: <ident>
transport: <ident>
Configuration
The following fields are used to define the processor:
| Field | Required | Default | Description |
|---|---|---|---|
description | N | - | Explanatory text |
destination_ip | N | destination.ip | Field containing the destination IP |
destination_port | N | destination.port | Field containing the destination port |
iana_number | N | network.iana_number | Field containing the IANA number |
icmp_code | N | icmp.code | Field containing the ICMP code |
icmp_type | N | icmp.type | Field containing the ICMP type |
if | N | - | Condition to run |
ignore_missing | N | false | Has no effect here. A missing source or destination IP already ends the processor quietly, so the condition this flag guards never arises |
ignore_failure | N | false | See Handling Failures |
on_failure | N | - | See Handling Failures |
on_success | N | - | See Handling Success |
source_ip | N | source.ip | Field containing the source IP |
source_port | N | source.port | Field containing the source port |
seed | N | 0 | Seed for the hash to be generated for the ID. Must be in the 0..65535 range. Can prevent hash collisions between network domains that use the same scheme |
tag | N | - | Identifier |
disabled | N | false | When true, the processor is skipped and the event continues to the next one. Lets you take a processor out of the path without removing its configuration |
target_field | N | network.community_id | Field for the output |
transport | N | network.transport | Field containing the transport protocol name. Used only when iana_number is not defined. Recognised names, matched case-insensitively: eigrp, gre, icmp, icmpv6, igmp, ospf, pim, sctp, tcp, udp. Anything else fails the processor |
Details
Use to correlate network events related to a single flow. By default, reads network flow data from the related ECS fields.
The value is the version prefix 1: followed by the base64-encoded SHA-1 of the flow tuple — for example 1:r8mCJwk816h4w3LQgwfmuIxcofc=. Consumers that compare Community IDs across tools must keep the prefix.
The hash is direction-independent: the tuple is ordered canonically before hashing, so a packet and its reply produce the same ID.
The protocol is taken from iana_number when that field is present; transport is consulted only otherwise. For ICMP and ICMPv6 (1 and 58) the type and code stand in for the ports, again resolved so that a request and its reply agree.
A missing or empty source or destination IP ends the processor quietly with no output field. A missing protocol — neither iana_number nor transport present — is an error.
Examples
A TCP flow with both endpoints and the transport name: | |
computing its Community ID... | |
giving the flow identifier, version prefix included: | |