Step 1: Ensure all nameservers, new and old, are serving the same zone content.
Step 2: Work out the maximum TTL of the NS RRset in the parent and child zones. This is the time it will take caches to be clear of a particular version of the NS RRset. If you are just removing nameservers you can skip to Step 6.
Step 3: Add new nameservers to the NS RRset for the zone and wait until all the servers for the zone are answering with this updated NS RRset (new and old servers).
Step 4: Inform the parent zone of the new NS RRset then wait for all the parent servers to be answering with the updated NS RRset (new and old servers)
Step 5: Wait for cache to be clear of the old NS RRset. See Step 2 for how long. If you are just adding nameservers, you are done .
Step 6: Remove any old nameservers from the zones NS RRset and wait for all the servers for the zone to be serving the new NS RRset.
Step 7: Inform the parent zone of the new NS RRset then wait for all the parent servers to be answering with the new NS RRset.
Step 8: Wait for cache to be clear of the old NS RRset. See Step 2 for how long.
Step 9: Turn off the old nameservers or remove the zone entry from the configuration of the old nameservers.
Step 10: Increment the serial number and wait for the change to be visible in all nameservers for the zone. This ensures that zone transfers are still working after the old servers are decommissioned.