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 nsupdate
opgeven, 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>;