Distributed Firewall implementa un seguimiento de los flujos mediante su estado, es decir, que los flujos pasan por una serie de cambios de estado. Puede usar el protocolo IPFIX para exportar datos sobre el estado de un flujo. Se indican los siguientes eventos de flujos: creación, denegación, actualización y anulación.

Como IPFIX se basa en una plantilla, los exportadores deben definir el formato de los datos antes de exportar cualquier flujo, de forma que el recopilador sepa cómo analizar el flujo entrante. Se define el formato en las plantillas, que son conjuntos de <tipo,longitud> que definen el significado y la longitud de cada campo del registro, uno tras otro.

En la siguiente tabla se describen los elementos de información que se utilizan en las plantillas IPFIX del firewall distribuido.

Tabla 1. Elementos de la información de IPFIX
Nombre Tipo de datos Tamaño (octetos) Descripción
sourceMacAddress macAddress 6 El campo de dirección MAC del origen de IEEE 802.
destinationMacAddress macAddress 6 El campo de la dirección MAC del destino de IEEE 802.
ethernetType unsigned16 2 El campo de tipo de Ethernet de un marco de Ethernet que identifica el protocolo del cliente MAC utilizado en la carga útil.
sourceIPv4Address ipv4Address 4 La dirección IPv4 de origen en el encabezado del paquete IP.
destinationIPv4Address ipv4Address 4 La dirección IPv4 de destino en el encabezado del paquete IP.
sourceIPv6Address ipv6Address 16 La dirección IPv6 de origen en el encabezado del paquete IP.
destinationIPv6Address ipv6Address 16 La dirección IPv6 de destino en el encabezado del paquete IP.
sourceTransportPort unsigned16 2 El identificador de puerto de origen en el encabezado de transporte.
destinationTransportPort unsigned16 2 El identificador de puerto de destino en el encabezado de transporte.
octetDeltaCount unsigned64 8 El número de octetos desde el informe anterior (si hay alguno) en los paquetes entrantes del flujo en el punto de observación. El número de octetos incluye los encabezados IP y la carga útil IP.
packetDeltaCount unsigned64 8 El número de paquetes entrantes desde el informe anterior (si hay alguno) del flujo en el punto de observación.
flowId unsigned64 8 Un identificador de flujo único dentro de un dominio de observación. Este elemento de información ayuda a distinguir entre diferentes flujos cuando no se especifican las claves de flujo, como las direcciones IP y los números de puerto, o se incluyen en registros separados.
flowStartSeconds dateTimeSeconds 4 La marca de tiempo absoluta del primer paquete del flujo.
flowEndSeconds dateTimeSeconds 4 La marca de tiempo absoluta del último paquete del flujo.
protocolIdentifier unsigned8 1 El valor del número de protocolo en el encabezado del paquete IP.
firewallEvent unsigned8 1 Estos son los valores válidos:
  • 1: flujo creado
  • 2: flujo eliminado
  • 3: flujo denegado
  • 4: alerta de flujo (no utilizado en esta implementación)
  • 5: actualización del flujo
direction unsigned8 1 Estos son los valores válidos según se aplican al filtro en el punto de observación:
  • 0x00: flujo de entrada a la máquina virtual
  • 0x01: flujo de salida de la máquina virtual
icmpTypeIPv4 unsigned8 1 Tipo de mensaje IPv4 ICMP.
icmpCodeIPv4 unsigned8 1 Código de mensaje IPv4 ICMP.
icmpTypeIPv6 unsigned8 1 Tipo de mensaje de IPv6 ICMP.
icmpCodeIPv6 unsigned8 1 Código del mensaje IPv6 ICMP.
ruleId unsigned32 4 ID de regla de firewall: EI específico de la empresa.
vmUuid string 16

UUID de máquina virtual: EI específico de la empresa.

Solo identifica la máquina virtual (matriz de octetos de 16).

vnicIndex unsigned32 4

Índice de VNIC: EI específico de la empresa

Índice de la VNIC de la máquina virtual especificada.

sessionFlags unsigned8 1

Marcas de sesión: EI específico de la empresa. Estos son los valores válidos:

  • 0: desconocido
  • 0x1: establecido
flowDirection unsigned8 1

Dirección de flujo: EI específico de la empresa. Estos son los valores válidos:

  • 0: desconocido
  • 1: directo
  • 2: inverso
algControlFlowId unsigned64 8
ID de flujo de control ALG: EI específico de la empresa. Estos son los valores válidos:
  • 0
  • flowId del flujo de control ALG
algType unsigned8 1
ID de flujo de control ALG: EI específico de la empresa. Estos son los valores válidos:
  • 0: ninguno
  • 1: FTP
  • 2: Oracle
  • 3: SUNRPC
  • 4: DCERPC
  • 5: TFTP
algFlowType unsigned8 1
ID de flujo de control ALG: EI específico de la empresa. Estos son los valores válidos:
  • 0: ninguno
  • 1: flujo de control
  • 2: flujo de datos
averageLatency unsigned32 4

Latencia promedio de TCP: EI específico de la empresa

La unidad aparece en microsegundos.

vifUuid octetArray 16

UUID de VIF: EI específico de la empresa.

Solo identifica el VIF (matriz de octetos de 16).

Las siguientes plantillas de IPFIX para el firewall distribuido solo se admiten para cargas útiles de UDP.

Plantilla de IPv4 de UDP

Los campos que se envían a esta plantilla son los siguientes:
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 */

Plantilla de IPv6 de UDP

Los campos que se envían a esta plantilla son los siguientes:
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 */