Delen via


Dynamische DNS gebruiken om hostnamen te registreren op uw eigen DNS-server

Azure biedt naamomzetting voor virtuele machines (VM's) en rolinstanties. Wanneer uw naamomzetting de mogelijkheden overschrijdt die worden geboden door het Standaard Domain Name System (DNS) van Azure, kunt u uw eigen DNS-servers opgeven. Met uw eigen DNS-servers kunt u uw DNS-oplossing aanpassen aan uw eigen specifieke behoeften. U moet bijvoorbeeld toegang krijgen tot on-premises resources via uw Active Directory-domeincontroller.

Wanneer uw aangepaste DNS-servers worden gehost als virtuele Azure-machines, kunt u hostnaamquery's voor hetzelfde virtuele netwerk doorsturen naar Azure om hostnamen om te zetten. Als u deze optie niet wilt gebruiken, kunt u uw VM-hostnamen registreren op uw DNS-server met behulp van dynamische DNS (DDNS). Azure beschikt niet over de referenties om rechtstreeks records op uw DNS-servers te maken, dus er zijn vaak alternatieve regelingen nodig. In dit artikel worden enkele veelvoorkomende scenario's beschreven, met alternatieven.

Windows-clients

Windows-clients die geen lid zijn van een domein, proberen onbeveiligde DDNS-updates bij het opstarten of wanneer hun IP-adres wordt gewijzigd. De DNS-naam is de hostnaam plus het primaire DNS-achtervoegsel. Azure laat het primaire DNS-achtervoegsel leeg, maar u kunt het achtervoegsel in de VIRTUELE machine instellen via de gebruikersinterface of PowerShell.

Windows-clients die lid zijn van een domein registreren hun IP-adressen bij de domeincontroller met behulp van beveiligde DDNS. Het domeindeelnameproces stelt het primaire DNS-achtervoegsel op de client in en maakt en onderhoudt de vertrouwensrelatie.

Linux-clients

Linux-clients registreren zich doorgaans niet bij de DNS-server bij het opstarten. Ze gaan ervan uit dat de DHCP-server (Dynamic Host Configuration Protocol) dit doet. De Azure DHCP-servers hebben niet de referenties voor het registreren van records op uw DNS-server. U kunt een hulpprogramma gebruiken met de naam nsupdate, dat is opgenomen in het Bind-pakket, om DDNS-updates te verzenden. Omdat het DDNS-protocol is gestandaardiseerd, kunt u zelfs gebruiken nsupdate wanneer u Bind niet gebruikt op de DNS-server.

U kunt de hooks gebruiken die door de DHCP-client worden geleverd om de hostnaamvermelding in de DNS-server te maken en te onderhouden. Tijdens de DHCP-cyclus voert de client de scripts uit in /etc/dhcp/dhclient-exit-hooks.d/. U kunt de hooks gebruiken om het nieuwe IP-adres te registreren met behulp van nsupdate. Voorbeeld:

#!/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

U kunt de nsupdate opdracht ook gebruiken om beveiligde DDNS-updates uit te voeren. Wanneer u bijvoorbeeld een Bind DNS-server gebruikt, wordt er een openbaar persoonlijk sleutelpaar gegenereerd (http://linux.yyz.us/nsupdate/). De DNS-server is geconfigureerd (http://linux.yyz.us/dns/ddns-server.html) met het openbare deel van de sleutel, zodat deze de handtekening op de aanvraag kan verifiëren. Als u het sleutelpaar wilt nsupdateopgeven, gebruikt u de -k optie voor de DDNS-updateaanvraag die moet worden ondertekend.

Wanneer u een Windows DNS-server gebruikt, kunt u Kerberos-verificatie gebruiken met de -g parameter in nsupdate, maar deze is niet beschikbaar in de Windows-versie van nsupdate. Als u Kerberos wilt gebruiken, gebruikt kinit u om de referenties te laden. U kunt bijvoorbeeld referenties laden uit een keytab-bestand en vervolgens nsupdate -g de referenties uit de cache ophalen.

Indien nodig kunt u een DNS-zoekachtervoegsel toevoegen aan uw VM's. Het DNS-achtervoegsel wordt opgegeven in het /etc/resolv.conf bestand. De meeste Linux-distributies beheren automatisch de inhoud van dit bestand, dus meestal kunt u het niet bewerken. U kunt het achtervoegsel overschrijven met behulp van de opdracht van supersede de DHCP-client. Als u het achtervoegsel wilt overschrijven, voegt u de volgende regel toe aan het /etc/dhcp/dhclient.conf bestand:

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