XiaTools

What Is an SOA Record in DNS Configuration?

Updated 30 Sept 2026

An SOA (Start of Authority) record is a fundamental DNS record that stores administrative information about a domain zone, including its primary name server and contact email. Without a properly configured SOA record, secondary name servers cannot synchronize zone data, leading to resolution failures across the internet. In this guide, you will learn how the SOA record works, examine its exact fields, and discover how to troubleshoot zone transfer and propagation issues.

The Core Role of the SOA Record in DNS

When a recursive resolver needs information about a domain, it queries the authoritative name servers. The Start of Authority record sits at the very top of every valid DNS zone file. It tells the wider internet which name server is the authoritative source of truth for the domain and provides critical parameters that govern how long records should be cached and how frequently secondary name servers should check for updates.

Think of the SOA record as the passport or registry deed for your domain name. It establishes ownership, points to the primary administrative server, and defines the rules of engagement for all other DNS records within that zone. If your SOA record contains invalid timing parameters or points to a dead primary nameserver, your entire DNS infrastructure can experience propagation delays or complete resolution blackouts.

Anatomy of an SOA Record

An SOA record consists of several distinct fields, each serving a specific administrative or operational purpose. When you inspect an SOA record, you will typically see values represented in a specific sequence.

Here is an example of what an SOA record looks like for example.com in a standard zone file:

example.com. 3600 IN SOA ns1.example.com. admin.example.com. (
        2023102401 ; Serial
        7200       ; Refresh
        3600       ; Retry
        1209600    ; Expire
        300 )      ; Minimum TTL

Let us break down each component of this record to understand what it controls.

Primary Name Server

The first field (ns1.example.com.) designates the primary authoritative name server for the zone. This is the master server where the original zone file is maintained before changes are replicated out to secondary name servers.

Responsible Person

The second field (admin.example.com.) represents the email address of the person responsible for the zone. Notice the lack of an @ symbol; standard DNS syntax replaces the local-part separator with a dot. In this example, the email address is admin@example.com.

Serial Number

The serial number is a version counter for the zone file. Every time you make a change to your DNS records—such as adding an A record or updating a CNAME—you must increment this number. Secondary name servers compare this serial number against their own cached version; if the master serial is higher, they initiate a zone transfer to grab the latest updates.

Refresh Interval

The refresh interval specifies how long (in seconds) a secondary name server should wait before checking the primary name server for a new serial number. In our example, 7200 seconds equals two hours.

Retry Interval

If a secondary name server attempts to contact the primary name server during a refresh cycle and fails, the retry interval determines how long it must wait before trying again. In the example above, the retry interval is set to 3600 seconds (one hour).

Expire Limit

The expire limit defines how long a secondary name server will continue to serve authoritative answers for the zone if it cannot reach the primary name server. If this timer runs out (set to 1209600 seconds or two weeks in our example), the secondary name server stops responding to queries for the zone to prevent serving stale data.

Minimum TTL

The minimum TTL (Time to Live) historically applied to all records in the zone that lacked their own explicit TTL. Modern resolvers use this value as the negative caching TTL, determining how long a recursive resolver should remember that a domain or record did not exist.

How to Perform an SOA Lookup

When troubleshooting DNS propagation or zone transfer failures, checking the raw SOA record of a domain is often the best first step. You can examine these records using command-line utilities or online diagnostics tools. To verify your current zone configuration and check master server responsiveness, you can use a dedicated SOA lookup utility to instantly inspect the authoritative records and timers.

Using Dig on Linux and macOS

The dig utility is the industry standard for querying DNS records. To view the SOA record for example.com, run the following command in your terminal:

dig example.com SOA

Expected output will look similar to this:

; <<>> DiG 9.10.6 <<>> example.com SOA
;; global options: +cmd
;; Got answers:
;; ->-.example.com.
;; OPT PSEUDOSECTION:
;; HEADER:
;;   opcode: QUERY, query status: NOERROR, id: 45123
;;   authority section:
;; example.com.        3600    IN   SOA ns1.example.com. admin.example.com. 2023102401 7200 3600 1209600 300

Using Nslookup on Windows

If you are using Windows, the built-in nslookup utility allows you to query specific record types easily. Open your command prompt and run:

nslookup -type=SOA example.com

The output will display the primary server, contact email, and all associated timer variables directly in your console window.

Common SOA Configuration Mistakes

Misconfigured SOA records can cause severe intermittent resolution issues and break secondary server synchronization. Watch out for these frequent pitfalls when managing your DNS:

  • Forgetting to Increment the Serial Number: If you update DNS records on your master server but forget to increment the serial number, secondary name servers will never pull the updates.
  • Incorrect Email Format: Using an standard email address with an @ sign instead of a dot in the responsible person field will cause syntax validation errors during zone loading.
  • Aggressive Refresh Timers: Setting refresh and retry intervals too low can overload your primary name server with unnecessary zone synchronization queries from secondary nodes.
  • Mismatched Master Names: The primary name server listed in the SOA record must match one of the active NS records for the domain.

Step-by-Step Guide: Updating an SOA Record

Most modern managed DNS providers automatically generate and manage your SOA record behind the scenes. However, if you run a self-hosted BIND name server or manage raw zone files, you will need to update them manually. Follow these steps to safely modify your SOA configuration:

  1. Access your primary DNS server terminal or control panel where the master zone file is stored.
  2. Open the zone file for your domain (e.g., /var/named/example.com.zone) using a text editor like nano or vim.
  3. Locate the top line starting with IN SOA.
  4. Increment the serial number. If the current value is 2023102401, change it to 2023102402.
  5. Adjust any refresh, retry, or expire timers if your hosting requirements or failover strategies have changed.
  6. Save the file and check for syntax errors using the zone file validator command:
named-checkzone example.com /var/named/example.com.zone
  1. Reload the nameserver daemon to apply the changes:
sudo rndc reload example.com

SOA Configuration Checklist

Use this quick reference checklist to ensure your Start of Authority record is healthy and correctly configured:

  • Primary name server field points to a valid, reachable master nameserver.
  • Responsible person email uses dot notation instead of an @ symbol.
  • Serial number has been incremented after any recent zone modification.
  • Refresh interval is set to a reasonable duration (typically 2 to 4 hours).
  • Expire limit is high enough to prevent premature secondary server dropouts (usually 1 to 2 weeks).
  • Zone file passes syntax validation checks without errors.

Understanding the SOA record empowers you to diagnose deep DNS synchronization issues, maintain healthy secondary name server clusters, and ensure your domain remains stable and accessible across the global internet.

Frequently asked questions

What happens if I forget to increment the SOA serial number?

If you update your DNS records but fail to increment the serial number in the SOA record, secondary name servers will assume their cached zone data is already up to date. As a result, they will not pull the new records, leading to inconsistent DNS resolution across different networks.

Why does the email address in the SOA record use a dot instead of an @ symbol?

The SOA record format was standardized in early DNS specifications where the `@` symbol was reserved for other functional uses within zone files. To prevent parsing conflicts, the local-part separator in the administrative email address is represented by a period.

Do I need to create an SOA record manually for every domain?

If you use a managed DNS hosting provider, they typically generate and manage the SOA record automatically behind the scenes. You only need to configure and maintain raw SOA records manually if you run your own authoritative name server infrastructure.

What is the recommended value for the SOA serial number?

The most common and effective format for serial numbers is YYYYMMDDNN, where YYYYMMDD is the current date and NN is a two-digit daily revision counter starting at 01. This format makes it easy to track when a zone file was last modified.

How long does it take for SOA changes to propagate?

Propagation depends primarily on the TTL values of your name server records and the refresh interval specified within the SOA record itself. Secondary name servers will check for updates based on the refresh timer, while recursive resolvers respect the TTL set on the SOA record.

Free tools