Použití dynamického DNS k registraci názvů hostitelů na vlastním serveru DNS

Azure poskytuje překlad názvů pro virtuální počítače a instance rolí. Pokud váš překlad IP adres překračuje možnosti, které poskytuje výchozí DNS Azure, můžete zadat vlastní servery DNS. Použití vlastních serverů DNS vám umožní přizpůsobit řešení DNS tak, aby vyhovovalo vašim konkrétním potřebám. Můžete například potřebovat přístup k místním prostředkům prostřednictvím řadiče domény služby Active Directory.

Když jsou vaše vlastní servery DNS hostované jako virtuální počítače Azure, můžete předávat dotazy na název hostitele pro stejnou virtuální síť do Azure a překládat tak názvy hostitelů. Pokud tuto možnost nechcete použít, můžete názvy hostitelů virtuálních počítačů zaregistrovat na serveru DNS pomocí dynamického DNS (DDNS). Azure nemá přihlašovací údaje k přímému vytváření záznamů na vašich serverech DNS, takže jsou často potřeba alternativní uspořádání. Následují některé běžné scénáře s alternativami:

Klienti Windows

Klienti Windows, kteří nejsou připojení k doméně, se pokusí o nezabezpečené aktualizace DDNS při spuštění nebo při změně ip adresy. Název DNS je název hostitele a přípona primárního DNS. Azure ponechá příponu primárního DNS prázdnou, ale příponu můžete nastavit ve virtuálním počítači prostřednictvím uživatelského rozhraní nebo PowerShellu.

Klienti Windows připojení k doméně registrují své IP adresy v řadiči domény pomocí zabezpečené DDNS. Proces připojení k doméně nastaví na klientovi primární příponu DNS a vytvoří a udržuje vztah důvěryhodnosti.

Klienti s Linuxem

Klienti s Linuxem se obvykle při spuštění neregistrují u serveru DNS, ale předpokládají, že to dělá server DHCP. Servery DHCP Azure nemají přihlašovací údaje k registraci záznamů na serveru DNS. K odesílání aktualizací DDNS můžete použít nástroj s názvem nsupdate, který je součástí balíčku Bind. Vzhledem k tomu, že protokol DDNS je standardizovaný, můžete použít nsupdate i v případě, že na serveru DNS nepoužíváte bind.

K vytvoření a údržbě položky názvu hostitele na serveru DNS můžete použít hooky, které poskytuje klient DHCP. Během cyklu DHCP klient spouští skripty v souboru /etc/dhcp/dhclient-exit-hooks.d/. Pomocí hooků můžete zaregistrovat novou IP adresu pomocí nsupdate. Příklad:

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

K provádění zabezpečených nsupdate aktualizací DDNS můžete použít také příkaz . Pokud například používáte vazbu serveru DNS, vygeneruje se pár veřejného a privátního klíče (http://linux.yyz.us/nsupdate/). Server DNS je nakonfigurovaný (http://linux.yyz.us/dns/ddns-server.html) s veřejnou částí klíče, aby mohl ověřit podpis na požadavku. Pokud chcete poskytnout pár klíč-klíč , nsupdatepoužijte -k možnost , aby se žádost o aktualizaci DDNS podepsala.

Pokud používáte server DNS systému Windows, můžete použít ověřování protokolem Kerberos s parametrem -g v nsupdate, ale není k dispozici ve verzi nástroje nsupdate. Pokud chcete použít Protokol Kerberos, použijte kinit k načtení přihlašovacích údajů příkaz . Můžete například načíst přihlašovací údaje ze souboru keytab) a pak nsupdate -g je z mezipaměti vyzvednout.

V případě potřeby můžete k virtuálním počítačům přidat příponu hledání DNS. Přípona DNS je zadaná v souboru /etc/resolv.conf . Většina distribucí Linuxu automaticky spravuje obsah tohoto souboru, takže ho obvykle nemůžete upravovat. Příponu ale můžete přepsat pomocí příkazu klienta supersede DHCP. Pokud chcete příponu přepsat, přidejte do souboru /etc/dhcp/dhclient.conf následující řádek:

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