Registrieren von Hostnamen in Ihrem eigenen DNS-Server mit dynamischem DNS

Azure bietet eine Namensauflösung für virtuelle Computer (VMs) und Rolleninstanzen. Wenn Ihre Namensauflösung mehr leisten muss, als die Funktionen des standardmäßigen DNS von Azure ermöglichen, können Sie eigene DNS-Server bereitstellen. Mit Ihren eigenen DNS-Servern können Sie eine maßgeschneiderte DNS-Lösung für Ihre speziellen Anforderungen erstellen. Beispielsweise kann es vorkommen, dass Sie eine DNS-Lösung für den Zugriff auf Ihren lokalen Active Directory-Domänencontroller benötigen.

Wenn Ihre benutzerdefinierten DNS-Server als virtuelle Azure-Computer gehostet werden, können Sie Abfragen des Hostnamens für das gleiche virtuelle Netzwerk in Azure zum Auflösen von Hostnamen weiterleiten. Wenn Sie diese Option nicht nutzen möchten, können Sie die Hostnamen Ihrer virtuellen Computer über Dynamic DNS (DDNS) in Ihrem DNS-Server registrieren. Azure verfügt nicht über die Anmeldeinformationen, um Einträge direkt in Ihren DNS-Servern zu erstellen. Daher sind meist andere Vorkehrungen erforderlich. Einige allgemeine Szenarien mit Alternativen sind:

Windows-Clients

Nicht per Beitritt in eine Domäne eingebundene Windows-Clients versuchen beim Starten oder bei IP-Adressänderungen, ungesicherte DDNS-Aktualisierungen vorzunehmen. Der DNS-Name besteht aus dem Hostnamen und dem primären DNS-Suffix. In Azure wird das primäre DNS-Suffix leer gelassen, Sie können es jedoch im virtuellen Computer über die Benutzeroberfläche oder durch PowerShell festlegen.

Per Beitritt in die Domäne eingebundene Windows-Clients registrieren ihre IP-Adressen mithilfe von sicherem DDNS beim Domänencontroller. Während des Domänenbeitritts wird das primäre DNS-Suffix auf dem Client festgelegt, und die Vertrauensstellung wird erstellt und verwaltet.

Linux-Clients

Linux-Clients registrieren sich beim Start in der Regel nicht selbst beim DNS-Server. Es wird davon ausgegangen, dass der DHCP-Server dies übernimmt. Die DHCP-Server von Azure verfügen nicht über die Anmeldeinformationen, um Datensätze im DNS-Server zu registrieren. Sie können ein Tool namens nsupdate verwenden, das im Bind-Paket enthalten ist, um DDNS-Updates zu senden. Da das DDNS-Protokoll standardisiert ist, können Sie nsupdate auch dann verwenden, wenn Sie Bind nicht auf dem DNS-Server nutzen.

Sie können die vom DHCP-Client bereitgestellten Hooks verwenden, um den Hostnameneintrag im DNS-Server zu erstellen und zu verwalten. Während des DHCP-Zyklus führt der Client die Skripts in /etc/dhcp/dhclient-exit-hooks.d/ aus. Sie können die Hooks verwenden, um die neue IP-Adresse mit nsupdate zu registrieren. Beispiel:

#!/bin/sh
requireddomain=mydomain.local

# only execute on the primary nic
if [ "$interface" != "eth0" ]
then
    return
fi

# When you have a new IP, perform nsupdate
if [ "$reason" = BOUND ] || [ "$reason" = RENEW ] ||
   [ "$reason" = REBIND ] || [ "$reason" = REBOOT ]
then
   host=`hostname`
   nsupdatecmds=/var/tmp/nsupdatecmds
     echo "update delete $host.$requireddomain a" > $nsupdatecmds
     echo "update add $host.$requireddomain 3600 a $new_ip_address" >> $nsupdatecmds
     echo "send" >> $nsupdatecmds

     nsupdate $nsupdatecmds
fi

Sie können den Befehl nsupdate auch verwenden, um sichere DDNS-Updates durchzuführen. Wenn Sie beispielsweise einen Bind-DNS-Server nutzen, wird ein Schlüsselpaar aus öffentlichem und privatem Schlüssel generiert (http://linux.yyz.us/nsupdate/). Der DNS-Server wird mit dem öffentlichen Teil des Schlüssels konfiguriert (http://linux.yyz.us/dns/ddns-server.html), damit die Signatur der Anforderung überprüft werden kann. Um das Schlüsselpaar für nsupdate bereitzustellen, verwenden Sie die -k-Option zum Signieren der DDNS-Updateanforderung.

Wenn Sie einen Windows-DNS-Server nutzen, können Sie die Kerberos-Authentifizierung mit dem Parameter -g in nsupdate verwenden, doch dies ist nicht in der Windows-Version von nsupdate verfügbar. Um Kerberos zu verwenden, laden Sie die Anmeldeinformationen mit kinit. Sie können die Anmeldeinformationen z.B. aus einer Schlüsseltabellendatei laden, und dann übernimmt nsupdate -g die Anmeldeinformationen aus dem Cache.

Bei Bedarf können Sie Ihren VMs ein Suffix für die DNS-Suche hinzufügen. Das DNS-Suffix wird in der Datei /etc/resolv.conf angegeben. In den meisten Linux-Distributionen wird der Inhalt dieser Datei automatisch verwaltet. Daher lässt sie sich in der Regel nicht bearbeiten. Sie können das Suffix aber außer Kraft setzen, indem Sie den Befehl supersede des DHCP-Clients verwenden. Um das Suffix außer Kraft zu setzen, fügen Sie die folgende Zeile in die Datei /etc/dhcp/dhclient.conf ein:

supersede domain-name <required-dns-suffix>;