Payments are experiencing issues due to temporary restrictions in Russia. If your payment does not go through, please submit a support request.Our support team is available 24/7 — we are always here to help with hosting and server issues.We are now accepting requests for dedicated server rental and colocation services in our data center.Reminder: we recommend enabling backups for additional data protection.A new VPS/VDS lineup with NVMe storage and improved performance is now available.Maintenance work on some servers has been completed. All services are operating normally.
Article6 min readViews3

How to Check a DNS Record with dig and Read the Response Correctly

How to read a dig DNS response: real examples of NOERROR with addresses, empty NODATA responses, and NXDOMAIN. Status, TTL, and the next verification step without changing the network.

Comments 0

Network switch with multiple connected cables
In this article

After migrating a site, one computer opens the new version while another opens the old one. The cause may be DNS, but first you must obtain a verifiable response: which name is being queried, which record type is needed, and which server returned the result. A brief "domain not working" is too vague for diagnostics.

Specify the name explicitly

The example assumes the dig utility from BIND is installed. Enter the full domain name after the following command, without the protocol or page path:

read -r TARGET_HOST

dig "$TARGET_HOST" A

The query checks IPv4 records. For IPv6, perform a separate check:

dig "$TARGET_HOST" AAAA

The main page name and the name with an additional subdomain may have different records. Do not transfer the output of one check to all site addresses.

Look beyond just the address

In a full response, the status, answer section, TTL, and the server the utility contacted are important. The status for a non-existent name differs from a successful response with no records of the requested type. For example, the absence of an IPv6 record does not mean the name lacks an IPv4 address.

A request processing error is also not equivalent to a non-existent domain. It may be related to zone maintenance, DNSSEC validation, or the unavailability of a dependency. To draw correct conclusions, preserve the full status rather than just an empty string from the shortened mode.

Three real responses: an address, an empty response, and a non-existent name

On October 2, 2026, at 15:48 MSK, we performed three public queries from macOS using DiG 9.10.6 against the DNS server 1.1.1.1. This demonstrates how to read the response, not a test of your site's DNS. The addresses, TTLs, identifiers, and query times below relate to this observation and may differ upon repetition.

dig @1.1.1.1 example.com. A +time=2 +tries=1 +noall +comments +answer +authority +stats

Fragment of the response to an A query:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7430

example.com. 291 IN A 172.66.147.243

example.com. 291 IN A 104.20.23.154

;; SERVER: 1.1.1.1#53(1.1.1.1)

Both lines refer to the name example.com., class IN, and type A. The number 291 is the TTL in seconds in the received response; this is not the site's response time. Two addresses do not indicate an error: a single name can have multiple A records.

dig @1.1.1.1 example.com. CNAME +time=2 +tries=1 +noall +comments +answer +authority +stats

The same name queried for a CNAME returned NOERROR, but without records of the requested type. Fragment of the full response:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60948

;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

The AUTHORITY section contained an SOA record. The combination of status, the absence of matching answers, and the SOA record allowed recognition of NODATA: there are no records of the requested type. An ANSWER count of 0 is insufficient; such a response must be distinguished from a referral to other DNS servers. The presence of A records for this same name was already confirmed by the previous query.

dig @1.1.1.1 seo-diagnostic.invalid. A +time=2 +tries=1 +noall +comments +answer +authority +stats

The third query to a known invalid name returned:

;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 54998

All three dig calls completed with exit code 0, including NXDOMAIN. The process code confirms that a DNS response was received in these calls; the output 'name exists and the required record was found' must be determined by status and sections, not by a single $? or an empty +short output.

Observation

What the response showed

Next check

NOERROR and matching A/AAAA in ANSWER

The server returned addresses for the specified name and type.

If the site does not open, check the connection, TLS, and web response.

NOERROR, no matching type, SOA in AUTHORITY

The response shown contains no data of the required type (NODATA).

Verify the requested type and the zone's authoritative data; check other necessary types.

NXDOMAIN

The requested name or the final target of the CNAME chain does not exist according to the received response.

Verify the exact name and alias target, then the appropriate zone server.

The distinction between NXDOMAIN and NODATA, including CNAME handling, is described in RFC 2308.

The name in the .invalid zone is chosen as inherently invalid per RFC 2606.

Query parameters and output sections are described in the BIND dig manual.

If dig returns the expected address but the application uses a different one, the next step is to compare the name resolution path via resolvectl.

If the name resolves but the connection fails, start by checking the selected IP route.

Compact option for an already clear situation

When the context is known, the response can be shortened, leaving only comments and records:

dig "$TARGET_HOST" A +noall +answer +comments

This option is convenient for comparison but does not replace full diagnostics for an unknown error. If you need to check another DNS server, use it only with a clear reason and authorized access. Public and corporate resolvers may return different DNS data. For an internal corporate zone, use the organization's authorized resolver: the response from a public server does not replace verification within the corporate network.

How to interpret TTL

TTL is tied to the response caching time. Reducing the value in the zone does not instantly erase previously cached responses in all caches. Therefore, when migrating, you must consider settings before the change, not promise all users an immediate switch at a specific second.

Example: two resolvers return different addresses after a record change. Record their responses, time, and TTL, then compare them with the zone's authoritative data. The difference may be due to caching, but also to different settings or geographic responses. Without these details, you cannot confidently identify the cause.

DNS does not verify the website itself

Even a correct address does not confirm that the web server accepts connections and serves the intended virtual host. After DNS resolution, the connection, certificate, and application response must be checked separately. Conversely, a page accessible via IP does not prove correct DNS or domain name routing.

To submit to support, save the name, record type, status, resolver address, and check time. After making changes, repeat the query in the same environment. This data set helps distinguish zone errors from cache issues and problems occurring entirely outside DNS.

When comparing responses, preserve the case of the presentation separately from the meaning of the name and pay attention to the alias chain. The final address may refer to the CNAME target rather than being a direct record of the original name.

Discussion 0

Share your experience and ask questions. Comments without links appear after editorial review.

No comments yet. Start the discussion.