nslookup

지정한 DNS 서버에 질의하여 도메인 이름을 IP 주소로 변환합니다. A, NS, PTR, MX, CNAME, TXT 유형의 DNS 레코드를 조회할 수 있으며, 응답 결과를 출력 필드로 할당합니다.

명령어 속성

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

문법

nslookup ns=IP [type={A|NS|PTR|MX|CNAME|TXT}] [timeout=INT] [cache=INT] FIELD output OUTFIELD [as ALIAS], ...

옵션

ns=IP
DNS 질의를 전송할 네임서버의 IP 주소
type={A|NS|PTR|MX|CNAME|TXT}
DNS 쿼리 유형 (기본값: A)
  • A: 호스트의 IPv4 주소
  • NS: 권한 있는 네임서버
  • PTR: 역방향 DNS 조회
  • MX: 메일 교환 서버
  • CNAME: 정규 이름(별칭)
  • TXT: 텍스트 레코드
timeout=INT
DNS 응답 대기 시간 (초 단위). 1 이상 60 이하의 정수를 지정할 수 있습니다. (기본값: 5)
cache=INT
DNS 응답 캐시의 최대 크기 (바이트 단위). 1 이상 10485760 이하의 정수를 지정할 수 있습니다. (기본값: 1048576)

대상

FIELD
도메인 이름이 저장된 입력 필드
output OUTFIELD [as ALIAS], ...
출력할 DNS 응답 필드 목록. 쉼표(,)로 구분하여 여러 필드를 지정할 수 있습니다. as 키워드로 출력 필드의 별칭을 지정할 수 있습니다. 사용 가능한 출력 필드는 다음과 같습니다.
  • ip: 첫 번째 A 레코드의 IP 주소
  • status: DNS 응답 상태 코드
  • flags: DNS 응답 플래그 문자열
  • answers: 응답(Answer) 섹션의 리소스 레코드 목록
  • authorities: 권한(Authority) 섹션의 리소스 레코드 목록
  • additionals: 추가(Additional) 섹션의 리소스 레코드 목록

입력 필드

필드타입필수 여부설명
FIELD문자열필수조회할 도메인 이름. 값이 문자열이 아니거나 빈 문자열이면 _error 필드에 INVALID_DOMAIN을 할당합니다.

출력 필드

필드타입설명
ip문자열첫 번째 A 레코드의 IP 주소. A 레코드가 없으면 할당하지 않습니다.
status문자열DNS 응답 상태 코드. NO_ERROR, FORMAT_ERROR, SERVER_FAILURE, NAME_ERROR, NOT_IMPLEMENTED, REFUSED 중 하나입니다.
flags문자열DNS 응답 플래그 문자열 (예: standard query response (RD RA))
answers배열응답(Answer) 섹션의 리소스 레코드를 문자열로 변환한 목록
authorities배열권한(Authority) 섹션의 리소스 레코드를 문자열로 변환한 목록
additionals배열추가(Additional) 섹션의 리소스 레코드를 문자열로 변환한 목록
_error문자열오류 발생 시 오류 메시지. 입력값이 유효하지 않으면 INVALID_DOMAIN, DNS 응답 시간 초과 시 TIMEOUT을 할당합니다.

오류 코드

파싱 오류
오류 코드메시지설명
22700nslookup 명령에서 output 구문이 누락되었습니다.output 키워드가 지정되지 않은 경우
22701nslookup 필드 문법이 유효하지 않습니다. `필드 as 별칭` 문법을 사용하십시오.필드 지정 문법이 잘못된 경우
22702nslookup 명령의 [as] 자리에 as가 와야 합니다.별칭 지정 시 as 키워드가 누락된 경우
22703nslookup 명령의 ns 옵션은 IP 주소만 사용할 수 있습니다.ns 옵션에 유효하지 않은 IP 주소를 지정한 경우
22704nslookup 명령의 출력 정보는 ip, status, flags, answers, additionals, authorities 만 허용됩니다.output 절에 허용되지 않은 필드 이름을 지정한 경우
22705nslookup 명령의 ns 옵션을 설정해주세요.ns 옵션이 지정되지 않은 경우
22706nslookup 명령의 timeout 옵션은 60 이하의 자연수로 지정해야 합니다.timeout 옵션에 0 이하이거나 60을 초과하는 값을 지정한 경우
22707nslookup 명령의 cache 옵션은 10485760 이하의 자연수로 지정해야 합니다.cache 옵션에 0 이하이거나 10485760을 초과하는 값을 지정한 경우
22708지원되지 않는 nslookup 명령의 type 옵션입니다. A, NS, PTR, MX, CNAME, TXT 중 하나를 지정하세요.type 옵션에 지원하지 않는 DNS 쿼리 유형을 지정한 경우
런타임 오류

해당 사항 없음

설명

nslookup 명령어는 입력 레코드의 지정한 필드에서 도메인 이름을 읽어 DNS 서버에 질의하고, 응답 결과를 출력 필드에 할당합니다. DNS 질의 결과는 내부 캐시에 저장되어 동일한 도메인에 대한 반복 질의를 방지합니다.

입력 필드 값이 문자열이 아니거나 빈 문자열이면 DNS 질의를 수행하지 않고 _error 필드에 INVALID_DOMAIN을 할당합니다. DNS 서버가 지정한 시간 내에 응답하지 않으면 _error 필드에 TIMEOUT을 할당합니다.

output 절에 지정한 필드만 출력 레코드에 할당됩니다. ip 필드는 첫 번째 A 레코드의 IP 주소만 반환하므로, 여러 A 레코드가 존재하는 경우 answers 필드를 사용하여 전체 응답 레코드를 확인할 수 있습니다.

사용 예

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

  1. 출발지 IP를 도메인 이름으로 역방향 조회

    table limit=10 WEB_APACHE_SAMPLE
    | eval ptr = replace(src_ip, "^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$", "$4.$3.$2.$1.in-addr.arpa")
    | nslookup ns=198.51.100.53 type=PTR ptr output answers as ptr_answers
    | fields src_ip, ptr_answers
    

    src_ip 필드의 IP 주소를 역방향 DNS 조회 형식(in-addr.arpa)으로 변환하여 PTR 레코드를 조회합니다.

  2. 출력 필드에 별칭 지정

    table limit=10 WEB_APACHE_SAMPLE
    | eval ptr = replace(src_ip, "^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$", "$4.$3.$2.$1.in-addr.arpa")
    | nslookup ns=198.51.100.53 type=PTR ptr output answers as hostname, status as dns_status
    | fields src_ip, hostname, dns_status
    

    output 절의 as 키워드를 사용하여 출력 필드 이름을 변경합니다.

  3. 타임아웃과 캐시 크기 지정

    table limit=10 WEB_APACHE_SAMPLE
    | eval ptr = replace(src_ip, "^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$", "$4.$3.$2.$1.in-addr.arpa")
    | nslookup ns=198.51.100.53 type=PTR timeout=10 cache=2097152 ptr output answers, status
    | fields src_ip, answers, status
    

    타임아웃을 10초, 캐시 크기를 2MB로 설정하여 역방향 DNS 조회를 수행합니다.

호환성

nslookup 명령어는 소나 4.0 이전 버전부터 제공되었습니다.