Skip to content

Getting started

Quickstart: your first migration

Migrate your first DNS zone step by step: connect the source and destination, preview every record, apply safely, verify answers, and plan the cutover.

6 min read

On this page

Before you start#

You need access to the provider serving the zone now and to the destination account. Read-only source access is enough for a preview. The destination needs write access before you can apply. You only need a registrar connection if you want DNSMigrator to switch nameservers automatically; guided cutover works without one.

If the source cannot be connected, export a BIND zone file. Follow how to export a DNS zone file from common providers, then validate the result with the zone file validator. A minimal file looks like this:

example.com.zone
$ORIGIN example.com.
$TTL 300
@    IN A     192.0.2.10
www  IN CNAME @
@    IN MX    10 mail.example.net.
@    IN TXT   "v=spf1 include:_spf.example.net -all"

For a public, credential-free assessment first, run the DNS migration checker.

How to migrate DNS step by step#

Keep the interactive DNS migration checklist open while you work so exports, email records, DNSSEC, TTLs, verification, and decommissioning are not missed.

Connect the source provider

Open Connections and choose Connect a provider. Search for the current DNS host, open it, and follow its setup steps. Provider-specific instructions live under Supported providers; for example, see Cloudflare or Amazon Route 53.

Give the connection a recognizable Name, enter the requested values, and choose Connect. Creating a connection immediately runs an access check. A successful row is marked Active and shows Read or Read + write. If you change permissions at the provider later, use Check access on the connection row.

Use the narrowest permission that fits the job. A source only needs to list and read its zones for a normal migration.

Connect the destination

Use Connect a provider again for the destination account. Grant the write permissions named in that provider’s guide if you plan to apply through DNSMigrator. A read-only destination can be selected for a preview, but the provider will reject an apply.

Connections are workspace-scoped. You can migrate between two accounts at the same provider as long as they are different connections; the preview labels that case Same provider, different account.

Choose the source zone

Choose New migration in the app rail. Under Where is the zone now?, leave Connected provider selected, pick the source Connection, and select the zone. DNSMigrator asks the provider to list visible zones. If that API cannot list them, enter the zone manually with Use this zone.

You can instead select Zone file and paste an export. A file cannot preserve API-only metadata such as proxy state, provider aliases, or routing policies, so compare the export with the source provider before relying on it. See BIND zone files and Previews and record statuses.

Choose the destination and start the preview

Under Where is it going?, select the destination connection. Choose Zone file if you want a translated download and no provider write. File-to-file conversion belongs in the zone translator, so that destination is disabled when the source is already a file.

Review the sentence under Preview, then choose Create preview. This queues reads of the source and, for a connected destination, the destination’s current zone. Nothing is written during this stage.

Review records and planned operations

The Preview section classifies each source record as Exact, Translated, Warning, Unsupported, or Skipped. Read every warning and unsupported reason. The plan separately counts Create, Update, Delete, and Already correct operations against the destination’s live state.

The default destination mode is Keep extra records. Records found only at the destination remain untouched. Select Make an exact copy if those extra records should be deleted. Changing the mode rebuilds the preview.

Use Translation rules for apex aliases, proxy state, routing, TTL, and TXT behavior. Download the zone file or open Report if you need a review artifact before applying.

Confirm and apply

Applying is a paid step unless the workspace already has an applicable entitlement. The required offer is shown in the apply card; see Plans and billing.

When ready, type the zone name into the confirmation field and choose Apply N changes. DNSMigrator creates the destination zone if needed, reads its current records, stores a destination snapshot, and calculates the plan again. If the live plan differs from the preview, Activity records the revised counts and apply uses those fresh operations rather than replaying the old plan. The source is not used as a write target.

The activity timeline reports each stage and provider error. A partial apply records only successful operations so those writes can still be rolled back.

Read authoritative verification

After apply, DNSMigrator asks the destination provider’s own authoritative nameservers for every target record set. Literal records pass only when the returned value set exactly matches the target. An ALIAS, apex CNAME, or provider-resource alias is queried as an address record; a CDN or load balancer may resolve to different but valid addresses and is reported as informational rather than silently treated as equal.

The Verification panel puts mismatches first and lists missing or extra answers. DNSMigrator retries initial mismatches. Use Verify again after fixing a provider-side issue. Do not cut over until required records answer correctly. See Apply and verify.

Cut over nameservers

Once records have been applied, the Cut over panel offers We switch it and I'll switch it. Automatic mode requires an active registrar connection and the Automated one-time tier. Guided mode shows the nameservers to set and checks your work.

If DNSSEC is active, the cutover sequence removes the old DS record, waits before changing nameservers, enables signing at the destination when its adapter supports that operation, and publishes the new DS record. When a registrar or provider cannot perform a step through its API, the panel pauses with the exact manual action. Read Nameserver cutover and DNSSEC transitions before starting.

The optional TTL-lowering checkbox updates eligible source records and waits out their previous TTLs. Otherwise, both providers should keep serving matching answers while recursive resolvers move to the new delegation.

Keep the rollback path open

During the offer’s rollback window, Roll back removes records DNSMigrator created, restores records it changed, and recreates records it deleted. At the start of the rollback job, the destination is read again. If someone changed one of those records after the migration, DNSMigrator skips it instead of overwriting the newer value.

If nameservers have already changed, use Switch back to the old provider before rolling back destination records. The source zone remains available either way; only its eligible TTLs were modified if you selected TTL lowering. Read Rollback for the exact scope.

What to do next#

For a one-time move, keep the old zone available while delegation caches expire. To continue managing the zone, import or create it under Zones, then use the saved draft, Preview changes, and Changes workflow. The Managed zones section covers editing, backups, drift checks, and multi-provider DNS.

DNS migration step questions#

What are the basic DNS migration steps?
Connect or export the source, choose a destination, create and review a preview, confirm apply, verify authoritative answers, and then change nameservers. Keep the old provider answering until delegation caches expire.
Can I migrate DNS without source API access?
Yes. Export a BIND zone file, validate every parsed line, and use it as the migration source. An API connection is preferable when you need provider-only metadata such as proxying, aliases, or routing policies.
Does applying the migration change nameservers?
No. Apply writes the plan calculated from a fresh destination read and then verifies that destination directly. Nameservers change only when you start the separate cutover workflow or update them yourself.
What should I do if verification fails?
Do not cut over. Read the missing and extra answers, correct the destination or wait for its API to settle, then select Verify again until every required record passes.