Share 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 van de standaard-DNS van Azure overschrijdt, kunt u uw eigen DNS-servers opgeven. Door uw eigen DNS-servers te gebruiken, 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 Azure-VM's, 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 in 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. Enkele veelvoorkomende scenario's, met alternatieven, volgen:

Windows-clients

Windows-clients die niet lid zijn van een domein, proberen onbeveiligde DDNS-updates wanneer ze worden opgestart 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 zichzelf over het algemeen niet bij de DNS-server bij het opstarten, ze gaan ervan uit dat de DHCP-server dit doet. De DHCP-servers van Azure 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 gestandaardiseerd is, kunt u zelfs gebruiken nsupdate wanneer u geen binding op de DNS-server gebruikt.

U kunt de hooks die worden geleverd door de DHCP-client gebruiken 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. Bijvoorbeeld:

#!/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 ook de nsupdate opdracht gebruiken om beveiligde DDNS-updates uit te voeren. Als u bijvoorbeeld een BIND DNS-server gebruikt, wordt 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 de handtekening op de aanvraag kan worden gecontroleerd. Als u het sleutelpaar wilt opgeven voor nsupdate, gebruikt u de -k optie om de DDNS-updateaanvraag te ondertekenen.

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 ophalen uit de cache.

Indien nodig kunt u een DNS-zoekachtervoegsel toevoegen aan uw VM's. Het DNS-achtervoegsel wordt opgegeven in het bestand /etc/resolv.conf . De meeste Linux-distributies beheren automatisch de inhoud van dit bestand, dus meestal kunt u het niet bewerken. U kunt het achtervoegsel echter 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 bestand /etc/dhcp/dhclient.conf :

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