웹사이트 검색

DNS 쿼리를 위한 10가지 Dig(Domain Information Groper) 명령


이전 기사에서는 DNS(Domain Name System)의 정보를 쿼리하고 가져오는 데 사용되는 네트워킹 명령줄 도구인 nslookup 명령 예와 사용법을 설명했습니다.

이 문서에서는 Linux nslookup 도구와 매우 유사한 dig라는 또 다른 명령줄 도구를 소개합니다. 우리는 예제와 사용법을 통해 dig 명령의 사용법을 자세히 살펴보겠습니다.

Dig는 (Domain Information Groper)를 의미하며 Domain Name System(DNS )을 쿼리하기 위한 네트워크 관리 명령줄 도구입니다. ) 네임서버.

DNS 문제를 확인 및 해결하고 DNS 조회를 수행하고 쿼리된 이름 서버에서 반환된 답변을 표시하는 데 유용합니다.

Dig는 BIND 도메인 이름 서버 소프트웨어 제품군의 일부입니다. dig 명령은 nslookuphost와 같은 이전 도구를 대체합니다. dig 도구는 주요 Linux 배포판에서 사용할 수 있습니다.

1. 도메인 “A” 레코드 쿼리

dig yahoo.com

; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20076
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;yahoo.com.			IN	A

;; ANSWER SECTION:
yahoo.com.		387	IN	A	98.137.11.163
yahoo.com.		387	IN	A	74.6.143.26
yahoo.com.		387	IN	A	74.6.143.25
yahoo.com.		387	IN	A	74.6.231.20
yahoo.com.		387	IN	A	74.6.231.21
yahoo.com.		387	IN	A	98.137.11.164

;; Query time: 4 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Dec 10 12:58:13 IST 2021
;; MSG SIZE  rcvd: 134

위 명령을 실행하면 dig가 도메인 이름 yahoo.com에 대한 "A" 레코드를 조회하게 됩니다. Dig 명령은 /etc/resolv.conf 파일을 읽고 여기에 나열된 DNS 서버를 쿼리합니다. DNS 서버의 응답이 dig에 표시됩니다.

명령의 출력을 이해해 보겠습니다.

  • ;로 시작하는 줄은 정보의 일부가 아닌 주석입니다.
  • 첫 번째 줄은 dig(9.16.1) 명령의 버전을 알려줍니다.
  • 다음으로 dig는 DNS 서버로부터 받은 응답의 헤더를 표시합니다.
  • 다음은 단순히 쿼리를 알려주는 질문 섹션입니다. 이 경우 yahoo.com"A" 레코드에 대한 쿼리입니다. IN은 이것이 인터넷 조회(인터넷 클래스에서)임을 의미합니다.
  • 답변 섹션에는 yahoo.comIP 주소 98.137.11.163이 있음이 나와 있습니다.
  • 마지막으로 쿼리에 대한 몇 가지 통계가 있습니다. +nostats 옵션을 사용하여 이러한 통계를 끌 수 있습니다.

2. +short를 사용하여 도메인 “A” 레코드 쿼리

기본적으로 dig는 매우 장황합니다. 출력을 줄이는 한 가지 방법은 +short 옵션을 사용하는 것입니다. 그러면 아래와 같이 출력이 크게 줄어듭니다.

dig yahoo.com +short

98.137.11.164
74.6.231.21
74.6.231.20
74.6.143.25
74.6.143.26
98.137.11.163

참고: 기본적으로 dig는 지정된 도메인의 "A" 레코드를 찾지만 다른 레코드도 지정할 수 있습니다. MX 또는 Mail eXchange 레코드는 메일 서버에 도메인의 이메일을 라우팅하는 방법을 알려줍니다. TTL, SOA 등도 마찬가지입니다.

3. 도메인에 대한 MX 레코드 쿼리

다양한 유형의 DNS 리소스 레코드만 쿼리합니다.

dig yahoo.com MX

; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60630
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;yahoo.com.			IN	MX

;; ANSWER SECTION:
yahoo.com.		51	IN	MX	1 mta6.am0.yahoodns.net.
yahoo.com.		51	IN	MX	1 mta5.am0.yahoodns.net.
yahoo.com.		51	IN	MX	1 mta7.am0.yahoodns.net.

;; Query time: 4 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Dec 10 13:03:32 IST 2021
;; MSG SIZE  rcvd: 117

4. 도메인에 대한 SOA 레코드 쿼리

dig yahoo.com SOA

; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com SOA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25140
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;yahoo.com.			IN	SOA

;; ANSWER SECTION:
yahoo.com.		1800	IN	SOA	ns1.yahoo.com. hostmaster.yahoo-inc.com. 
2021121001 3600 300 1814400 600

;; Query time: 128 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Dec 10 13:04:08 IST 2021
;; MSG SIZE  rcvd: 99

5. 도메인의 TTL 레코드 쿼리

dig yahoo.com TTL

; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com TTL
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64017
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;yahoo.com.			IN	A

;; ANSWER SECTION:
yahoo.com.		1606	IN	A	74.6.143.25
yahoo.com.		1606	IN	A	74.6.231.21
yahoo.com.		1606	IN	A	74.6.143.26
yahoo.com.		1606	IN	A	98.137.11.164
yahoo.com.		1606	IN	A	98.137.11.163
yahoo.com.		1606	IN	A	74.6.231.20

;; Query time: 4 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Dec 10 13:04:58 IST 2021
;; MSG SIZE  rcvd: 134

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 27889
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;TTL.				IN	A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Dec 10 13:04:58 IST 2021
;; MSG SIZE  rcvd: 32

6. 답변만 조회하기 섹션

dig yahoo.com +nocomments +noquestion +noauthority +noadditional +nostats

; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com +nocomments +noquestion +noauthority +noadditional +nostats
;; global options: +cmd
yahoo.com.		1556	IN	A	74.6.231.20
yahoo.com.		1556	IN	A	98.137.11.163
yahoo.com.		1556	IN	A	98.137.11.164
yahoo.com.		1556	IN	A	74.6.143.26
yahoo.com.		1556	IN	A	74.6.231.21
yahoo.com.		1556	IN	A	74.6.143.25

7. 모든 DNS 레코드 유형 쿼리

dig yahoo.com ANY +noall +answer

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> yahoo.com ANY +noall +answer
;; global options: +cmd
yahoo.com.              3509    IN      A       72.30.38.140
yahoo.com.              3509    IN      A       98.138.253.109
yahoo.com.              3509    IN      A       98.139.183.24
yahoo.com.              1709    IN      MX      1 mta5.am0.yahoodns.net.
yahoo.com.              1709    IN      MX      1 mta6.am0.yahoodns.net.
yahoo.com.              1709    IN      MX      1 mta7.am0.yahoodns.net.
yahoo.com.              43109   IN      NS      ns2.yahoo.com.
yahoo.com.              43109   IN      NS      ns8.yahoo.com.
yahoo.com.              43109   IN      NS      ns3.yahoo.com.
yahoo.com.              43109   IN      NS      ns1.yahoo.com.
yahoo.com.              43109   IN      NS      ns4.yahoo.com.
yahoo.com.              43109   IN      NS      ns5.yahoo.com.
yahoo.com.              43109   IN      NS      ns6.yahoo.com.

8. DNS 역방향 조회

DNS 역방향 조회를 쿼리하는 중입니다. +단축을 사용하여 답변 섹션만 표시합니다.

dig -x 72.30.38.140 +short

ir1.fp.vip.sp2.yahoo.com.

9. 여러 DNS 레코드 쿼리

여러 웹사이트의 DNS 특정 쿼리를 쿼리합니다. MX, NS 등의 레코드입니다.

dig yahoo.com mx +noall +answer redhat.com ns +noall +answer

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> yahoo.com mx +noall +answer redhat.com ns +noall +answer
;; global options: +cmd
yahoo.com.              1740    IN      MX      1 mta6.am0.yahoodns.net.
yahoo.com.              1740    IN      MX      1 mta7.am0.yahoodns.net.
yahoo.com.              1740    IN      MX      1 mta5.am0.yahoodns.net.
redhat.com.             132     IN      NS      ns1.redhat.com.
redhat.com.             132     IN      NS      ns4.redhat.com.
redhat.com.             132     IN      NS      ns3.redhat.com.
redhat.com.             132     IN      NS      ns2.redhat.com.

10. .digrc 파일 생성

$HOME/.digrc 아래에 .digrc 파일을 생성하여 기본 발굴 옵션을 저장합니다.

dig yahoo.com
yahoo.com.              3427    IN      A       72.30.38.140
yahoo.com.              3427    IN      A       98.138.253.109
yahoo.com.              3427    IN      A       98.139.183.24

사용자 홈 디렉터리 아래의 .digrc 파일에 +noall +answer 옵션을 영구적으로 저장합니다. 이제 dig 명령이 실행될 때마다 dig 출력의 답변 섹션만 표시됩니다. +noall +답변과 같은 옵션을 매번 입력할 필요가 없습니다.

이 기사에서는 (DNS) 도메인 이름 서비스 관련 정보를 검색하는 데 도움이 될 수 있는 dig 명령을 알아보려고 했습니다. 댓글 상자를 통해 생각을 공유해 보세요.