Dela via


Använd dynamisk DNS för att registrera värdnamn i DNS-servern

Azure tillhandahåller namnmatchning för virtuella datorer (VM) och rollinstanser. När namnmatchningen behöver överskrida funktionerna i Azures standard-DNS kan du ange dina egna DNS-servrar. Genom att använda dina egna DNS-servrar kan du skräddarsy din DNS-lösning så att den passar dina egna specifika behov. Du kan till exempel behöva komma åt lokala resurser via din Active Directory-domänkontrollant.

När dina anpassade DNS-servrar finns som virtuella Azure-datorer kan du vidarebefordra värdnamnsfrågor för samma virtuella nätverk till Azure för att matcha värdnamn. Om du inte vill använda det här alternativet kan du registrera dina VM-värdnamn på DNS-servern med dynamisk DNS (DDNS). Azure har inte autentiseringsuppgifterna för att direkt skapa poster på dina DNS-servrar, så det krävs ofta alternativa arrangemang. Några vanliga scenarier, med alternativ:

Windows-klienter

Icke-domänanslutna Windows-klienter försöker med oskyddade DDNS-uppdateringar när de startar eller när deras IP-adress ändras. DNS-namnet är värdnamnet plus det primära DNS-suffixet. Azure lämnar det primära DNS-suffixet tomt, men du kan ange suffixet på den virtuella datorn via användargränssnittet eller PowerShell.

Domänanslutna Windows-klienter registrerar sina IP-adresser med domänkontrollanten med hjälp av säker DDNS. Domänanslutningsprocessen anger det primära DNS-suffixet på klienten och skapar och underhåller förtroenderelationen.

Linux-klienter

Linux-klienter registrerar sig vanligtvis inte med DNS-servern vid start, utan förutsätter att DHCP-servern gör det. Azures DHCP-servrar har inte autentiseringsuppgifter för att registrera poster på DNS-servern. Du kan använda ett verktyg med namnet nsupdate, som ingår i bindningspaketet, för att skicka DDNS-uppdateringar. Eftersom DDNS-protokollet är standardiserat kan du använda nsupdate även när du inte använder Bindning på DNS-servern.

Du kan använda de hookar som tillhandahålls av DHCP-klienten för att skapa och underhålla posten värdnamn i DNS-servern. Under DHCP-cykeln kör klienten skripten i /etc/dhcp/dhclient-exit-hooks.d/. Du kan använda krokarna för att registrera den nya IP-adressen med hjälp av nsupdate. Ett exempel:

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

Du kan också använda nsupdate kommandot för att utföra säkra DDNS-uppdateringar. När du till exempel använder en Bind DNS-server genereras ett offentligt-privat nyckelpar (http://linux.yyz.us/nsupdate/). DNS-servern är konfigurerad (http://linux.yyz.us/dns/ddns-server.html) med den offentliga delen av nyckeln, så att den kan verifiera signaturen på begäran. Om du vill ange nyckelparet till nsupdateanvänder du -k alternativet för att DDNS-uppdateringsbegäran ska signeras.

När du använder en Windows DNS-server kan du använda Kerberos-autentisering med parametern -g i nsupdate, men den är inte tillgänglig i Windows-versionen av nsupdate. Om du vill använda Kerberos använder kinit du för att läsa in autentiseringsuppgifterna. Du kan till exempel läsa in autentiseringsuppgifter från en nyckelfliksfil och sedan nsupdate -g hämta autentiseringsuppgifterna från cachen.

Om det behövs kan du lägga till ett DNS-söksuffix till dina virtuella datorer. DNS-suffixet anges i filen /etc/resolve.conf . De flesta Linux-distributioner hanterar automatiskt innehållet i den här filen, så vanligtvis kan du inte redigera den. Du kan dock åsidosätta suffixet med hjälp av DHCP-klientens supersede kommando. Om du vill åsidosätta suffixet lägger du till följande rad i filen /etc/dhcp/dhclient.conf :

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