DNS host transfer mechanics
Dual-provisioning is the discipline that prevents the cardinal trap: build everything at the new host before pointing the world at it.
DNS host transfers are higher-stakes than registrar transfers because they affect every record the domain uses. A botched DNS host transfer takes the website, mail, and any other services offline simultaneously.
The discipline that prevents this is dual-provisioning: build everything at the new host before pointing the world at it.
The sequence
1. Export the current zone
Get the zone-file export from the current DNS host. Most have a panel button (“Export DNS records,” “Export zone file”). If not, read each record manually. Capture every record type: A, AAAA, CNAME, MX, TXT (SPF, DKIM, DMARC, vendor verifications), SRV, CAA, NS for any delegated subdomains. Probe common subdomain names too (lesson 06 of the records-and-mail course); a manual capture can miss what the obvious zone list doesn’t include.
2. Build the new zone at the new DNS host
Create the zone at the new host. Import or re-create every record from step 1. Don’t skip any.
Verify the new zone is correct before any cutover:
dig A example.com @<new-host-ns1> dig MX example.com @<new-host-ns1> dig TXT example.com @<new-host-ns1>The new host’s nameservers should return the same answers the current host returns. Both hosts now have the zone; only the current host’s nameservers are listed at the registrar, so all production traffic still resolves via the current host. The new host is hot-standby ready. This is dual-provisioning.
3. Lower apex SOA / NS TTLs (limited effect)
The TLD-level NS records (parent zone delegation) typically have a TTL of 24-48 hours set by the registry; you can’t change them. What you can lower is the SOA / NS records inside your zone, which some resolvers respect. The pre-flight is partial; expect a long propagation tail at the worst-case parent NS TTL regardless.
4. Change nameservers at the registrar
Update the nameservers in the registrar’s panel to the new DNS host’s. Save. The change propagates to the TLD’s nameservers within minutes; downstream resolvers pick it up as their cached old NS records expire.
5. Wait 24-48 hours and verify
Production traffic transitions gradually as resolver caches expire. Verify by querying both old and new hosts:
dig A example.com @<old-host-ns1> # serves the same answer the new host does dig A example.com @<new-host-ns1> # also serves the right answer dig NS example.com @8.8.8.8 # over time, this shifts to the new nameserversBoth old and new return the same answers because step 2 set them up symmetrically.
6. Decommission the old zone
After at least 48-72 hours (longer is safer; some resolver caches hang on), confirm no significant traffic is hitting the old nameservers. Then delete the zone at the old host. Don’t delete it earlier; lingering caches at slow resolvers might still query the old host until their cache expires.
The cardinal trap
What this is NOT
- “Skipping the manual export is fine; the new host can pull it.” Most DNS hosts don’t pull zones from other DNS hosts. You’re the one capturing every record. Cross-check against the original panel before cutover.
- “Decommission immediately after the cutover to free up resources.” Wait 48-72 hours minimum; slow resolver caches hang on.
- “The registrar transfer can be combined with the DNS host transfer for efficiency.” Possible but riskier. Each transfer has its own failure modes; combining doubles the things that can go wrong at once. Sequential is safer.
Decision walkthrough
After the dual-provisioning is complete and you’re about to change nameservers, the apex A record’s TTL (say, 86400) doesn’t matter for the nameserver change itself — but if the A record’s value needed to change at the same time, the high TTL would matter. In a pure DNS host transfer (values unchanged at both hosts), users won’t notice the IP change because there isn’t one. Cross-check all records at both hosts one more time before cutover; missing a TXT or SRV at the new host is the most common omission.