Provided by: fprobe_1.1-8_amd64 bug

NAME

       fprobe - a NetFlow probe

SYNOPSIS

       fprobe [options] remote:port[/[local][/type]] ...

DESCRIPTION

       fprobe  -  libpcap-based  tool that collect network traffic data and emit it as NetFlow flows towards the
       specified collector.

OPTIONS

       -h     Display short help

       -p     Don't put the interface into promiscuous mode.  Note  that  even  if  this  option  is  used,  the
              interface might be in promiscuous mode for some other reason.

       -i <interface>
              Listen on interface. If unspecified, fprobe will use result of pcap_lookupdev() function. On Linux
              systems with 2.2 or later kernels, an interface argument of `any' can be used to  capture  packets
              from all interfaces. Note that captures on the `any' device will not be done in promiscuous mode.
              You  may  use `-' as interface name to process files produced by tcpdump with -w flag. fprobe will
              read data from stdin.

       -f <expression>
              Filter expression selects which packets will be captured. If no expression is given,  all  packets
              on  the  net  will  be  captured.   Otherwise, only packets for which expression is `true' will be
              captured.
              fprobe use silly IP-packet detection method, so it is bad idea to  leave  the  filter  empty.  For
              general use `ip' (-fip) is good filter expression.
              Read tcpdump manual for detailed expression syntax.

       -s <seconds>
              How often scan for expired flows. [default=5]

       -g <seconds>
              Fragmented flow lifetime. [default=30]

       -d <seconds>
              Idle flow lifetime (inactive timer). [default=60]

       -e <seconds>
              Active flow lifetime (active timer). [default=300]

       -n <version>
              NetFlow version for use (1, 5, 7). [default=5]

       -a <address>
              Use address as source for NetFlow flow.

       -x <inputID>[:<outputID>]
              Workaround for SNMP interfaces indexes. [default=0]
              The second parameter may be omitted - in this case its value will be equal to the first.
              See BUGS section.

       -b <flows>
              Memory bulk size. [default=200 or 10000]
              Note that maximum and default values depends on compiling options (--with-membulk parameter).

       -m <kilobytes>
              Memory limit for flows cache (0=no limit). [default=0]

       -q <flows>
              Pending queue length. [default=100]
              Each  captured  packet  at  first puts into special buffer called `pending queue'. Purpose of this
              buffer is to separate most time-critical packet capture thread from other.

       -B <kilobytes>
              Kernel capture buffer size (0=don't change). [default=0]
              Increase kernel capture buffer size is most adequate way to prevent packets  loss.  Unfortunately,
              at  present  there is no straight way to set the buffer size throught libpcap, so this option is a
              hack. Moreover, now this hack take effect only on socket()-based capture mechanisms: it mean  that
              it work on Linux and don't work on BSD systems with their bpf().
              Note  that  maximum allowed size of the buffer in Linux limited and generally relatively small, so
              it should need to change the maximum: sysctl -w net/core/rmem_max=4194304

       -r <priority>
              Real-time priority (0=disabled). [default=0]
              If parameter greater then zero fprobe will use real-time  scheduling  policy  to  prevent  packets
              loss. Note that possible values for this option depends on operating system.

       -t <B:N>
              Emitting rate limit (0:0=no limit). [default=0:0]
              Produce N nanosecond delay after each B bytes sent. This option may be useful with slow interfaces
              and slow collectors. Note that the suspension time  may  be  longer  than  requested  because  the
              argument  value  is  rounded  up  to  an  integer  multiple of the sleep resolution (it depends on
              operating system and hardware) or because of the scheduling of other activity by the system.
              See BUGS section.

       -S <bytes>
              Snaplen (0=whole packet). [default=256]
              Number of bytes to capture from packet on wire.

       -K <bytes>
              Link layer header size. By default fprobe  take  this  information  from  libpcap,  but  sometimes
              obtained  size  unsuitable  for  our  purpose. It occurs, for example, on trunk interfaces in VLAN
              enviroment, where link layer header contain additional VLAN header.
              See EXAMPLES section.

       -k     Don't exclude link layer header from packet size. By default fprobe counts only IP-part of packet.

       -c <directory>
              Directory to chroot to.

       -u <user>
              User to run as.

       -v <level>
              Maximum displayed log level.  (0=EMERG,  1=ALERT,  2=CRIT,  3=ERR,  4=WARNING,  5=NOTICE,  6=INFO,
              7=DEBUG) [default=6]

       -l <[dst][:id]>
              Log destination (0=none, 1=syslog, 2=stdout, 3=both) and log/pidfile identifier. [default=1]
              This  option  allows  to  select  opportune log destination and process identifier. The identifier
              helps to distinguish pidfile and logs of one fprobe process from other.
              Note that if log destination contains `stdout' (equal 2 or 3) fprobe will run in foreground.

       remote:port/local/type
              Parameters remote and port are respectively define address and port of the NetFlow collector.
              The local parameter allows binding certain local IP  address  with  specified  collector.  If  the
              parameter is omitted the value (if any) of -a option will be used.
              The  type parameter determines emitting behavior. It may be `m' for mirroring (by default) and `r'
              for collectors round-robin rotating.
              You may specify multiple collectors.

EXAMPLES

       Web traffic trivial capturing:
       fprobe -ippp0 -f"tcp&&port 80" localhost:2055

       Capturing from trunk interface:
       fprobe -ieth0 -f"vlan&&ip" -K18 localhost:2055

       Reasonable configuration to run under heavy load:
       fprobe -fip -B4096 -r2 -q10000 -t10000:10000000 localhost:2055

       Send packets to collector at 10.1.1.1:2055 and distribute them between collectors at 10.1.1.2:2055 and at
       10.1.1.3:2055 on a round-robin basis:
       fprobe 10.1.1.1:2055 10.1.1.2:2055//r 10.1.1.3:2055//r

BUGS

       SNMP interfaces indexes and packet direction.
       Unfortunately  libpcap  don't  provide  any  routing-related information about captured packet, therefore
       there are no straight ways to determine and distinguish input and output interfaces. However -x option at
       least  can tell that flow was passed through the certain interface. Also you may launch several instances
       of the program with tricky set of filters to mark out each possible packet direction:
       fprobe -x1:2 -ieth1 -f"ip&&dst net 10.2" localhost:2055
       fprobe -x2:1 -ieth2 -f"ip&&dst net 10.1" localhost:2055

       Slow interfaces and slow collectors.
       There are may be problems with slow interfaces and slow collectors. It effects as emitted  packets  loss.
       On  the  one hand silent non-blocking sendto() implementation can't guarantee that packet was really sent
       to collector - it may be dropped by kernel due to outgoing buffer shortage (slow interface's problem) and
       on  the  other hand packet may be dropped on collector's machine due the similar reason - incoming buffer
       shortage (slow collector's problem).
       Use -t option as workaround for this issue.

SEE ALSO

       tcpdump pcap(3)
       http://www.cisco.com/go/netflow