SOA record
Marks the start of a zone and carries its serial number, refresh timings, and negative-cache TTL.
Last updated July 27, 2026
Zone-file example
; type 6, defined in RFC 1035 — exactly one per zone
example.com. 86400 IN SOA ns1.provider.net. hostmaster.example.com. (
2026072701 ; serial
7200 ; refresh
3600 ; retry
1209600 ; expire
300 ) ; minimum / negative cache TTLTypical uses
- Identifying the primary nameserver and the zone's administrative contact
- Driving zone transfers — secondaries compare serials to decide whether to fetch
- Setting how long NXDOMAIN answers are cached, via the minimum field
- Confirming that every nameserver in a set is serving the same zone version
When it breaks, check
- If secondaries are stale, check the serial: it must increase for a transfer to trigger
- The minimum field is the negative-cache TTL, not a default TTL for other records
- A large negative TTL means typos and missing records stay broken long after you fix them
- Serial arithmetic wraps at 32 bits; going backwards stops replication until it catches up
What the SOA record does
SOA is the zone’s control block. Its most operationally significant field is the serial: secondaries poll the primary, compare serials, and only pull a new copy when the number has increased. Get that wrong and replication silently stops.
Its second most significant field is the last one, historically called
minimum, which today means the TTL for negative answers. If you query a name
that does not exist, the resolver caches that NXDOMAIN for this long. A generous value
here is why a freshly-created record sometimes appears not to exist for far longer than
its own TTL would suggest.
Zone-file and wire format
The RDATA is two domain names followed by five 32-bit integers: primary
nameserver, responsible-party mailbox (with the @ written as a dot),
serial, refresh, retry, expire, and minimum. Serials are conventionally written as
YYYYMMDDnn because it is human-readable and monotonic, but any increasing
32-bit number works. Comparison uses the sequence-space arithmetic of
RFC 1982, so a serial that jumps backwards is treated as far in the future
and transfers stall.
example.com. 86400 IN SOA ns1.provider.net. hostmaster.example.com. (
2026072701 ; serial — must increase on every change
7200 ; refresh — how often secondaries poll
3600 ; retry — wait after a failed poll
1209600 ; expire — stop answering if the primary stays unreachable
300 ) ; minimum — how long NXDOMAIN is cached
Common uses
Day to day you read the SOA rather than write it. Querying every nameserver for the SOA serial is the fastest way to confirm a change has propagated through a set of secondaries — if the serials match and include your edit, the zone is consistent. The record is also where monitoring finds the administrative contact, and where DNSSEC signers and IXFR implementations get the version they are working from. Lowering the minimum field before a launch is a cheap way to avoid the “record exists but nothing can see it” class of incident.
Troubleshooting
Two symptoms map straight to SOA fields. Secondaries serving old data means the serial did not increase, or increased on a server that is not the one they are transferring from. A new hostname that stubbornly refuses to resolve for everyone except you means an NXDOMAIN is cached, and the minimum field tells you how long you have to wait.
Compare serials across all authoritative servers first; it is one query per server and it either proves or eliminates a replication problem in seconds.
# serial on every authoritative server — they should match
for ns in $(dig +short example.com NS); do
printf '%s -> ' "$ns"
dig +short @"$ns" example.com SOA | awk '{print $3}'
done
# read the negative-cache TTL (last field) before debugging "missing" records
dig example.com SOA +noall +answer
# an NXDOMAIN response carries the SOA that governs how long it is cached
dig doesnotexist.example.com A +noall +authority
The defining RFC
SOA is type 6, defined in
RFC 1035 §3.3.13. The redefinition of the
minimum field as the negative-caching TTL is
RFC 2308 §4, which is the section to read if you care about how long
NXDOMAIN sticks. Serial-number comparison arithmetic is
RFC 1982, and common SOA misconfigurations are catalogued in
RFC 1912 §2.2. Query a zone’s SOA with the
DNS lookup tool.
Reference and tooling
Every record type and its assigned numeric value is listed in theIANA DNS Parameters registry. To query a live zone from the browser, use theDNS lookup tool. If the record you are chasing is TLS-related, the TLS inspector andCertificate Transparency lookup are usually the next two stops.