본문으로 건너뛰기

[Linux] dig command 사용법

DNS 질의

요약

  • dig 명령으로 도메인의 A 레코드, Name Server, Mail Server를 조회하고 DNS 질의 경로까지 확인할 수 있습니다.
  • @<DNS IP>로 질의할 DNS 서버를 지정하고, +short로 결과만 간단히 출력할 수 있습니다.
  • +trace 옵션을 쓰면 root DNS부터 최종 응답까지의 질의 경로를 단계별로 볼 수 있습니다.

테스트 환경 DiG 9.16.1-Ubuntu

매번 잊어버려서 따로 정리함.
자주 활용되는 것만 정리.

dig command 란?

dig 는 도메인 네임 시스템 네임서버에 질의하기 위한 네트워크 관리 명령 줄 인터페이스 도구 입니다.

Domain 의 IP 확인

Domain 에 연결된 IP 를 확인하는 방법입니다.

chhan@chhanPC:~$ dig chhanz.mooo.com

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;chhanz.mooo.com.               IN      A

;; ANSWER SECTION:
chhanz.mooo.com.        3028    IN      A       193.123.241.21x

;; Query time: 74 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Jul 25 10:15:07 KST 2022
;; MSG SIZE  rcvd: 60

일반적인 질의이며 A record 확인 및 질의에 응답한 Name server 의 정보를 확인 할 수 있습니다.

참고) A record 정보만 간단하게 확인하기 위해서는 +short 옵션을 이용합니다.

chhan@chhanPC:~$ dig chhanz.mooo.com +short
193.123.241.21x

특정 DNS 를 지정하여 질의

특정 DNS 를 지정하여 질의하는 방법은 아래와 같습니다.

chhan@chhanPC:~$ dig @1.1.1.1 chhanz.mooo.com

; <<>> DiG 9.16.1-Ubuntu <<>> @1.1.1.1 chhanz.mooo.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19847
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;chhanz.mooo.com.               IN      A

;; ANSWER SECTION:
chhanz.mooo.com.        3600    IN      A       193.123.241.21x

;; Query time: 181 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)          << 변경된 name server
;; WHEN: Mon Jul 25 10:18:30 KST 2022
;; MSG SIZE  rcvd: 60

@<dns IP> 옵션을 이용하여 특정 DNS 로 질의를 할 수 있습니다.

Domain 이 등록된 Name Server 확인

특정 Domain 이 등록된 Name Server 를 확인하는 방법은 아래와 같습니다.

chhan@chhanPC:~$ dig naver.com NS +short
e-ns.naver.com.
ns2.naver.com.
ns1.naver.com.
chhan@chhanPC:~$ dig google.com NS +short
ns4.google.com.
ns1.google.com.
ns2.google.com.
ns3.google.com.

아래와 같은 방법으로도 확인이 가능합니다. (+nssearch 옵션)

chhan@chhanPC:~$ dig google.com +nssearch
SOA ns1.google.com. dns-admin.google.com. 462911687 900 900 1800 60 from server 216.239.34.10 in 55 ms.
SOA ns1.google.com. dns-admin.google.com. 462799232 900 900 1800 60 from server 216.239.38.10 in 51 ms.
SOA ns1.google.com. dns-admin.google.com. 462911687 900 900 1800 60 from server 216.239.36.10 in 58 ms.
SOA ns1.google.com. dns-admin.google.com. 462911687 900 900 1800 60 from server 216.239.32.10 in 74 ms.

MX type 질의 (mail server 확인)

Domain 의 Mail Server 확인은 아래와 같습니다.

chhan@chhanPC:~$ dig google.com MX +short
10 smtp.google.com.
chhan@chhanPC:~$ dig naver.com MX +short
10 mx1.naver.com.
10 mx3.naver.com.
10 mx2.naver.com.

DNS 질의 경로 확인

root DNS 로부터 DNS 의 질의 경로를 확인 할 수 있습니다.

chhan@chhanPC:~$ dig chhanz.mooo.com +trace

; <<>> DiG 9.16.1-Ubuntu <<>> chhanz.mooo.com +trace
;; global options: +cmd
.                       86691   IN      NS      a.root-servers.net.
.                       86691   IN      NS      b.root-servers.net.
...생략
;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 51 ms

com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
...생략
;; Received 1175 bytes from 198.41.0.4#53(a.root-servers.net) in 39 ms

mooo.com.               172800  IN      NS      ns1.afraid.org.
mooo.com.               172800  IN      NS      ns2.afraid.org.
mooo.com.               172800  IN      NS      ns3.afraid.org.
mooo.com.               172800  IN      NS      ns4.afraid.org.
...생략
;; Received 675 bytes from 192.5.6.30#53(a.gtld-servers.net) in 11 ms

chhanz.mooo.com.        3600    IN      A       193.123.241.21x
mooo.com.               3600    IN      NS      ns4.afraid.org.
mooo.com.               3600    IN      NS      ns2.afraid.org.
mooo.com.               3600    IN      NS      ns3.afraid.org.
mooo.com.               3600    IN      NS      ns1.afraid.org.
;; Received 290 bytes from 69.65.50.223#53(ns2.afraid.org) in 186 ms

참고 자료

자주 묻는 질문

dig로 특정 DNS 서버를 지정해서 질의하려면 어떻게 하나요?

dig @1.1.1.1 chhanz.mooo.com처럼 @<DNS IP>를 붙여 실행합니다. 출력의 SERVER 항목에서 응답한 Name Server가 바뀐 것을 확인할 수 있습니다.

dig로 도메인의 IP만 간단하게 확인하는 방법이 있나요?

+short 옵션을 사용합니다. dig chhanz.mooo.com +short처럼 실행하면 A 레코드의 IP만 출력됩니다.

도메인이 등록된 Name Server와 Mail Server는 어떻게 확인하나요?

Name Server는 dig naver.com NS +short 또는 dig google.com +nssearch로, Mail Server는 dig google.com MX +short로 확인합니다.

DNS 질의가 어떤 경로로 처리되는지 확인하려면 어떻게 하나요?

dig <도메인> +trace를 실행하면 root DNS에서 TLD 서버, 도메인의 Name Server까지 질의 경로를 차례로 보여줍니다.