Skip to content

Flow

Flow monitoring is a network visibility technology that captures, analyzes, and exports detailed information about network traffic patterns using protocols such as NetFlow v5, NetFlow v9, and IPFIX (IP Flow Information Export). It provides comprehensive traffic analytics by collecting metadata about network conversations including source/destination addresses, ports, protocols, packet counts, byte counts, and timing information without examining actual packet payloads. Flow monitoring enables network administrators to perform capacity planning, security analysis, application performance monitoring, and billing by providing granular insights into network utilization patterns and application behavior.

Diagram

Diagram

Classes

configuration (iosxe.devices)

NameTypeConstraintMandatoryDefault Value
flowClass[flow]No

flow (iosxe.devices.configuration)

NameTypeConstraintMandatoryDefault Value
exportersList[exporters]No
monitorsList[monitors]No
recordsList[records]No

exporters (iosxe.devices.configuration.flow)

NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
destination_ipIPNo
export_protocolChoicenetflow-v9, netflow-v5, ipfixNo
option_application_attributes_timeoutIntegermin: 1, max: 86400No
option_application_table_timeoutIntegermin: 1, max: 86400No
option_interface_table_timeoutIntegermin: 1, max: 86400No
option_sampler_tableBooleantrue, falseNo
option_vrf_table_timeoutIntegermin: 1, max: 86400No
source_loopbackIntegermin: 0, max: 2147483647No
transport_udpIntegermin: 0, max: 65535No
template_data_timeoutIntegermin: 1, max: 86400No

monitors (iosxe.devices.configuration.flow)

NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
exportersListStringNo
cache_timeout_activeIntegermin: 1, max: 604800No
cache_timeout_inactiveIntegermin: 1, max: 604800No
recordStringNo

records (iosxe.devices.configuration.flow)

NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
matchClass[match]No
collectClass[collect]No

match (iosxe.devices.configuration.flow.records)

NameTypeConstraintMandatoryDefault Value
application_nameBooleantrue, falseNo
connection_client_ipv4_addressBooleantrue, falseNo
connection_client_ipv6_addressBooleantrue, falseNo
connection_server_ipv4_addressBooleantrue, falseNo
connection_server_ipv6_addressBooleantrue, falseNo
connection_server_transport_portBooleantrue, falseNo
flow_directionBooleantrue, falseNo
flow_observation_pointBooleantrue, falseNo
interface_inputBooleantrue, falseNo
ipv4_destination_addressBooleantrue, falseNo
ipv4_protocolBooleantrue, falseNo
ipv4_source_addressBooleantrue, falseNo
ipv4_tosBooleantrue, falseNo
ipv4_versionBooleantrue, falseNo
ipv6_destination_addressBooleantrue, falseNo
ipv6_protocolBooleantrue, falseNo
ipv6_source_addressBooleantrue, falseNo
ipv6_versionBooleantrue, falseNo
transport_destination_portBooleantrue, falseNo
transport_source_portBooleantrue, falseNo

collect (iosxe.devices.configuration.flow.records)

NameTypeConstraintMandatoryDefault Value
connection_initiatorBooleantrue, falseNo
connection_new_connectionsBooleantrue, falseNo
connection_server_counter_bytes_network_longBooleantrue, falseNo
connection_server_counter_packets_longBooleantrue, falseNo
counter_bytes_longBooleantrue, falseNo
counter_packets_longBooleantrue, falseNo
datalink_mac_source_address_inputBooleantrue, falseNo
flow_directionBooleantrue, falseNo
interface_outputBooleantrue, falseNo
timestamp_absolute_firstBooleantrue, falseNo
timestamp_absolute_lastBooleantrue, falseNo
transport_tcp_flagsBooleantrue, falseNo

Examples

Example 1: The example below shows configuration to monitor IPv4 traffic flows based on specified match criteria and send it to a remote collector. It configures 1 monitor which associates a flow record and a flow exporter, and manage flow cache. Flow exporter contains information to send data to the remote collector with attirbutes like destination IP, source loopback, protocol, port, etc. The flow record defines the specifics fields to match and collect from network traffic flows.

iosxe:
devices:
- name: Device1
configuration:
flow:
exporters:
- name: exporter1
description: My exporter
destination_ip: 1.1.1.1
export_protocol: ipfix
option_application_attributes_timeout: 30
option_application_table_timeout: 40
option_interface_table_timeout: 50
option_sampler_table: true
option_vrf_table_timeout: 60
source_loopback: 123
transport_udp: 655
template_data_timeout: 60
monitors:
- name: MON1
description: My monitor
exporters:
- exporter1
cache_timeout_active: 60
record: FNF1
records:
- name: FNF1
description: My flow record
match:
ipv4_source_address: true
ipv4_destination_address: true
ipv4_protocol: true
ipv4_tos: true
transport_source_port: true
transport_destination_port: true
interface_input: true
flow_direction: true
collect:
interface_output: true
counter_bytes_long: true
counter_packets_long: true
transport_tcp_flags: true
timestamp_absolute_first: true
timestamp_absolute_last: true