\section{DNS-Zonentransfers}
\label{DNS:DNS-Zonentransfers}

\subsection{Einleitung}

\subsubsection{Übersicht}
Beim Transfer von DNS-Zonen werden die auf einem DNS-Server (Master)
gepflegten Zoneninformationen auf einen oder mehrere andere DNS-Server
(Slave) übertragen. Während die Pflege der Zoneninformationen
ausschliesslich auf einem System stattfindet, können DNS-Clients auf
alle Server zugreifen. Besonders in heterogenen Umgebungen wird die
Konfiguration der Clients und die Verfügbarkeit der Nameserver
deutlich erleichtert.

Die Einrichtung unterscheidet nicht zwischen Forward und Reverse
Zonen, so dass die Beschreibung hier jeweils für beide gültig ist.

\subsubsection{Voraussetzungen}
Neben einer zuverlässigen Netzwerkverbindung zwischen den DNS Servern
müssen die beteilgten DNS Master Server in der Lage sein, den Namen des
DNS Slave Servers bereits aufzulösen. 

\subsection{Transfer von UCS Zonen auf andere DNS-Server}

\subsubsection{Einrichtung unter UCS}
Für in UCS gepflegte Zonen versteht sich jeder UCS DNS-Server als
Zonen-Master. Da die Replikation der Zonen-Informationen über das LDAP
erfolgt, wird kein Master/Slave Konstrukt auf DNS Ebene aufgebaut.

Zonentransfers werden grundsätzlich zugelassen. Um manuell die
Zoneninformationen zu übertragen ist auf UCS-Seite daher keine weitere
Konfiguration notwendig.

Damit Slave-Server bei Änderungen der Zoneninformationen informiert
werden (Notifications), können sie als weiterer DNS-Server am DNS
Zonenobjekt eingetragen werden. Hier ist zu beachten, dass der andere
DNS-Server als FQDN mit abschliessendem Punkt hinterlegt wird. Ist der
andere DNS-Server als Slave gegenüber einem beliebigen UCS DNS-Server
konfiguriert, bekommt er von diesem bei jeder Änderung eine
Benachrichtigung und überträgt die Änderungen an der DNS Zone.

\subsubsection{Einrichtung auf anderen DNS-Servern}
Auf dem anderen DNS-Server muss die zu übertragende Zone vom Typ
\ucsName{slave} mit identischem Zonennamen angelegt werden. Als
Quell-Server bzw. Master werden eine oder mehrere IP-Adressen von UCS
DNS-Servern eingetragen.

Die Einrichtung der Zone auf einem BIND-Server erfolgt analog zur
Konfiguration von UCS als DNS Slave (siehe Kapitel
\ref{DNS:Zonentransfer:auf UCS:Einrichtung UCS}). Bei der Einrichtung
unter Windows 2003 Server kann in der DNS-Verwaltung (dnsmgmt) eine
Zone vom Typ \ucsName{Sekundäre Zone} angelegt werden, in deren
Einrichtungsdialog die IP-Adressen von UCS DNS-Servern als
\ucsName{Master-DNS-Server} eingetragen werden. Die Zoneninformationen
werden sofort vollständig übertragen und bleiben bei eingerichteten
Notifications laufend aktuell.


\subsection{Transfer von Zonen anderer DNS-Server auf UCS}

\subsubsection{Hintergrund}

Der Transfer von Zonen ist nicht gleichbedeutend mit dem Verwalten
einer DNS-Zone im UCS LDAP über \ucsUDM{}. Die
Zoneninformationen werden ausschliesslich auf DNS-Server Ebene
ausgetauscht und daher nur im lokalen Cache des BIND
gespeichert, nicht jedoch im LDAP. Da die sonst wirksame
LDAP-Replikation die Zoneninformationen nicht auf andere UCS DNS
Server überträgt, muss der Transfer externer Zonen für alle UCS
DNS-Server eingerichtet werden. Alternativ könne ein oder mehrere UCS
Server mit konfigurierten Zonentransfers als DNS-Forwarder für die
anderen UCS DNS Server dienen.

\subsubsection{Einrichtung auf dem DNS-Master}
Der DNS Server muss Zonentransfers zulassen und sollte bei Änderungen
Notifications an das UCS System senden. Unter Windows 2003 Server wird
dazu in der DNS-Verwaltung an den Zonen-Eigenschaften im Bereich
\ucsMenuEntry{Zonenübertragungen} die Option \ucsMenuEntry{Zonenübertragung zulassen}
aktiviert. Über die drei Optionen kann definiert werden, welche Server
Zonenübertragungen erhalten sollen. Ein mit UCS vergleichbares
Verhalten wird durch \ucsMenuEntry{Nur an Server, die in der Registrierkarte
Nameserver aufgeführt sind} erreicht. Über den Button
\ucsMenuEntry{Benachrichtigen} sollten Benachichtigungen aktiviert und die Option
\ucsMenuEntry{Server, die auf der Registrierkarte für Nameserver aufgelistet
sind} gesetzt werden.

Der UCS DNS-Server muss dann auf der Registrierkarte \emph{Nameserver}
hinzugefügt werden. Das ist am einfachsten möglich, wenn er bereits in
der DNS-Konfiguration von Windows 2003 Server registriert
wurde. Alternativ kann er über die IP-Adresse eingetragen werden.

\subsubsection{Einrichtung unter UCS}
\label{DNS:Zonentransfer:auf UCS:Einrichtung UCS}

Die von anderen DNS-Servern zu transferierenden Zonen müssen dem
BIND-Proxy auf dem UCS Server bekannt gemacht werden. Dazu kann in der
Datei \ucsCommand{/etc/bind/local.conf.proxy} ein Eintrag nach
folgendem Muster eingefügt werden:

\begin{ucsConfigFile}
zone "<Zonen-Name>" {
        type slave;
        file "<Zonen-Name>.zone";
        masters { <IP-Adresse anderer DNS-Server>; };
};
\end{ucsConfigFile}

Für \ucsCommand{<Zonen-Name>} muss Zonen-Bezeichnung wie auf dem
Master angegeben werden. Anschliessend muss der BIND-Proxy die
Zoneninformationen z.B. über einen Neustart einlesen:
\begin{ucsConsoleInput}
/etc/init.d/univention-bind-proxy restart
\end{ucsConsoleInput}

Die Zoneninformationen werden vom Master angefragt und lokal
gespeichert. Bei Problemen kann zur Fehlersuche auf Meldungen in der
Datei \ucsCommand{/var/log/daemon.log} zurückgegriffen werden.


\subsection{Weiterführende Informationen}
\begin{itemize}
\item RFC 1035: Domain Names: Implementation and
  Specification
\item RFC 1996: A Mechanism for Prompt Notification of Zone Changes
  (DNS NOTIFY)
\end{itemize}
