Registrieren von Hostnamen in Ihrem eigenen DNS-Server mit dynamischem DNS
Azure bietet eine Namensauflösung für virtuelle Maschinen (VMs) und Rolleninstanzen. Wenn Ihre Namensauflösung mehr leisten muss, als die Funktionen des standardmäßigen DNS (Domain Name System) 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 über Ihren Active Directory-Domänencontroller auf lokale Ressourcen zugreifen müssen.
Wenn Ihre benutzerdefinierten DNS-Server als Azure-VMs 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 VM-Hostnamen ü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. In diesem Artikel werden einige häufige Szenarien mit Alternativen beschrieben.
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. Sie gehen davon aus, dass der DHCP-Server (Dynamic Host Configuration-Protokoll) dies tut. Azure DHCP-Server 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. Zum 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 Option -k
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 in der Windows-Version von nsupdate
nicht 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 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>;