nfcapd [options]
nfcapd is the netflow capture daemon of the nfdump tools. It reads netflow data from the network and stores it into files. The output file is automatically rotated and renamed every n minutes - typically 5 min - according the timestamp YYYYMMddhhmm of the interval e.g. nfcapd.201907110845 contains the data from July 11th 2019 08:45 onward. If the time interval is smaller then 60s, the naming extends to seconds e.g. nfcapd.20190711084510.
Netflow version v1, v5, v7 and v9 and IPFIX are transparently supported.
Extensions: nfcapd supports a large number of v9 tags. In order to optimise disk space and performance, v9 tags are grouped into a number of extensions which may or may not be stored into the data file. Therefore the v9 templates configured on the exporter may be tuned according the collector. Only those tags common to both are stored into the data files.
Sampling: By default, the sampling rate is set to 1 (unsampled) or to any given value specified by the -s cmd line option. If sampling information is found in the netflow stream, it overwrites the default value. Sampling is automatically recognised when announced in v9 option templates (tags #34, #35 or #48, #49, #50 ) or in the unofficial v5 header hack. Note: Not all platforms (or IOS/JunOS versions) support exporting sampling information in netflow data, even if sampling is configured. The number of bytes/packets in each netflow record is automatically multiplied by the sampling rate. The total number of flows is not changed as this is not accurate enough. (Small flows versus large flows) If the default sampling rate given by -s is negative, this will hard overwrite any device specific announced sampling rates.
NSEL/ASA Support: nfcapd can be compiled with NSEL/ASA support included. See notes on NSEL/ASA
NEL (NAT Event logging): nfcapd can be compiled with CISCO NEL support included. See notes on NEL.
1 %Y/%m/%d year/month/day
2 %Y/%m/%d/%H year/month/day/hour
3 %Y/%W/%u year/week_of_year/day_of_week
4 %Y/%W/%u/%H year/week_of_year/day_of_week/hour
5 %Y/%j year/day-of-year
6 %Y/%j/%H year/day-of-year/hour
7 %Y-%m-%d year-month-day
8 %Y-%m-%d/%H year-month-day/hour
1 input/output interface SNMP numbers.
2 src/dst AS numbers.
3 src/dst mask, (dst)TOS, direction.
4 line Next hop IP addr line
5 line BGP next hop IP addr line
6 src/dst vlan id labels
7 counter output packets
8 counter output bytes
9 counter aggregated flows
10 in_src/out_dst MAC address
11 in_dst/out_src MAC address
12 MPLS labels 1-10
13 Exporting router IPv4/IPv6 address
14 Exporting router ID
15 BGP adjacent prev/next AS
16 time stamp flow received by the collector
NSEL/ASA/NAT extensions
26 NSEL ASA event, xtended event, ICMP type/code
27 NSEL/NAT xlate ports
28 NSEL/NAT xlate IPv4/IPv6 addr
29 NSEL ASA ACL ingress/egress acl ID
30 NSEL ASA username
NEL/NAT extensions
31 NAT event, ingress egress vrfid
32 NAT Block port allocation - block start, end step and size
latency extension
64 nfpcapd/nprobe client/server/application latency"},
IMPORTANT: By default all extension are selected Extensions
can be added/deleted by specifying a ',' separated list of extension ids.
Each id may be prepended by an optional sign +/- to add or remove a given id
from the extension list. Shortcuts: The string 'all' means all extensions.
The strings
'nsel' and 'nel' enable all NSEL or NEL extensions respectively.
Examples:
-T all Enables all possible extensions.
-T +3,+4 Adds extensions 3 and 4 to the defaults 1 and 2.
-T all,-8,-9 Set all extensions but 8 and 9
-T -1,4 Removes default extension 1 and adds extension 4
-T nsel Enables all required ASA?NSEL extensions
-T nel Enables all required nell extensions
Note: Only those tags in common with the exporting device and enabled extensions at the collector side are stored into the data files. A detailed list which v9 tags are mapped into which extensions is given in the section NOTES
sub hierarchy. ( 2009/07/11/nfcapd.200907110845 )
%d Replaced by the directory where the file is located.
%t Replaced by the time ISO format e.g. 200907110845.
%u Replaced by the UNIX time format.
%i Replaced ident string given by -I
Returns 0 on success, or 255 if initialization failed.
nfcapd logs to syslog with SYSLOG_FACILITY LOG_DAEMON For normal operation level 'warning' should be fine. More information is reported at level 'info' and 'debug'.
A small statistic about the collected flows, as well as errors are reported at the end of every interval to syslog with level 'info'.
All flows are sent to port 9995 from all exporters and stored into a single file. All known v9 tags are taken.
All flows from 2 different exporters are sent to port 8877 and stored in separate directory trees. All known v9 tags are taken. Input buffer size is set to 128000 bytes
Only accept from from a single exporter and only extension 3,4 and 5 are accepted. Run a given command when files are rotated and automatically expire flows:
Multiple netflow sources:
Netflow data may be sent from different exporters to a single nfcapd process. Use the -n option to separate each netflow source to a different data directory. For compatibility with nfdump 1.5.x, old style -l/-I options are still valid. In that case all flows from all sources are stored in a single file. For high volume netflow streams, it is still recommended to have a single nfcapd process per netflow source.
Nfdump supports a large number of v9 and ipfix elements. For a detailed list chek the netflow_v9 and ipfix header files. 32 and 64 bit are supported for all counters. 32it AS numbers are supported.
The format of the data files is netflow version independent.
Socket buffer: Setting the socket buffer size is system dependent. When starting up, nfcapd returns the number of bytes the buffer was actually set. This is done by reading back the buffer size and may differ from what you requested.
No software without bugs! Please report any bugs back to me.