Zonentransfer
Die originären Daten einer Zone liegen auf einem DNS-Server ab, der als Master (oder Primary Nameserver) bezeichnet wird. Zur Erhöhung der Ausfallsicherheit, Realisierung einer einfachen Lastverteilung oder um den Master vor Angriffen zu schützen (Hidden Master Prinzip) werden in der Praxis in fast allen Fällen ein oder mehrere zusätzliche Server installiert, die als Slaves (oder Secondary Nameserver) bezeichnet werden. Bei einigen Topleveldomains (z.B. de.) ist es sogar Vorschrift, Zonendateien für die Secondleveldomains auf mindestens zwei Servern zugänglich zu machen.
Die DNS-Informationen eines Master und eines Slaves werden als qualitativ gleichwertig angesehen. Sowohl Master als auch Slave sind autoritativ für eine Zone, d.h. ihren Daten kann unbedingt vertraut werden (im Gegensatz dazu werden beispielsweise Daten aus DNS-Caches als nicht-autoritativ angesehen, da sie veraltet sein können).
DNS-Einträge werden grundsätzlich nur auf dem Master erzeugt, geändert oder gelöscht. Das kann durch manuelles Editieren der betreffenden Zonendatei oder automatisch durch Import aus einer Datenbank erfolgen. Für die Synchronisation zwischen Master und Slaves existieren zwei Methoden:
Notify-Verfahren
Der Master benachrichtigt alle Slaves einer Zone, sobald sich in der Zone etwas geändert hat. Der Slave fordert dann entweder die komplette Zone an oder – besser – per inkrementellen Zonentransfer nur die geänderten Resource Records. Die Informationen, wer Slave ist, wird indirekt aus den NS Resource Records einer Zone abgeleitet. Der Master ist im SOA Resource Record aufgeführt. Alle anderen in NS-RRs aufgeführten Server gelten automatisch als Slave.
Slave-Hol-Verfahren
Der Slave holt in bestimmten Abständen (der sogenannten Refresh Time, die typischerweise eine Stunde beträgt) den SOA Resource Record der betreffenden Zone vom Master und vergleicht die Seriennummern. Ist die Seriennummer des SOA-RRs des Masters größer als die des Slaves fordert der Slave dann entweder die komplette Zone an oder – besser – per inkrementellen Zonentransfer nur die geänderten Resource Records. Die maßgeblichen Parameter (z.B. Seriennummer und Refresh-Timer) befinden sich im SOA-RR. Der Master legt diese Werte fest und zwingt sie den Slaves auf.
Das Notify-Verfahren ist dem Slave-Hol-Verfahren deutlich überlegen, da Änderungen schneller zu den Slaves übermittelt werden. Es ist heute Standard. Zum Zonentransfer wird grundsätzlich TCP verwendet und nicht, wie bei DNS-Requests, UDP.