DIG(1)

명칭
dig - 도메인명 문의 패킷을 네임서버에 보낸다

서식
dig [@server] domain [<query-type>] [<query-class>] [+<query-option>] [- <dig-option>] [%comment]

해설
dig (도메인 정보 모색기; domain information groper)(은)는, DNS (Domain Name System) 서버로부터 정보를 모으기 위해서(때문에) 사용된다 유연한 명령행 툴입니다. dig (은)는 2 개의 모드를 가지고 있습니다. 이것은, 1 개의 문의를 실시하는 단순한 대화적 이용 모드와 몇개의 문의행의 리스트중의 각문제 있어 맞댐을 실행하는 배치 모드입니다. 모든 문의 옵션은, 명령행으로부터 이용 가능합니다.

보통 간단한 dig 의 사용법은, 이하와 같은 형식입니다.

dig @server domain query-type query-class

여기서,

server
    (은)는, 도메인명이나 닷 표기의 인터넷 주소의 어느 쪽인지입니다. 만약, 이 옵션필드가 생략 되었을 경우, dig (은)는, 그 머신의 디폴트의 네임서버를 이용하려고 합니다.

    주: 도메인명이 지정되었을 때는, 도메인명 시스템 resolver (즉, BIND)(을)를 사용하는 것으로 해결하려고 합니다. 시스템이 DNS 를 제공하고 있지 않을 때는, 닷 형식의 주소를 지정할 필요가 있습니다. 이용할 수 있는 서버가 어디엔가 있는 경우는, 필요한 (일)것은 /etc/resolv.conf 하지만 존재해, server 자신이 해결할 수 있도록(듯이), 그 디폴트 네임서버가 어디에 있을지가 기술되고 있는 것 뿐입니다. /etc/resolv.conf 에 대한 정보는 resolver(5) (을)를 참조해 주세요. 경고: /etc/resolv.conf (을)를 변경하면(자), 표준의 resolver 프로그램 라이브러리와 (잠재적으로) 그것을 사용하는 몇개의 프로그램에 영향을 줍니다. 옵션으로서 유저는 환경 변수 LOCALRES (을)를 설정해, /etc/resolv.conf 대신에 사용하는 파일의 이름을 지정할 수 있습니다. (LOCALRES 변수는 dig resolver 고유의 것으로, 표준의 resolver에서는 참조되지 않습니다). LOCALRES 변수가 설정되어 있지 않은지, 설정된 파일을 읽어들일 수 없는 경우는, /etc/resolv.conf 하지만 사용됩니다.

domain
    (은)는, 당신이 정보를 요구하고 있는 도메인명입니다. 역주소의 문의를 위한 편리한 방법은, -x 옵션을 참조해 주세요(이 마디의 그 외의 옵션 의 항으로 진술되고 있습니다).

query-type
    (은)는, 당신이 요구하고 있는 정보의 타입(DNS 문의 타입)입니다. 생략 되었을 경우의 디폴트는, “a” (T_A = 주소) 하지만 사용됩니다. 이하의 타입이 인식됩니다.

    a       T_A
        네트워크 주소
    any     T_ANY
        지정된 도메인의 모두/임의의 정보
    mx      T_MX
        도메인의 메일 교환 정보 (MX)
    ns      T_NS
        네임서버
    soa     T_SOA
        존의 권위자를 나타내는 레코드
    hinfo   T_HINFO
        호스트 정보
    axfr    T_AXFR
        존 전송 정보(권위를 가진 서버에게 묻지 않으면 안됩니다)
    txt     T_TXT
        임의의 수의 캐릭터 라인

    (완전한 리스트는, RFC 1035 를 참조해 주세요. )

query-class
    (은)는, 문의로 요구되는 네트워크 클래스입니다. 생략 되었을 경우의 디폴트는, “in” (C_IN = Internet) 입니다. 이하의 클래스가 인식됩니다.

    in      C_IN
        인터넷 클래스 도메인
    any     C_ANY
        모두/임의의 클래스의 정보

    (완전한 리스트는, RFC 1035 를 참조해 주세요. )

    주: “any” (은)는, 클래스 (이)나 문의의 타입 (을)를 지정하기 위해서 사용됩니다. dig (은)는, 최초로 나타났다 “any” (을)를 query-type = T_ANY (으)로서 해석합니다. query-class = C_ANY (으)로 하기 위해서(때문에)는, “any” (을)를 2 번 지정하는지, -c 옵션(이하 참조)을 이용해 문의 클래스를 지정하지 않으면 안됩니다.

  그 외의 옵션

%ignored-comment
    “%” (은)는, 단지 해석되지 않는 인수를 포함하기 위해서(때문에) 사용됩니다. 이것은, dig (을)를 배치 모드로 실행할 때에 유효합니다. 문의 리스트중의 모든 @server-domain-name (을)를 해결하는 대신에, 그 오버헤드를 피하면서 명령행상에 도메인명을 쓸 수가 있습니다. 이하의 예를 참조.

    dig @128. 9.0. 32 %venera.isi.edu mx isi.edu

- <dig option>
    “-” (은)는, dig 의 조작에 영향을 주는 옵션을 지정하기 위해서 사용됩니다. 이하의 옵션이 현재 이용 가능합니다 (편리한지 어떤지는 프로텍션하지 않습니다 ).

    -x dot-notation-address
        역어드레스 변환을 지정하는 편리한 형식입니다. “dig 32.0. 9.28.in-addr.arpa” 대신에, “dig -x 28.9. 0.32” (와)과 지정할 수 있습니다.

    -x IPv6-address
        역어드레스 변환을 지정하는 편리한 형식입니다. “dig 1.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0. 0.0.ip6.arpa” 대신에, “dig -x ::1” (와)과 지정할 수 있습니다.

    -f file
        dig 의 배치 모드를 위한 파일입니다. 파일은, 계속되어 실행되는 문의의 지정 ( dig 의 명령행)의 리스트를 포함하고 있습니다. ‘’;, ‘#’, ‘\n’ 그리고 시작되는 행은 무시됩니다. 그 외의 옵션은, 명령행으로 나타나는 것은, 개개의 배치에 의한 문의에서도 영향이 있습니다.

    -T time
        배치 모드로 실행했을 때, 연속한 문의가 시작되는 시간 간격을 초에 주고 dig 명령의 실행을 대개 동기 할 수가 있다 같게 됩니다. 디폴트는 0 입니다.

    -p port
        포트 번호입니다. 표준이 아닌 포토 번호로 기다리는 네임서버에 문의합니다. 디폴트는 53 입니다.

    -P[ping-string]
        문의하고 조롱해라고 온 다음에, ping(8) 명령을 응답 시간의 비교를 위해서(때문에) 실행합니다. 이것은, 아름답지 않습니다만, 쉘을 호출합니다. 통계의 마지막 3 행이 명령을 위해서(때문에) 표시됩니다.

        ping -s -server_name -56 -3

        옵션의 “ping-string” 하지만 존재했을 때는, 쉘 명령에서는 “ping -s” (을)를 옮겨놓습니다.

    -t query-type
        문의의 타입을 지정합니다. 타입 필드내의 정수치인가, 위에서 말한 니모닉크 표현 (즉 mx = T_MX )인가로 지정할 수가 있습니다.

    -c query-class
        문의의 클래스를 지정합니다. 클래스 필드내의 정수치인가, 위에서 말한 니모닉크 표현 (즉 in = C_IN)으로 지정할 수가 있습니다.

    -k keydir:keyname
        디렉토리 keydir 중의 TSIG 키명 keyname 로, 문의합니다.

    -envsav
        이 플래그를 지정하면(자), 모든 인수가 해석된 다음에 dig 환경 (디폴트나 표시 옵션등 )을 디폴트 환경으로서 파일에 보존합니다. 표준의 디폴트가 마음에 들지 않고, dig (을)를 사용할 때에 많은 옵션을 지정하는 것이 싫은 경우는 편리합니다. 환경은, dig 출력 (이하 참조)으로 자세하게 진술되는 플래그와 같이, resolver 상태 변수 플래그나, 타임 아웃, 재시행 회수로부터 됩니다. 쉘 환경 변수 LOCALDEF 하지만 파일의 이름으로 설정되어 있는 경우, 이것이, 디폴트의 dig 환경이 보존되는 장소가 됩니다. 그렇지 않은 경우는, 파일 “DiG.env” 하지만 현재의 작업 디렉토리에 작성됩니다.

        주: LOCALDEF (은)는, dig 의 resolver 고유하고, 표준의 resolver 프로그램 라이브러리의 조작에는 영향을 주지 않습니다.

        dig 하지만 실행될 때에, “. /DiG.env” 또는 쉘 환경 변수 LOCALDEF 그리고 지정된 파일이 찾아집니다. 그러한 파일이 존재해 읽을 수 있는 경우는, 인수를 해석하기 전에 이 파일로부터 환경이 읽힙니다.

    -envset
        이 플래그는, 배치 문의를 실행할 때에만 영향이 있습니다. dig 배치파일중에서 “-envset” 하지만 지정되어 있으면(자), 이 인수가 해석된 후의 dig 환경은, 배치파일이 실행되고 있는 동안 혹은, 다음의 “-envset” 하지만 지정될 때까지 는, 디폴트의 환경이 됩니다.

        - [no] stick 이 플래그는, 배치 문의 실행에만 영향을 줍니다. 이것은, dig 환경을 dig 배치파일중에서의 각문제 있어 맞추어라 (행)의 전에 (초기 상태 혹은, “-envset” 그리고 설정되었다) 원래 상태에 되돌리는 것을 지정합니다. 디폴트의 “-nostick” (은)는, dig 환경을 회복하지 않는다고 하는 의미이므로, dig 배치파일의 각 행으로 지정된 옵션은, 후의 행에서도 그 효과가 남은 채로 있습니다 (즉 “sticky” 때의 디폴트와 같이는 회복되지 않습니다).

+<query option>
    “+” (은)는 패킷 문의중의 옵션 변경이나 dig 출력 사양을 변경하기 위해서 사용됩니다. 이러한 많게는, nslookup(8) 그리고 받아들여지는 파라미터와 같은 것입니다. 옵션이 값을 필요로 하는 경우, 그 지정 형식은 이하와 같이 됩니다.

    + keyword [=value]

    대부분의 키워드는, 생략이 가능합니다. “+” 옵션의 해석은 매우 단순합니다. 값은 키워드와 스페이스에서 단락지어 되지 않습니다. 이하의 키워드가 현재 이용 가능합니다.

    키워드 생략형 의미 [디폴트]

        [no] debug (deb) 디버그 모드를 변경 [deb]
        [no] d2 추가의 디버그 모드를 변경 [nod2]
        [no] recurse (rec) 재귀적 탐색을 사용하는지 어떤지 지정 [rec]
        retry=# (ret) 재시행의 회수를 # 로 설정 [4]
        time=# (ti) 타임 아웃 시간을 # 초로 설정 [4]
        [no] ko 연결해 두는 옵션(vc 를 암묵 지정) [noko]
        [no] vc 가상 회선을 사용하는지 어떤지 지정 [novc]
        [no] defname (def) 디폴트 도메인명을 사용하는지 어떤지 지정 [def]
        [no] search (sea) 도메인 서치 리스트를 사용하는지 어떤지 지정 [sea]
        domain=NAME (do) 디폴트 도메인명을 NAME (으)로 지정
        [no] ignore (i) trunc. 에러를 무시하는지 어떤지 지정 [noi]
        [no] primary (pr) 프라이머리 서버를 사용하는지 어떤지 지정 [nopr]
        [no] aaonly (aa) 권위를 가진 문의만의 플래그 [noaa]
        [no] cmd 해석된 인수를 표시 [cmd]
        [no] stats (st) 문의의 통계를 표시 [st]
        [no] Header (H) 기본적인 헤더를 표시 [H]
        [no] header (he) 헤더 플래그를 표시 [he]
        [no] ttlid (tt) TTL 를 표시 [tt]
        [no] trunc (tr) 이름으로부터 origin 를 삭제 [tr]
        [no] cl 클래스 정보를 표시 [nocl]
        [no] qr 나와 간 문의를 표시 [noqr]
        [no] reply (rep) 응답절을 표시 [rep]
        [no] ques (qu) 질문절을 표시 [qu]
        [no] answer (an) 회답절을 표시 [an]
        [no] author (au) 권위절을 표시 [au]
        [no] addit (ad) 추가절을 표시 [ad]
        [no] dnssec (dn) OPT 의사 레코드중에서 DNSSEC OK 비트를 설정 [nodn]
    pfdef
        디폴트 표시 플래그를 설정
    pfmin
        최소의 디폴트 표시 플래그를 설정
    pfset=#
        표시 플래그를 # 로 설정 (# 는 16 진 /8 진/10 진이 가능합니다)
    pfand=#
        표시 플래그에 # 와의 비트 논리적 (and) 적용
    pfor=#
        표시 플래그에 # 와의 비트 논리합 (or) 적용

    재시행 회수 (와)과 시간 의 옵션은, 문의 데이터 그램을 보낼 때에, resolver 프로그램 라이브러리에 의해 사용되는 재발송 전략에 영향을 줍니다. 알고리즘은 이하와 같습니다

        for i = 0 to retry - 1
            for j = 1 to num_servers
        	send_query
        	wait((time * (2**i)) / num_servers)
            end
        end

    (주: dig (은)는 언제나 “num_servers” (으)로서 값 1 을 사용합니다. )

  상세
dig (은)는, 일찌기 BIND의 resolver(3) 프로그램 라이브러리의 변경판을 요구했습니다. BIND 의 resolver는, (BIND 4.9와 같이) dig (을)를 올바르게 동작시키게 되어 와 있습니다. 본질적으로는, dig (은)는, 인수의 해석과 적절한 파라미터 설정을(보기좋게는 아니고) 졸 직접적으로 실시하는 것입니다. dig (은)는 resolver의 함수 res_init(), res_mkquery(), res_send() (을)를 사용해, 또 _res 구조체를 조작합니다.

환경 변수
LOCALRES
    /etc/resolv.conf 대신에 사용하는 파일
LOCALDEF
    디폴트의 환경 파일

상술했다 -envsav, -envset, - [no] stick 옵션의 설명도 참조해 주세요.

관련 파일
/etc/resolv.conf
    초기 상태의 도메인명과 네임서버의 주소
. /DiG.env
    디폴트 옵션을 보존하는 디폴트 파일

관련 항목
named(8), resolver(3), resolver(5), nslookup(8)

표준
RFC 1035

저자
Steve Hotz hotz@isi.edu

사례
dig (은)는, Andrew Cherenson 에 의해 쓰여졌다 nslookup(8) 의 함수를 사용하고 있습니다.

버그
dig (은)는 "잠입성 기능 과다" 를 병을 앓고 있습니다. 이것은 개발중에 잠재적인 용도를 얼마든지 생각하고 있던 결과입니다. 가혹한 다이어트를 하면(자) 반드시 좋아지겠지요. 같이 표시 플래그와 그래서 지정할 수 있는 표시 항목의 엉성함이라든지들 , 이것들이 그때 뿐의 필요성으로부터 추가된 것이라고 하는 것이 알 것입니다.

resolver중의 어디선가 문제가 발생했을 때에, dig (은)는 잘 (꾸짖어야 할 종료 스테이터스로) 종료해 준다고는 할 수 없습니다. ( 주: 대개가 좋게 있는 종료 조건은 제대로 처리할 수 있습니다). 이것은, 특히 배치 모드로 실행하고 있을 때에 머리가 아픈 문제입니다. 이상종료(ABEND) 해 (한층 더 그것이 포착되고 (안)중) 시에는, 배치 전체가 종료해 버립니다만, 그러한 이벤트가 포착되었을 때에는, dig (은)는 그대로다음의 문의를 계속할 뿐입니다.