DNSQUERY(1)

명칭
dnsquery - resolver를 이용해 DNS 에 문의한다

서식
dnsquery [-n nameserver] [-t type] [-c class] [-r retry] [-p period] [-d] [-s] [-v] host

해설
dnsquery 프로그램은, BIND resolver의 프로그램 라이브러리 호출에 의해 네임서버와 교환하는 일반적인 인터페이스입니다. 본프로그램은 작동코드 QUERY 에 의한 네임서버 문의를 서포트하고 있습니다. 본프로그램은, nstest, nsquery, nslookup 와 같은 프로그램을 옮겨놓는 혹은 보충하는 것으로서 작성되었습니다. host (와)과 nameserver 이외의 인수는 대문자 소문자를 구별하지 않습니다.

옵션

-n nameserver
    문의에 이용하는 네임서버. 네임서버 지정은, (w.x.y.z 형식 또는 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx 형식의) 인터넷 주소 표기에서도, 도메인 네임 표기에서도 상관하지 않습니다. (디폴트: /etc/resolv.conf 의 지정. )

-t type
    관심 있는 리소스 레코드형. 형태에는 이하의 것이 있습니다:
    A   주소
    NS  네임서버
    CNAME
        정식명
    PTR 도메인 네임에의 포인터
    SOA 권위의 개시 (Start of Authority)
    WKS 잘 알려진 서비스 (well-known service)
    HINFO
        호스트 정보
    MINFO
        메일 박스 정보
    MX  메일 익스체인지 (mail exchange)
    RP  책임자 (responsible person)
    MG  메일 그룹 멤버
    AFSDB
        DCE 또는 AFS 서버
    ANY 와일드 카드

    대문자 소문자 어디라도 사용할 수 있습니다. (디폴트: ANY ).

-c class
    관심 있는 리소스 레코드의 클래스. 클래스에는 이하의 것이 있습니다:
    IN  인터넷
    HS  Hesiod
    CHAOS
        Chaos
    ANY 와일드 카드

    대문자 소문자 어디라도 사용할 수 있습니다. (디폴트: IN ).

-r retry
    네임서버가 응답하지 않는 경우의 리트라이 회수. (디폴트: 4)

-p period
    타임 아웃 시간(초). (디폴트: RES_TIMEOUT ).

-d  디버그 기능을 유효하게 한다. resolver의 options 필드의 RES_DEBUG 비트를 세트 합니다. (디폴트: 디버그 기능 오프)

-s  패킷은 아니고 스트림 (을)를 이용합니다. 즉, 네임서버와의 접속에 UDP 데이터 그램이 아니고, TCP 스트림을 이용합니다. resolver의 options 필드의 RES_USEVC 비트를 세트 합니다. (디폴트: UDP 데이터 그램)

-v  옵션 “-s” (와)과 같은 의미입니다.

host
    관심 있는 호스트명(혹은 도메인명).

관련 파일
/etc/resolv.conf
    디폴트의 네임서버와 검색 리스트
<arpa/nameser.h>
    이용할 수 있는 RR 타입과 클래스의 일람
<resolv.h>
    resolver의 플래그 일람

진단
resolver가 문의의 회답에 실패해, 디버그 기능이 유효하게 되지 않은 경우, dnsquery (은)는 단지 이하와 같은 메세지를 표시합니다:
    Query failed (rc = 1): Unknown host

return code의 값은 h_errno (으)로부터 얻습니다.

관련 항목
nslookup(8), nstest(1), nsquery(1), named(8), resolver(5)

저자
Bryan Beecher

버그
IN 이외의 클래스를 문의하면(자) 재미있는 결과를 얻을 수 있는 일이 있습니다. 그렇다고 하는 것은, 네임서버는 보통, 클래스 IN 의 리소스 레코드로서 루트 네임서버의 리스트밖에 가지고 있지 않기 때문입니다.

본명령은, inet_addr() (을)를 호출해 “-n” 옵션이 올바른 인터넷 주소인지 어떤지를 판단합니다. 유감스럽지만, inet_addr() (은)는 일부의(올바르지 않다) 주소(예를 들면 1.2. 3.4. 5)에 대해 분할 폴트를 일으키는 일이 있는 것 같습니다.