Skip to main content

"cflowd 2.0: Cisco flow-export collection"

Archived MagicPoint presentation slides, compiled into a single PDF document.

1999_isma9901_cflowd.pdf (37 slides, 492 KB)

Slide text transcript

Slide 1: cflowd 2.0

cflowd 2.0
Cisco flow-export collection







Daniel McRobb
dwm@caida.org

Slide 2: Background

Background

host software for collecting Cisco version 5 (and version 1) flow-export data
aggregates data into tables for continuous collection of summary data (in time-series)
stores raw flow data in rotating log files
provides client/server collection of tabular data in time series

Slide 3: Changes from 1.3b2 to 2.0

Changes from 1.3b2 to 2.0

all tables are per input interface (not per router)
support for version 1 flow-export
central collector included
uses arts++ package for data storage and aggregation
real-time flow-matching API (example `flowwatch' program included)
interface matrix
IP nexthop table

Slide 4: cflowd architecture

cflowd architecture

Slide 5: benefits of new architecture

benefits of new architecture

increased performance (shared memory packet queue vs. UNIX domain sockets for cflowdmux to cflowd IPC)
hooks for real-time flow matching
source code easier to maintain due to heavy use of STL and more modularization

Slide 6: cflowd

cflowd

Slide 7: flow export version 5

flow export version 5

sends UDP packets to a specified host address and port number
each UDP packet contains a number of flow entries

Slide 8: flow-export packets

flow-export packets

Slide 9: flow header

flow header

Slide 10: flow entry

flow entry

Slide 11: cflowd aggregation

cflowd aggregation

cflowd primarily designed to aggregate flow data into tabular data to be used for capacity planning
AS matrix, net matrix, port matrix, protocol table, interface matrix and nexthop table aggregation across all flows

Slide 12: Why so much aggregation?

Why so much aggregation?

data reduction
scale of intended use (backbone-wide)
disk and bandwidth requirements for raw flow data in a backbone network.  We only transfer tabular data back to the central collector.

Slide 13: cfdcollect

cfdcollect

collects cflowd data at regular intervals
produces time-series data for each of the tabular data types (AS matrix, net matrix, port matrix, protocol table, interface matrix, nexthop table)
stores data in ARTS files (1 file per router per day)

Slide 14: centralized collection

centralized collection

Slide 15: arts++

arts++

C++ class library for subset of ARTS data
supports reading/writing of ARTS data via iostreams and UNIX file descriptors
supports simple time-domain aggregation for several data types
simple command-line utilities included for viewing ARTS data files and time domain aggregation

Slide 16: ARTS data files

ARTS data files

efficient data archival (binary, simple size-reducing techniques)
data files are portable; arts++ class library is the interface
extensible for additional data types
versioning of data objects for different storage formats (typically used for space/CPU tradeoff)

Slide 17: ARTS data handled by arts++

ARTS data handled by arts++

AS matrix (version 0)
net matrix (version 2)
port matrix (version 0)
selected port table (version 0)
port matrix (version 2)
selected port table (version 0)
interface matrix (version 0)
IP nexthop table (version 0)
protocol table (version 2)
forward IP path (version 0)

Slide 18: AS matrix (version 0)

AS matrix (version 0)

counters for traffic (packets and bytes) from source ASes to destination ASes
sparse matrix, having only entries for which traffic information is stored

Slide 19: AS matrix data

AS matrix data

Slide 20: ARTS net matrix (version 2)

ARTS net matrix (version 2)

counters for traffic (packets and bytes) from source networks to destination networks
networks are identified by network number and netmask length
sparse matrix, having only entries for which traffic information is stored

Slide 21: net matrix data

net matrix data

Slide 22: ARTS port matrix (version 2)

ARTS port matrix (version 2)

counters for (packets and bytes) from source transport layer port number to destination port number
matrix is sparse; there are no entries for ports on which no traffic was seen

Slide 23: port matrix data

port matrix data

Slide 24: selected port table data

selected port table data

Slide 25: protocol table (version 2)

protocol table (version 2)

counters (packets and bytes) versus IP protocol (TCP, UDP, ICMP, IGMP, et. al.)
sparse table, there are no entries for protocols that were not seen in the measured traffic

Slide 26: protocol table data

protocol table data

Slide 27: interface matrix

interface matrix

counters (packets and bytes) for traffic from input interfaces to output interfaces

Slide 28: interface matrix data

interface matrix data

Slide 29: nexthop table

nexthop table

counter (packets and bytes) for traffic from input interfaces to each IP nexthop

Slide 30: IP nexthop table data

IP nexthop table data

Slide 31: IP forward path (version 0)

IP forward path (version 0)

contains IP addresses of hops in forward path from a source to a destination
contains an RTT value for the source to destination
may be extended in the future to hold more information

Slide 32: forward IP path data

forward IP path data

Slide 33: Time Domain Aggregation

Time Domain Aggregation

Time domain aggregation reduces time granularity in time-series data.

Examples:

convert 5-minute data to 1-hour data for a summary bar chart
convert 1-hour data to one large aggregate for a pie chart

Slide 34: Aggregation Utilities

Aggregation Utilities

artsasagg - for AS matrix
artsnetagg - for net matrix
artsportmagg - for port matrix
artsprotoagg - for protocol table
artsintfmagg - for interface matrix
artsnexthopagg - for nexthop table

Slide 35: Simple display utilities

Simple display utilities

artsdump
artsases
artsnets
artsportms
artsports
artsprotos
artsintfms
artsnexthops

Slide 36: Supported platforms

Supported platforms

FreeBSD 2.2.x Intel
FreeBSD 3.0 Intel
Linux 2.0.35 Intel
Sparc/Solaris 2.5.1
Sparc/Solaris 2.6

Other platforms (field reports)
BSDI BSD/OS 3.1
BSDI BSD/OS 4.0
Digital UNIX 4.0B

Slide 37: Future

Future

support for version 8 flow-export
plotting utilities using XRT/PDS
Web reporting tools (java-based)

Related Objects

See https://catalog.caida.org/media/1999_isma9901_cflowd/ to explore related objects to this document in the CAIDA Resource Catalog.