Verteilte Firewall implementiert die zustandsabhängige Verfolgung von Datenflüssen, und die nachverfolgten Datenflüsse durchlaufen eine Reihe von Zustandsänderungen. Sie können das IPFIX-Protokoll verwenden, um Daten über den Status eines Flows zu exportieren. Die nachverfolgten Ereignisse umfassen Flow-Erstellung, Flow-Verweigerung, Flow-Aktualisierung und Flow-Teardown.

Da IPFIX vorlagenbasiert ist, müssen Exporteure das Datenformat vor dem Exportieren von Flows deklarieren, damit der Collector weiß, wie eingehende Flow-Datensätze analysiert werden können. Das Format wird in Vorlagen deklariert. Dabei handelt es sich um Sets mit den Werten <type,length>, die jeweils die Bedeutung und Länge der einzelnen Felder im Datensatz definieren.

Die folgende Tabelle beschreibt die Informationselemente, die in den IPFIX-Vorlagen der verteilten Firewall verwendet werden.

Tabelle 1. IPFIX-Datenelemente
Name Datentyp Größe (Oktett) Beschreibung
sourceMacAddress macAddress 6 Das Feld für die IEEE 802-MAC-Quelladresse.
destinationMacAddress macAddress 6 Das Feld für die IEEE 802-MAC-Zieladresse.
ethernetType unsigned16 2 Das Feld für den Ethernettyp eines Ethernet-Frames, das das in die Nutzlast übertragene MAC-Clientprotokoll identifiziert.
sourceIPv4Address ipv4Address 4 Die IPv4-Quelladresse in der IP-Paketkopfzeile.
destinationIPv4Address ipv4Address 4 Die IPv4-Zieladresse in der IP-Paketkopfzeile.
sourceIPv6Address ipv6Address 16 Die IPv6-Quelladresse in der IP-Paketkopfzeile.
destinationIPv6Address ipv6Address 16 Die IPv6-Zieladresse in der IP-Paketkopfzeile.
sourceTransportPort unsigned16 2 Der Quellportbezeichner in der Transportkopfzeile.
destinationTransportPort unsigned16 2 Der Zielportbezeichner in der Transportkopfzeile.
octetDeltaCount unsigned64 8 Die Anzahl der Oktette seit dem letzten Bericht (sofern vorhanden) in eingehenden Paketen für den Flow am Beobachtungspunkt. Die Anzahl der Oktette enthält IP-Kopfzeilen und die IP-Nutzlast.
packetDeltaCount unsigned64 8 Die Anzahl der eingehenden Pakete seit dem letzten Bericht (sofern vorhanden) für den Flow am Beobachtungspunkt.
flowId unsigned64 8 Ein Flowbezeichner, der innerhalb einer Beobachtungsdomäne eindeutig ist. Dieses Informationselement kann für die Unterscheidung zwischen unterschiedlichen Flows verwendet werden, z. B. zwischen IP-Adressen und Portnummern, die nicht gemeldet werden oder die in separaten Datensätzen gemeldet werden.
flowStartSeconds dateTimeSeconds 4 Der absolute Zeitstempel des ersten Pakets des Flows.
flowEndSeconds dateTimeSeconds 4 Der absolute Zeitstempel des letzten Pakets des Flows.
protocolIdentifier unsigned8 1 Der Wert der Protokollnummer in der IP-Paketkopfzeile.
firewallEvent unsigned8 1 Gültige Werte sind:
  • 1 – Flow erstellt
  • 2 – Flow gelöscht
  • 3 – Flow abgelehnt
  • 4 – Flow-Warnung (nicht in dieser Implementierung verwendet)
  • 5 – Flow aktualisiert
direction unsigned8 1 Gültige Werte, wie sie auf den Filter am Beobachtungspunkt angewendet werden:
  • 0x00 – Flow des eingehenden Datenverkehrs der VM
  • 0x01 – Flow des ausgehenden Datenverkehrs der VM
icmpTypeIPv4 unsigned8 1 Typ der IPv4-ICMP-Nachricht.
icmpCodeIPv4 unsigned8 1 Code der IPv4-ICMP-Nachricht.
icmpTypeIPv6 unsigned8 1 Typ der IPv6-ICMP-Nachricht.
icmpCodeIPv6 unsigned8 1 Code der IPv6-ICMP-Nachricht.
ruleId unsigned32 4 Firewallregel-ID – Enterprise-spezifischer IE.
vmUuid string 16

VM-UUID – Enterprise-spezifischer IE.

Identifiziert die VM eindeutig (Oktett-Array von 16).

vnicIndex unsigned32 4

VNIC-Index – Enterprise-spezifischer IE.

Index der VNIC für die angegebene VM.

sessionFlags unsigned8 1

Sitzungsflags – Enterprise-spezifischer IE. Gültige Werte sind:

  • 0 – unbekannt
  • 0x1 – hergestellt
flowDirection unsigned8 1

Flowrichtung – Enterprise-spezifischer IE. Gültige Werte sind:

  • 0 – unbekannt
  • 1 – weiterleiten
  • 2 – umkehren
algControlFlowId unsigned64 8
ALG-Kontrollflow-ID – Enterprise-spezifischer IE. Gültige Werte sind:
  • 0
  • flowId des ALG-Kontrollflows
algType unsigned8 1
ALG-Kontrollflow-ID – Enterprise-spezifischer IE. Gültige Werte sind:
  • 0 – keine
  • 1 – FTP
  • 2 – oracle
  • 3 – SUNRPC
  • 4 – DCERPC
  • 5 – TFTP
algFlowType unsigned8 1
ALG-Kontrollflow-ID – Enterprise-spezifischer IE. Gültige Werte sind:
  • 0 – keine
  • 1 – Kontrollflow
  • 2 – Datenfluss
averageLatency unsigned32 4

Durchschnittliche TCP-Latenz – Enterprise-spezifischer IE.

Einheit lautet Mikrosekunden.

vifUuid octetArray 16

VIF-UUID – Enterprise-spezifischer IE.

Identifiziert die VIF eindeutig (Oktett-Array von 16).

Die folgenden IPFIX-Vorlagen für eine verteilte Firewall werden nur für UDP-Nutzlasten unterstützt.

UDP-IPV4-Vorlage

Die für diese Vorlage gesendeten Felder lauten wie folgt:
IPFIX_TEMPLATE_FIELD(sourceMacAddress,6)
IPFIX_TEMPLATE_FIELD(destinationMacAddress,6)
IPFIX_TEMPLATE_FIELD(sourceIPv4Address,4)
IPFIX_TEMPLATE_FIELD(destinationIPv4Address,4)
IPFIX_TEMPLATE_FIELD(sourceTransportPort,2)
IPFIX_TEMPLATE_FIELD(destinationTransportPort,2)
IPFIX_TEMPLATE_FIELD(protocolIdentifier,1)
IPFIX_TEMPLATE_FIELD(icmpTypeIPv4,1)
IPFIX_TEMPLATE_FIELD(icmpCodeIPv4,1)
IPFIX_TEMPLATE_FIELD(ethernetType,2)
IPFIX_TEMPLATE_FIELD(flowStartSeconds,4)
IPFIX_TEMPLATE_FIELD(flowEndSeconds,4)
IPFIX_TEMPLATE_FIELD(octetDeltaCount,8)
IPFIX_TEMPLATE_FIELD(packetDeltaCount,8)
IPFIX_TEMPLATE_FIELD(firewallEvent,1)
IPFIX_TEMPLATE_FIELD(direction,1)
IPFIX_TEMPLATE_FIELD(ruleId,4)
IPFIX_TEMPLATE_FIELD(vmUUId,16)
IPFIX_TEMPLATE_FIELD(vnicIndex,4)
IPFIX_TEMPLATE_FIELD(sessionFlags,1)      /* Introduced in 6.4.2 */
IPFIX_TEMPLATE_FIELD(flowDirection,1)     /* Introduced in 6.4.2 */
IPFIX_TEMPLATE_FIELD(flowId,8)            /* Introduced in 6.4.4 */
IPFIX_TEMPLATE_FIELD(algControlFlowId,8)  /* Introduced in 6.4.4 */
IPFIX_TEMPLATE_FIELD(algType,1)           /* Introduced in 6.4.4 */
IPFIX_TEMPLATE_FIELD(algFlowType,1)       /* Introduced in 6.4.4 */
IPFIX_TEMPLATE_FIELD(averageLatency,4)    /* Introduced in 6.4.4 */

UDP-IPV6-Vorlage

Die für diese Vorlage gesendeten Felder lauten wie folgt:
IPFIX_TEMPLATE_FIELD(sourceMacAddress,6)
IPFIX_TEMPLATE_FIELD(destinationMacAddress,6)
IPFIX_TEMPLATE_FIELD(sourceIPv6Address,16)
IPFIX_TEMPLATE_FIELD(destinationIPv6Address,16)
IPFIX_TEMPLATE_FIELD(sourceTransportPort,2)
IPFIX_TEMPLATE_FIELD(destinationTransportPort,2)
IPFIX_TEMPLATE_FIELD(protocolIdentifier,1)
IPFIX_TEMPLATE_FIELD(icmpTypeIPv6,1)
IPFIX_TEMPLATE_FIELD(icmpCodeIPv6,1)
IPFIX_TEMPLATE_FIELD(ethernetType,2)
IPFIX_TEMPLATE_FIELD(flowStartSeconds,4)
IPFIX_TEMPLATE_FIELD(flowEndSeconds,4)
IPFIX_TEMPLATE_FIELD(octetDeltaCount,8)
IPFIX_TEMPLATE_FIELD(packetDeltaCount,8)
IPFIX_TEMPLATE_FIELD(firewallEvent,1)
IPFIX_TEMPLATE_FIELD(direction,1)
IPFIX_TEMPLATE_FIELD(ruleId,4)
IPFIX_TEMPLATE_FIELD(vmUUId,16)
IPFIX_TEMPLATE_FIELD(vnicIndex,4)
IPFIX_TEMPLATE_FIELD(sessionFlags,1)      /* Introduced in 6.4.2 */
IPFIX_TEMPLATE_FIELD(flowDirection,1)     /* Introduced in 6.4.2 */
IPFIX_TEMPLATE_FIELD(flowId,8)            /* Introduced in 6.4.4 */
IPFIX_TEMPLATE_FIELD(algControlFlowId,8)  /* Introduced in 6.4.4 */
IPFIX_TEMPLATE_FIELD(algType,1)           /* Introduced in 6.4.4 */
IPFIX_TEMPLATE_FIELD(algFlowType,1)       /* Introduced in 6.4.4 */
IPFIX_TEMPLATE_FIELD(averageLatency,4)    /* Introduced in 6.4.4 */