Table of Contents
- Step 1 - Install dig
- Step 2 - Basic Dig Command
- Step 3 - Query With Specific DNS Server
- Step 4 - Querying ALL DNS Records Types
- Step 5 - Querying Only Answer Section
- Step 6 - Querying A Record
- Step 7 - Querying NS Record
- Step 8 - Querying MX Record
- Step 9 - Querying TTL Record
- Step 10 - Perform Reverse Lookup
- Conclusion
Dig stands for “Domain Information Groper” used to gather DNS information. Generally, it is used by the system or network administrators for verifying DNS lookup and troubleshoot DNS-related problems. By default, the dig command sends a query to the DNS server listed in the /etc/resolv.com. It also allows you to query the specific DNS server.
In this tutorial, we will show you how to use the dig command through practical examples.
Step 1 – Install dig
By default, the dig command is not available in Linux.
For Debian and Ubuntu operating systems, install the dig command using the following command:
apt-get install dnsutils -y
For CentOS and RHEL operating systems, install the dig command using the following command:
yum install bind9-utils -y
After installing the dig command, verify the dig version using the following command:
dig -v
Sample output:
DiG 9.9.5-3ubuntu0.19-Ubuntu
Step 2 – Basic Dig Command
Running a dig command without any options will display the A record of the target domain.
For example, perform a DNS lookup for a domain ubuntu.org run the following command:
dig ubuntu.com
Sample output:
; <<>> DiG 9.9.5-3ubuntu0.19-Ubuntu <<>> ubuntu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9230 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ubuntu.com. IN A ;; ANSWER SECTION: ubuntu.com. 77 IN A 91.189.88.181 ubuntu.com. 77 IN A 91.189.88.180 ;; Query time: 263 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Tue Aug 24 08:55:56 IST 2021 ;; MSG SIZE rcvd: 71
In the above output, you can find the main information in the ANSWER SECTION.
Step 3 – Query With Specific DNS Server
Running the dig command without any options will use the DNS server specified in the /etc/resolv.conf. You can also query the domain using the specific DNS server.
Run the following command to query the ubuntu.com domain using the DNS 4.4.4.4:
dig @8.8.4.4 ubuntu.com
Sample output:
; <<>> DiG 9.9.5-3ubuntu0.19-Ubuntu <<>> @8.8.4.4 ubuntu.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25217 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;ubuntu.com. IN A ;; ANSWER SECTION: ubuntu.com. 40 IN A 91.189.88.181 ubuntu.com. 40 IN A 91.189.88.180 ;; Query time: 130 msec ;; SERVER: 8.8.4.4#53(8.8.4.4) ;; WHEN: Tue Aug 24 09:00:48 IST 2021 ;; MSG SIZE rcvd: 71
Step 4 – Querying ALL DNS Records Types
If you want to get the information of all DNS records, run the following command:
dig @8.8.4.4 ubuntu.com ANY +noall +answer
Sample output:
; <<>> DiG 9.9.5-3ubuntu0.19-Ubuntu <<>> @8.8.4.4 ubuntu.com ANY +noall +answer ; (1 server found) ;; global options: +cmd ubuntu.com. 3599 IN SOA ns1.canonical.com. hostmaster.canonical.com. 2018054375 10800 3600 604800 3600 ubuntu.com. 3599 IN MX 10 mx.canonical.com. ubuntu.com. 599 IN NS ns1.canonical.com. ubuntu.com. 599 IN NS ns2.canonical.com. ubuntu.com. 599 IN NS ns3.canonical.com. ubuntu.com. 59 IN AAAA 2001:67c:1360:8001::2b ubuntu.com. 59 IN AAAA 2001:67c:1360:8001::2c ubuntu.com. 59 IN A 91.189.88.180 ubuntu.com. 59 IN A 91.189.88.181
Step 5 – Querying Only Answer Section
You can use the options +noall and +answer to display only the answer section.
dig @8.8.4.4 ubuntu.com +noall +answer
Sample output:
; <<>> DiG 9.9.5-3ubuntu0.19-Ubuntu <<>> @8.8.4.4 ubuntu.com +noall +answer ; (1 server found) ;; global options: +cmd ubuntu.com. 12 IN A 91.189.88.181 ubuntu.com. 12 IN A 91.189.88.180
Step 6 – Querying A Record
The “a record” in DNS is used to bind a domain name with an IP address. You can use the +short option to query the a record of a specified domain.
dig ubuntu.com A +short
Sample output:
91.189.88.180 91.189.88.181
Step 7 – Querying NS Record
The NS record contains the information of a list of authoritative DNS servers for a domain name. You can use the NS option to query NS records:
dig +nocmd ubuntu.com NS +noall +answer
Sample output:
ubuntu.com. 714 IN NS ns2.canonical.com. ubuntu.com. 714 IN NS ns3.canonical.com. ubuntu.com. 714 IN NS ns1.canonical.com.
Step 8 – Querying MX Record
An MX record is a mail exchange record used to specify the mail server. You can use the MX option to query the MX record:
dig +nocmd ubuntu.com MX +noall +answer
Sample output:
ubuntu.com. 4502 IN MX 10 mx.canonical.com.
Step 9 – Querying TTL Record
You can use the TTL option to query the TTL record:
dig +nocmd ubuntu.com TTL +noall +answer
Sample output:
;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50516 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ubuntu.com. IN A ;; ANSWER SECTION: ubuntu.com. 59 IN A 91.189.88.180 ubuntu.com. 59 IN A 91.189.88.181 ;; Query time: 4 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Tue Aug 24 09:24:32 IST 2021 ;; MSG SIZE rcvd: 71
Step 10 – Perform Reverse Lookup
A reverse DNS lookup will display the information about the domain and hostname associated with an IP address. You can use the -x option followed by the IP address to perform a reverse DNS lookup:
dig +answer -x 8.8.8.8
Sample output:
; <<>> DiG 9.9.5-3ubuntu0.19-Ubuntu <<>> +answer -x 8.8.8.8 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58576 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;8.8.8.8.in-addr.arpa. IN PTR ;; ANSWER SECTION: 8.8.8.8.in-addr.arpa. 7200 IN PTR dns.google. ;; Query time: 580 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Tue Aug 24 09:27:00 IST 2021 ;; MSG SIZE rcvd: 73
Conclusion
In the above guide, we explained how to use the dig command to query the DNS server through various examples. Now you can perform DNS lookups for domains using various options. Give it a try today on your VPS from Altantic.Net.