분산 방화벽은 흐름의 상태 저장 추적을 구현하며, 추적된 흐름은 일련의 상태 변경을 겪습니다. IPFIX 프로토콜을 사용하여 흐름의 상태에 관한 데이터를 내보낼 수 있습니다. 추적된 이벤트에는 흐름 생성, 흐름 거부, 흐름 업데이트 및 흐름 해체가 포함됩니다.

IPFIX가 템플릿을 기반으로 하기 때문에, 수집기가 들어오는 흐름 레코드를 분석하는 방법을 알 수 있도록 내보내기는 흐름을 내보내기 전에 데이터 형식을 선언해야 합니다. 이 형식은 레코드에서 각 필드의 의미와 길이를 차례대로 정의하는 <type,length> 집합에 해당하는 템플릿에서 선언됩니다.

다음 표에서는 분산 방화벽 IPFIX 템플릿에서 사용되는 정보 요소에 대해 설명합니다.

표 1. IPFIX 정보 요소
이름 데이터 유형 크기(8진수) 설명
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 관찰 시점의 흐름에 대한 수신 패킷에서 이전 보고서(있는 경우) 이후의 8진수 개수입니다. 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 - VM으로의 수신 흐름
  • 0x01 - VM에서의 송신 흐름
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

VM UUID - 엔터프라이즈 특정 IE입니다.

VM을 고유하게 식별합니다(16의 8진수 어레이).

vnicIndex unsigned32 4

VNIC 인덱스 - 엔터프라이즈 특정 IE입니다.

지정된 VM에 대한 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의 8진수 어레이).

분산 방화벽에 대한 다음 IPFIX 템플릿은 UDP 페이로드에 대해서만 지원됩니다.

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 */