分布式防火墙对流量实施有状态的跟踪,所跟踪的流量会经过一系列状态变化。您可以使用 IPFIX 协议导出有关流量状态的数据。跟踪的事件包括流量创建、流量拒绝、流量更新和流量卸载。

由于 IPFIX 基于模板,导出程序必须在导出任何流程之前声明数据格式,以便收集器知道如何分析入站流量记录。格式是在模板中声明的,这是一组 <type,length>,它们依次定义了记录中的每个字段的含义和长度。

下表介绍了在分布式防火墙的 IPFIX 模板中使用的信息元素。

表 1. IPFIX 信息元素
名称 数据类型 大小(八位字节) 说明
sourceMacAddress macAddress 6 IEEE 802 源 MAC 地址字段。
destinationMacAddress macAddress 6 IEEE 802 目标 MAC 地址字段。
ethernetType unsigned16 2 以太网帧的以太网类型字段,它指定在负载中包含的 MAC 客户端协议。
sourceIPv4Address ipv4Address 4 IP 数据包标头中的 IPv4 源地址。
destinationIPv4Address ipv4Address 4 IP 数据包标头中的 IPv4 目标地址。
sourceIPv6Address ipv6Address 16 IP 数据包标头中的 IPv6 源地址。
destinationIPv6Address ipv6Address 16 IP 数据包标头中的 IPv6 目标地址。
sourceTransportPort unsigned16 2 传输标头中的源端口标识符。
destinationTransportPort unsigned16 2 传输标头中的目标端口标识符。
octetDeltaCount unsigned64 8 在上一报告(如果有)后,观察点的流量的入站数据包中的八位字节数。八位字节数包括 IP 标头和 IP 负载。
packetDeltaCount unsigned64 8 在上一报告(如果有)后,观察点的流量的入站数据包数。
flowId unsigned64 8 流量标识符,它在观察域中是唯一的。如果不报告流量键(如 IP 地址和端口号),或者在单独的记录中报告流量键,该信息元素有助于区分不同的流量。
flowStartSeconds dateTimeSeconds 4 流量的第一个数据包的绝对时间戳。
flowEndSeconds dateTimeSeconds 4 流量的最后一个数据包的绝对时间戳。
protocolIdentifier unsigned8 1 IP 数据包标头中的协议号值。
firewallEvent unsigned8 1 有效值为:
  • 1 - 已创建流量
  • 2 - 已删除流量
  • 3 - 已拒绝流量
  • 4 - 流量警报(在该实现中不使用)
  • 5 - 流量更新
direction unsigned8 1 在观察点应用于筛选器的有效值为:
  • 0x00 - 虚拟机的输入流量
  • 0x01 - 虚拟机的输出流量
icmpTypeIPv4 unsigned8 1 IPv4 ICMP 消息类型。
icmpCodeIPv4 unsigned8 1 IPv4 ICMP 消息代码。
icmpTypeIPv6 unsigned8 1 IPv6 ICMP 消息类型。
icmpCodeIPv6 unsigned8 1 IPv6 ICMP 消息代码。
ruleId unsigned32 4 防火墙规则 ID - 企业特定的 IE。
vmUuid string 16

虚拟机 UUID - 企业特定的 IE。

唯一地标识虚拟机(长度为 16 的八位字节数组)。

vnicIndex unsigned32 4

VNIC 索引 - 企业特定的 IE。

指定虚拟机的 VNIC 的索引。

sessionFlags unsigned8 1

会话标记 - 企业特定的 IE。有效值为:

  • 0 - 未知
  • 0x1 - 已建立
flowDirection unsigned8 1

流量方向 - 企业特定的 IE。有效值为:

  • 0 - 未知
  • 1 - 正向
  • 2 - 反向
algControlFlowId unsigned64 8
ALG 控制流量 ID - 企业特定的 IE。有效值为:
  • 0
  • ALG 控制流量的 flowId
algType unsigned8 1
ALG 控制流量 ID - 企业特定的 IE。有效值为:
  • 0 - 无
  • 1 - FTP
  • 2 - Oracle
  • 3 - SUNRPC
  • 4 - DCERPC
  • 5 - TFTP
algFlowType unsigned8 1
ALG 控制流量 ID - 企业特定的 IE。有效值为:
  • 0 - 无
  • 1 - 控制流量
  • 2 - 数据流量
averageLatency unsigned32 4

平均 TCP 延迟 - 企业特定的 IE。

单位是微秒。

vifUuid octetArray 16

VIF UUID - 企业特定的 IE。

唯一地标识 VIF(长度为 16 的八位字节数组)。

仅 UDP 负载支持分布式防火墙的以下 IPFIX 模板。

UDP IPV4 模板

为该模板发送的字段如下所示:
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 模板

为该模板发送的字段如下所示:
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 */