| # | Nameserver | A | AAAA | CNAME | Notes | |
|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.ns }} | {{ row.a.join(', ') || '-' }} | {{ row.aaaa.join(', ') || '-' }} | {{ row.cname.join(', ') || '-' }} | {{ row.note || '-' }} |
| # | Check | Status | Notes | |
|---|---|---|---|---|
| {{ idx + 1 }} | {{ c.label }} | {{ c.status }} | {{ c.note || '-' }} |
| Resolver | Status | Code | Time | NS Snapshot | SOA MNAME | SOA Serial |
|---|---|---|---|---|---|---|
| {{ e.resolver }} | {{ e.status }} | {{ e.code }} | {{ e.timeMs }} ms | {{ e.nsSnapshot || '-' }} | {{ e.soaMname || '-' }} | {{ e.soaSerial === null || e.soaSerial === undefined ? '-' : e.soaSerial }} |
Nameservers are the signposts that tell the internet where a domain keeps its official records, and they shape how quickly and reliably names resolve. A nameserver health check looks for common delegation mistakes and configuration surprises that can turn a routine change into a messy outage.
Enter a domain name and you get a snapshot of the delegated nameservers plus a clear pass, warning, or fail summary. For each nameserver host, the report notes whether it has address records for common networks and whether it behaves like an alias. It also reads the start of authority record so you can sanity check the primary nameserver and its serial number.
Suppose you are moving a domain to a new provider and you expect two nameservers to be listed at the parent zone. If one nameserver name points only to an alias record, the results flag it so you can fix the host records before you switch traffic. If the serial number looks missing or out of place, you know to review how the zone is being published.
A clean report does not prove that a nameserver will answer every query, and it cannot measure reachability from every network. During changes, different resolvers can disagree for a while, so treat warnings as a prompt to investigate rather than a verdict. If a domain name is sensitive, avoid running checks on shared machines or in screenshots.
Use this check as a quick first pass when something feels off, then follow up with authoritative testing when the stakes are high.
The Domain Name System (DNS) delegates a domain to a set of nameservers listed in Nameserver (NS) records. Inside the zone, the Start of Authority (SOA) record identifies the primary nameserver in its MNAME field and carries a serial number that often tracks zone revisions. This checker treats the NS set, the SOA MNAME, and the SOA serial as signals of whether delegation and zone metadata look coherent.
Each nameserver hostname is also a name that should resolve to addresses. The tool queries A records for IPv4 addresses and AAAA records for IPv6 addresses, then flags hosts that return no addresses. When enabled, it also queries for CNAME records to detect nameserver hostnames that behave like aliases, since NS hosts are typically expected to be canonical names.
Lookups are performed through DNS over HTTPS (DoH) using JSON responses from a recursive resolver. You can choose Cloudflare, Google, or an Auto mode that tries Cloudflare first and falls back to Google only when the first request fails at the network level. An optional comparison mode runs NS and SOA queries against both resolvers and reports any answer set differences, which can help explain propagation and caching effects.
Results are grouped into PASS, WARN, and FAIL. PASS means the observed records match common expectations, WARN highlights gaps or ambiguity worth double checking, and FAIL points to a configuration that is usually unsafe, such as a CNAME answer on a nameserver hostname. One check is always a WARN to remind you that the view is based on recursive resolver data and is not a direct authoritative probe.
| Symbol | Meaning | Unit or datatype | Source |
|---|---|---|---|
d |
Domain input after basic sanitization | string | Input |
d_ascii |
ASCII normalized hostname used for queries | string | Derived |
r |
Resolver selection | enum | Input |
t |
Per request timeout | ms | Input |
w |
Parallel lookup workers | integer | Input |
N_NS |
Number of unique NS hostnames found | count | Derived |
MNAME |
Primary nameserver field from SOA | hostname | Derived |
S |
SOA serial number | integer | Derived |
status |
Check outcome category | PASS, WARN, FAIL | Derived |
The values below are illustrative and show how the status rules are applied to one run.
Input: d = example.test, r = Auto, w = 6, t = 3500 ms
Assume the query returns two nameservers, and the SOA record parses with a matching MNAME and a numeric serial.
If one nameserver host returns a CNAME answer when the alias check is enabled, the canonical host check becomes a FAIL even if address records exist.
In practice, a single FAIL is a cue to fix the delegation or host records before relying on the domain change.
| Threshold band | Lower bound | Upper bound | Interpretation | Action cue |
|---|---|---|---|---|
| FAIL | 0 | 0 | No NS records were returned for the queried name. | Confirm the domain and delegation point. |
| WARN | 1 | 1 | Only one nameserver was returned, which reduces redundancy. | Add a second nameserver before changes. |
| PASS | 2 | ∞ | Two or more nameservers were returned. | Proceed, then check the rest of the results. |
Other checks use the same PASS, WARN, FAIL scheme, with WARN reserved for missing optional signals and FAIL used for unsafe aliasing.
| Parameter | Meaning | Unit or datatype | Typical range | Sensitivity | Notes |
|---|---|---|---|---|---|
Resolver (r) |
Recursive resolver used for DoH lookups | enum | Auto, Cloudflare, Google | Medium | Auto falls back only on network failure. |
| Compare resolvers | Runs NS and SOA queries on both resolvers | boolean | Off or on | High | Useful for spotting caching and propagation differences. |
| Check CNAME on NS | Queries CNAME records for nameserver hostnames | boolean | Off or on | High | When enabled, any CNAME answer produces a FAIL. |
Concurrency (w) |
Parallel nameserver host lookups | integer | 1 to 16 | Medium | Higher values finish faster but can amplify rate limits. |
Timeout (t) |
Abort a single DoH request after this duration | ms | 0 or more | Medium | 0 disables extra timeouts beyond the network stack. |
| Constant | Value | Unit | Source | Notes |
|---|---|---|---|---|
| Default domain | example.com |
hostname | Constant | Starting value shown in the input. |
| Default resolver | Auto | enum | Constant | Auto attempts Cloudflare first. |
| Default concurrency | 6 | workers | Constant | Clamped to 1 to 16 at runtime. |
| Default timeout | 3500 | ms | Constant | Applied per DoH request when greater than 0. |
| Status reset timer | 1500 | ms | Constant | Used for temporary copied and downloaded indicators. |
performance.now() and rounded to whole milliseconds.| Field | Type | Min | Max | Step or pattern | Error text |
|---|---|---|---|---|---|
| Domain | text | – | – | Trims, extracts hostname from URL or email, strips leading and trailing dots | Domain is required. |
| Resolver | enum | – | – | Auto, Cloudflare, Google | – |
| Compare resolvers | boolean | – | – | On or off | – |
| Check CNAME on NS | boolean | – | – | On or off | – |
| Concurrency | number | 1 | 16 | Step 1, clamped to 1 to 16 | – |
| Timeout | number | 0 | – | Step 100 ms, 0 disables extra timeout | – |
| Input | Accepted families | Output | Encoding or precision | Rounding |
|---|---|---|---|---|
| Domain | Hostname, full URL, or email address | NS list, SOA MNAME and serial, per host A and AAAA, optional CNAME notes | ASCII normalized hostname | Not applicable |
| Resolver options | Auto, Cloudflare, Google, optional comparison | Resolver evidence snapshot including status code and response time | Time in ms | Whole ms |
| Exports | Copy, download, or report export | CSV tables, JSON summary, and DOCX reports | UTF-8 text | Not applicable |
The work scales linearly with the number of nameservers. Each nameserver host triggers two address queries, plus one extra alias query when enabled. Concurrency controls how many host lookups run in parallel, which can reduce wall clock time but increase burst traffic to the resolver.
Identical inputs can yield different snapshots over time because recursive resolvers cache answers and zones propagate changes at different speeds. The resolver comparison mode is most useful when you want evidence of disagreement rather than a single definitive view.
DNS fundamentals and record formats are defined by RFC 1034 and RFC 1035. DNS over HTTPS is specified by RFC 8484. Operational guidance on common DNS pitfalls is widely captured in RFC 1912.
This checker sends the queried domain name to the selected resolver provider from your browser, and results are kept only in the current page session unless you export them.
Nameserver configuration checks are most useful when you follow a consistent routine and interpret each warning in context.
Example workflow: Before a DNS migration, run the check on the current domain, save the JSON output, then rerun after updating NS records to confirm the new set appears consistently.
If the two resolvers disagree, wait for caches to expire and verify the delegation at the authoritative provider.
Pro tip: Run comparison mode twice a few minutes apart to see whether disagreement is shrinking or staying stable.
The page sends DNS queries from your device to the selected resolver provider and keeps results only in memory unless you export them. Resolver providers may log queries under their own policies.
It reflects what a recursive resolver returns at that moment, which is useful for troubleshooting but not a guarantee of authoritative truth. Caching, propagation, and split horizon DNS can all change what you see.
WARN means the checker saw something incomplete or ambiguous, like missing AAAA records, an unparseable SOA serial, or disagreement between resolvers. It is a prompt to verify, not proof of failure.
No. The checks rely on live resolver requests, so without an internet connection the lookups cannot run.
You can enter a hostname, paste a full URL, or paste an email address. The checker extracts the hostname, trims whitespace, removes trailing dots, and queries that exact name, so use the delegation point when possible.
Enable comparison to run NS and SOA lookups on both Cloudflare and Google and capture the snapshots side by side. Differences usually point to caching, propagation delays, or resolver specific views.
When the CNAME check is enabled, any CNAME answer returned for a nameserver hostname triggers a FAIL for canonical hostnames. This helps catch alias based NS hosts that can add extra lookups or break glue assumptions.
The provided metadata does not include licensing terms. Treat usage and redistribution according to where you obtained this package.
PASS means the observed records look consistent, not that every authoritative server is reachable or configured correctly. It does not test UDP or TCP reachability, DNSSEC, or per location behavior.
Blocking: If every request fails, your network may block resolver endpoints or abort HTTPS requests. Try a different network, reduce concurrency to 1, and increase timeout.