Internet Protocol Flow Information Export

Weiterentwicklung des Netflow-Protokolls
IPFIX im TCP/IP‑Protokollstapel:
Anwendung IPFIX
Transport UDP TCP SCTP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI

Das Internet Protocol Flow Information Export (IPFIX) ist eine Weiterentwicklung des Netflow-Protokolls der Firma Cisco Systems. Es wird von der IETF entwickelt, um den Austausch von Netzüberwachungs-Informationen zu standardisieren.

Als ein Flow werden dabei Pakete eines Datenstroms bezeichnet, die gemeinsame Eigenschaften wie etwa „gleiche Quelle, gleiches Ziel und gleiches Protokoll“ aufweisen. Mittels IPFIX kann nun beispielsweise ein Router Informationen über seine Sicht der aktuellen Netzauslastung an eine zentrale Monitoringstation schicken, die auf diese Informationen geeignet reagieren kann.

IPFIX ist ein reines Push-Protokoll, das heißt die sendende Station schickt von sich aus in regelmäßigen Abständen IPFIX Datenpakete.

Die Zusammensetzung von IPFIX Datenpaketen ist dem Sender weitgehend freigestellt, da er in IPFIX vor dem Versand von Flow-Information den Aufbau der Pakete mittels sogenannter Templates bekannt macht. Auch die in Datenpaketen verwendeten Datentypen sind frei erweiterbar.

IPFIX bevorzugt als Transportprotokoll SCTP, die alternative Nutzung von TCP oder UDP ist aber auch vorgesehen.

Architektur

Bearbeiten

Die Architektur eines IPFIX Informationsflusses sieht typischerweise so aus:

       Metering,
       Exporter      IPFIX         Collector
          O--------------------------->O
          |
          | Observation Point
          v
 ---- IP Traffic --->

Ein Metering Process sammelt am Observation Point Datenpakete, filtert sie gegebenenfalls vor und aggregiert Informationen über diese Pakete. Diese Informationen werden dann vom Exporter an den Collector verschickt. Dabei besteht eine Many-to-Many Beziehung zwischen Exporter und Collector, das heißt ein Exporter kann sowohl mehrere Collectors beliefern als auch ein Collector Informationen von mehreren Exportern beziehen.

Beispiel

Bearbeiten

Ein einfacher, mittels IPFIX versendeter Datensatz könnte zum Beispiel so aussehen:

Quelle Ziel Pakete
192.168.0.201 192.168.0.1 235
192.168.0.202 192.168.0.1 42

Die dabei verwendete IPFIX Nachricht könnte beispielsweise wie folgt aufgebaut sein:

Bits 0..15 Bits 16..31
Version = 0x000a Nachrichtenlänge = 72 Byte
Exportzeitpunkt = 2005-12-31 23:59:60
laufende Nummer = 0
Quellsystem-ID = 12345678
Set ID = 2 (Template) Setlänge = 20 Byte
Template ID = 256 Anzahl Felder = 3
Typ = sourceIPv4Address Feldlänge = 4 Byte
Typ = destinationIPv4Address Feldlänge = 4 Byte
Typ = packetDeltaCount Feldlänge = 8 Byte
Set ID = 256 (Data Set
nach Template 256)
Setlänge = 28 Byte
Satz 1, Feld 1 = 192.168.0.201
Satz 1, Feld 2 = 192.168.0.1
Satz 1, Feld 3 = 235 Pakete
Satz 2, Feld 1 = 192.168.0.202
Satz 2, Feld 2 = 192.168.0.1
Satz 2, Feld 3 = 42 Pakete

Sie enthält nach dem obligatorischen Header zwei IPFIX Sets: Ein Template Set, das den Aufbau des verwendeten Data Sets bekannt macht und ein Data Set, das die eigentlichen Nutzdaten überträgt. Das Template Set wird dabei im Empfänger gepuffert und muss so zukünftig nicht mehr mitübertragen werden.

Bearbeiten
  • Ipfix Status Pages. tools.ietf.org
  • RFC 5101 – Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of IP Traffic Flow Information. Januar 2008 (englisch).