matchnet

입력 레코드의 IP 주소 필드 값이 지정한 네트워크 대역 그룹에 포함되는지 확인하고, 일치하는 레코드를 필터링합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행수집 노드에서 실행 (mapper)

문법

matchnet [guid=STR] [name=STR] [field=FIELD] [fields=FIELD, ...] [invert=BOOL] [verify=BOOL] [tag=BOOL]

옵션

guid=STR
대조할 네트워크 대역 그룹의 GUID (name과 함께 사용할 수 없음). guid 또는 name 옵션 중 하나를 반드시 지정해야 합니다.
name=STR
대조할 네트워크 대역 그룹의 이름 (guid와 함께 사용할 수 없음). guid 또는 name 옵션 중 하나를 반드시 지정해야 합니다.
field=FIELD
대조할 IP 주소 필드 이름. field 또는 fields 옵션 중 하나를 반드시 지정해야 합니다.
fields=FIELD, ...
대조할 IP 주소 필드 이름 목록. 쉼표(,)로 구분하여 여러 필드를 지정할 수 있습니다. field와 함께 지정하면 두 옵션에서 지정한 필드를 모두 사용합니다. field 또는 fields 옵션 중 하나를 반드시 지정해야 합니다.
invert=BOOL
대조 결과의 반전 여부 (기본값: f)
  • t: 네트워크 대역에 포함되지 않는 레코드를 출력
  • f: 네트워크 대역에 포함되는 레코드를 출력
verify=BOOL
네트워크 대역 그룹 존재 여부 검증 (기본값: t)
  • t: 파싱 시점에 네트워크 대역 그룹이 존재하는지 검증
  • f: 네트워크 대역 그룹 검증을 생략
tag=BOOL
일치한 네트워크 대역 정보의 출력 여부 (기본값: f)
  • t: 일치한 네트워크 대역 정보를 _matchnet_result 필드에 맵으로 할당
  • f: 네트워크 대역 정보를 출력하지 않음

입력 필드

필드타입필수 여부설명
field·fields로 지정한 필드문자열, IP 주소, 또는 32비트 정수필수대조 대상 IPv4 주소. 여러 필드를 지정한 경우 지정한 순서대로 검사합니다. invert=f(기본값)인 경우 일치하는 필드를 찾으면 나머지 필드는 검사하지 않고 즉시 출력합니다. invert=t인 경우에는 반대로 일치하지 않는 필드를 처음 만난 시점에 나머지 필드를 검사하지 않고 즉시 출력합니다(모든 필드가 일치해야 제외됨). 값이 null이거나 지원하지 않는 타입이면 해당 필드를 건너뛰고 다음 필드를 검사합니다. IPv6 주소 문자열은 일치하지 않는 것으로 판정합니다.

출력 필드

tag=t 옵션을 지정하면 출력되는 레코드에 subnet_field, subnet_value, subnet_invert를 추가하고, 네트워크 대역에 일치한 경우에만 _matchnet_result를 추가합니다.

필드타입설명
_matchnet_result맵일치한 네트워크 대역 정보. id, start_ip, end_ip, cidr, description 키를 포함합니다.
subnet_field문자열대조가 확정된 필드 이름 (field·fields로 지정한 필드 중 하나)
subnet_value문자열, IP 주소, 또는 32비트 정수대조가 확정된 필드의 원본 값 (입력 필드의 타입을 그대로 유지)
subnet_invert불리언invert 옵션 값

_matchnet_result 맵의 키:

키타입설명
id32비트 정수네트워크 대역 항목 ID
start_ip문자열네트워크 대역 시작 IP 주소
end_ip문자열네트워크 대역 종료 IP 주소
cidr32비트 정수CIDR 프리픽스 길이
description문자열네트워크 대역 설명 (설정된 경우만)

오류 코드

파싱 오류
오류 코드메시지설명
300025matchnet 명령어에 guid 옵션을 지정하세요.5.0 계열(5.0.2605.2까지)에서 guid 옵션을 지정하지 않은 경우. 4.0 계열은 4.0.2609.0부터 300040으로 대체되었습니다
300026matchnet 명령어에 field 옵션을 지정하세요.field와 fields 옵션을 모두 지정하지 않은 경우
300027matchnet 명령어의 guid 옵션은 GUID 형식이어야 합니다.guid 옵션 값이 유효한 GUID 형식이 아닌 경우
300028guid에 해당하는 네트워크 대역 그룹이 없습니다.guid에 해당하는 네트워크 대역 그룹이 존재하지 않는 경우 (verify=t인 경우에만 검증)
300029네트워크 대역 그룹을 읽어올 수 없습니다.네트워크 대역 그룹 데이터를 로드하는 중 오류가 발생한 경우
300040matchnet 명령어에 guid 또는 name 옵션을 지정하세요.guid와 name 옵션을 모두 지정하지 않은 경우
300041name에 해당하는 네트워크 대역 그룹이 없습니다.name 옵션에 지정한 이름의 네트워크 대역 그룹이 존재하지 않는 경우
300042동일한 이름의 네트워크 대역 그룹이 여러 개 존재합니다.name 옵션에 지정한 이름의 네트워크 대역 그룹이 여러 개 존재하는 경우
300046matchnet 명령어에는 guid 또는 name 옵션 중 하나만 지정하세요.guid와 name 옵션을 동시에 지정한 경우
런타임 오류

해당 사항 없음

설명

matchnet 명령어는 입력 레코드에서 field·fields 옵션으로 지정한 필드의 IP 주소 값이 네트워크 대역 그룹에 정의된 서브넷에 포함되는지 확인합니다. IPv4 주소만 지원하며, 필드 값이 null이거나 IPv6 주소이거나 지원하지 않는 타입이면 일치하지 않는 것으로 처리합니다.

guid 또는 name 옵션으로 대조할 네트워크 대역 그룹을 지정합니다. name 옵션을 지정하면 해당 이름의 네트워크 대역 그룹을 조회하여 GUID를 확인합니다. 두 옵션을 동시에 지정하거나 모두 생략하면 오류가 발생하며, name으로 지정한 이름이 존재하지 않거나 여러 그룹에서 중복되는 경우에도 오류가 발생합니다.

tag=t 옵션을 지정하면 일치한 네트워크 대역의 상세 정보(시작 IP, 종료 IP, CIDR, 설명)를 _matchnet_result 필드에 맵으로 할당합니다.

invert=t 옵션을 지정하면 네트워크 대역에 포함되지 않는 레코드만 출력합니다. 여러 필드를 지정한 경우 invert=f(기본값)는 일치하는 필드를 처음 만난 시점에 출력을 확정하지만, invert=t는 반대로 일치하지 않는 필드를 처음 만난 시점에 출력을 확정합니다 — 즉 모든 필드가 네트워크 대역에 포함되어야 그 레코드가 결과에서 제외됩니다.

verify=f 옵션을 지정하면 파싱 시점에 네트워크 대역 그룹의 존재 여부를 검증하지 않습니다. 실시간 스트림 쿼리에서 네트워크 대역 그룹이 나중에 동기화되는 경우에 사용합니다.

네트워크 대역 그룹이 실행 중에 업데이트되면 자동으로 새로운 대역 정보를 반영합니다. 분산 환경에서는 수집 노드에서 실행됩니다.

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 네트워크 대역에 포함되는 레코드 필터링

    table limit=1000 WEB_APACHE_SAMPLE
    | matchnet guid=550e8400-e29b-41d4-a716-446655440000 field=src_ip
    

    웹 서버 접근 로그의 출발지 IP 주소가 지정한 네트워크 대역 그룹에 포함되는 레코드만 출력합니다.

  2. 네트워크 대역에 포함되지 않는 레코드 필터링

    table limit=1000 WEB_APACHE_SAMPLE
    | matchnet guid=550e8400-e29b-41d4-a716-446655440000 field=src_ip invert=t
    

    출발지 IP 주소가 네트워크 대역 그룹에 포함되지 않는 레코드만 출력합니다.

  3. 일치한 네트워크 대역 정보 포함

    table limit=1000 WEB_APACHE_SAMPLE
    | matchnet guid=550e8400-e29b-41d4-a716-446655440000 field=src_ip tag=t
    

    일치하는 레코드에 _matchnet_result 필드를 추가하여 네트워크 대역의 시작 IP, 종료 IP, CIDR, 설명 정보를 맵으로 출력합니다.

  4. 네트워크 대역 그룹 검증 생략

    table limit=1000 WEB_APACHE_SAMPLE
    | matchnet guid=550e8400-e29b-41d4-a716-446655440000 field=src_ip verify=f
    

    네트워크 대역 그룹의 존재 여부를 파싱 시점에 검증하지 않고 실행합니다. 실시간 스트림 쿼리에서 네트워크 대역 그룹이 나중에 동기화되는 경우에 사용합니다.

  5. 이름으로 네트워크 대역 그룹 지정

    table limit=1000 WEB_APACHE_SAMPLE
    | matchnet name=internal_subnets field=src_ip
    

    GUID 대신 이름으로 네트워크 대역 그룹을 지정하여 대조합니다.

변경 이력

대상도입 릴리스
matchnet 명령어소나 4.0 이전 버전
name 옵션4.0.2609.0