분산 방화벽은 흐름의 상태 저장 추적을 구현하며, 추적된 흐름은 일련의 상태 변경을 겪습니다. IPFIX 프로토콜을 사용하여 흐름의 상태에 관한 데이터를 내보낼 수 있습니다. 추적된 이벤트에는 흐름 생성, 흐름 거부, 흐름 업데이트 및 흐름 해체가 포함됩니다.
IPFIX가 템플릿을 기반으로 하기 때문에, 수집기가 들어오는 흐름 레코드를 분석하는 방법을 알 수 있도록 내보내기는 흐름을 내보내기 전에 데이터 형식을 선언해야 합니다. 이 형식은 레코드에서 각 필드의 의미와 길이를 차례대로 정의하는 <type,length> 집합에 해당하는 템플릿에서 선언됩니다.
다음 표에서는 분산 방화벽 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 | 사용 가능한 값:
|
direction | unsigned8 | 1 | 관찰 지점의 필터에 적용되는 유효한 값은 다음과 같습니다.
|
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입니다. 사용 가능한 값:
|
flowDirection | unsigned8 | 1 | 흐름 방향 - 엔터프라이즈 특정 IE입니다. 사용 가능한 값:
|
algControlFlowId | Unsigned64 | 8 |
ALG 흐름 제어 ID - 엔터프라이즈 특정 IE입니다. 사용 가능한 값:
|
algType | unsigned8 | 1 |
ALG 흐름 제어 ID - 엔터프라이즈 특정 IE입니다. 사용 가능한 값:
|
algFlowType | unsigned8 | 1 |
ALG 흐름 제어 ID - 엔터프라이즈 특정 IE입니다. 사용 가능한 값:
|
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 */