matchnet
입력 레코드의 IP 주소 필드 값이 지정한 네트워크 대역 그룹에 포함되는지 확인하고, 일치하는 레코드를 필터링합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
옵션
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 맵의 키:
| 키 | 타입 | 설명 |
|---|---|---|
| id | 32비트 정수 | 네트워크 대역 항목 ID |
| start_ip | 문자열 | 네트워크 대역 시작 IP 주소 |
| end_ip | 문자열 | 네트워크 대역 종료 IP 주소 |
| cidr | 32비트 정수 | CIDR 프리픽스 길이 |
| description | 문자열 | 네트워크 대역 설명 (설정된 경우만) |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 300025 | matchnet 명령어에 guid 옵션을 지정하세요. | 5.0 계열(5.0.2605.2까지)에서 guid 옵션을 지정하지 않은 경우. 4.0 계열은 4.0.2609.0부터 300040으로 대체되었습니다 |
| 300026 | matchnet 명령어에 field 옵션을 지정하세요. | field와 fields 옵션을 모두 지정하지 않은 경우 |
| 300027 | matchnet 명령어의 guid 옵션은 GUID 형식이어야 합니다. | guid 옵션 값이 유효한 GUID 형식이 아닌 경우 |
| 300028 | guid에 해당하는 네트워크 대역 그룹이 없습니다. | guid에 해당하는 네트워크 대역 그룹이 존재하지 않는 경우 (verify=t인 경우에만 검증) |
| 300029 | 네트워크 대역 그룹을 읽어올 수 없습니다. | 네트워크 대역 그룹 데이터를 로드하는 중 오류가 발생한 경우 |
| 300040 | matchnet 명령어에 guid 또는 name 옵션을 지정하세요. | guid와 name 옵션을 모두 지정하지 않은 경우 |
| 300041 | name에 해당하는 네트워크 대역 그룹이 없습니다. | name 옵션에 지정한 이름의 네트워크 대역 그룹이 존재하지 않는 경우 |
| 300042 | 동일한 이름의 네트워크 대역 그룹이 여러 개 존재합니다. | name 옵션에 지정한 이름의 네트워크 대역 그룹이 여러 개 존재하는 경우 |
| 300046 | matchnet 명령어에는 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 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
네트워크 대역에 포함되는 레코드 필터링
table limit=1000 WEB_APACHE_SAMPLE | matchnet guid=550e8400-e29b-41d4-a716-446655440000 field=src_ip웹 서버 접근 로그의 출발지 IP 주소가 지정한 네트워크 대역 그룹에 포함되는 레코드만 출력합니다.
-
네트워크 대역에 포함되지 않는 레코드 필터링
table limit=1000 WEB_APACHE_SAMPLE | matchnet guid=550e8400-e29b-41d4-a716-446655440000 field=src_ip invert=t출발지 IP 주소가 네트워크 대역 그룹에 포함되지 않는 레코드만 출력합니다.
-
일치한 네트워크 대역 정보 포함
table limit=1000 WEB_APACHE_SAMPLE | matchnet guid=550e8400-e29b-41d4-a716-446655440000 field=src_ip tag=t일치하는 레코드에
_matchnet_result필드를 추가하여 네트워크 대역의 시작 IP, 종료 IP, CIDR, 설명 정보를 맵으로 출력합니다. -
네트워크 대역 그룹 검증 생략
table limit=1000 WEB_APACHE_SAMPLE | matchnet guid=550e8400-e29b-41d4-a716-446655440000 field=src_ip verify=f네트워크 대역 그룹의 존재 여부를 파싱 시점에 검증하지 않고 실행합니다. 실시간 스트림 쿼리에서 네트워크 대역 그룹이 나중에 동기화되는 경우에 사용합니다.
-
이름으로 네트워크 대역 그룹 지정
table limit=1000 WEB_APACHE_SAMPLE | matchnet name=internal_subnets field=src_ipGUID 대신 이름으로 네트워크 대역 그룹을 지정하여 대조합니다.
변경 이력
| 대상 | 도입 릴리스 |
|---|---|
matchnet 명령어 | 소나 4.0 이전 버전 |
name 옵션 | 4.0.2609.0 |