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.
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:
|
direction | unsigned8 | 1 | Gültige Werte, wie sie auf den Filter am Beobachtungspunkt angewendet werden:
|
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:
|
flowDirection | unsigned8 | 1 | Flowrichtung – Enterprise-spezifischer IE. Gültige Werte sind:
|
algControlFlowId | unsigned64 | 8 |
ALG-Kontrollflow-ID – Enterprise-spezifischer IE. Gültige Werte sind:
|
algType | unsigned8 | 1 |
ALG-Kontrollflow-ID – Enterprise-spezifischer IE. Gültige Werte sind:
|
algFlowType | unsigned8 | 1 |
ALG-Kontrollflow-ID – Enterprise-spezifischer IE. Gültige Werte sind:
|
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
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
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 */