How to use the command 'adig' (with examples)
- Linux
- December 17, 2024
‘adig’ is a powerful command-line utility designed to query DNS (Domain Name System) servers and retrieve specific DNS record information. It’s particularly useful for network administrators and IT professionals who need to troubleshoot and verify DNS configurations. By leveraging ‘adig’, users can resolve DNS requests, analyze server responses, and test server connectivity, all of which are crucial for maintaining effective and robust network infrastructure.
Use Case 1: Display A (default) record from DNS for hostname(s)
Code:
adig example.com
Motivation:
This basic usage of ‘adig’ is essential when you want to resolve a hostname into its corresponding IP address. For instance, if you are trying to determine the IP address of a web server for ’example.com’, this first step in DNS troubleshooting can help ensure that your DNS is functioning correctly.
Explanation:
adig
: Invokes the ‘adig’ command-line tool.example.com
: Specifies the hostname for which you want to retrieve the A record. The A record, or Address record, maps a domain to its corresponding IPv4 address.
Example Output:
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
;; Query time: 14 msec
;; SERVER: 192.0.2.1#53(192.0.2.1)
;; WHEN: Tue Mar 1 16:32:14 2023
;; MSG SIZE rcvd: 45
Use Case 2: Display extra debugging output
Code:
adig -d example.com
Motivation:
Debugging DNS queries can be complex. The -d
option provides extensive details about the DNS request and response process, such as timing and server information. This is beneficial when troubleshooting DNS problems, allowing network administrators to trace the query path and pinpoint issues.
Explanation:
-d
: Enables debugging mode, providing verbose output including headers, flags, and other diagnostics.example.com
: The target domain for which comprehensive details are to be extracted.
Example Output:
;; HEADER SECTION:
;example.com. IN A
;opcode: QUERY, status: NOERROR, id: 12345
;flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; POINTERS SECTION:
other detailed debugging output lines...
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
Use Case 3: Connect to a specific DNS server
Code:
adig -s 1.2.3.4 example.com
Motivation:
At times, it is necessary to query a specific DNS server rather than the one automatically assigned by the network configuration. This is useful when verifying if certain DNS servers correctly resolve a domain, which can be critical for diagnosing localized or server-specific DNS resolutions.
Explanation:
-s 1.2.3.4
: Directs ‘adig’ to query a particular DNS server at the IP address1.2.3.4
.example.com
: The domain to be resolved through the specified DNS server.
Example Output:
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
;; SERVER: 1.2.3.4#53(1.2.3.4)
Use Case 4: Use a specific TCP port to connect to a DNS server
Code:
adig -T 5300 example.com
Motivation:
In some scenarios, DNS services might be configured to operate over nonstandard TCP ports, either for security or operational reasons. This command demonstrates how you can query such a service when the DNS server is listening on a TCP port other than the default (53).
Explanation:
-T 5300
: Specifies that the DNS query should be made over TCP using port5300
.example.com
: The domain name to be resolved through the specified port.
Example Output:
;; USING TCP: 5300
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
Use Case 5: Use a specific UDP port to connect to a DNS server
Code:
adig -U 5300 example.com
Motivation:
Just like querying over a specific TCP port, this use case is relevant when DNS servers are configured to listen on nonstandard UDP ports. UDP is typically the default for DNS due to its efficiency in small data transmissions, and this setup might be required to access particular services or during testing.
Explanation:
-U 5300
: Indicates the usage of UDP protocol on port5300
for the DNS query.example.com
: The target domain for which resolution is to be sought over the specified UDP port.
Example Output:
;; USING UDP: 5300
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
Conclusion:
This article presented several practical scenarios for using the ‘adig’ command to interact with DNS servers. From basic domain resolution to advanced debugging and specific server or port querying, ‘adig’ offers diverse functionalities essential for DNS management and troubleshooting. By understanding and utilizing these use cases, users can enhance their ability to diagnose and resolve DNS-related issues effectively.