Kendi DNS sunucunuzda ana bilgisayar adlarını kaydetmek için dinamik DNS kullanma

Azure, sanal makineler (VM) ve rol örnekleri için ad çözümlemesi sağlar. Ad çözümleme gereksinimleriniz Azure'ın varsayılan DNS'sinin sağladığı özellikleri aştığında, kendi DNS sunucularınızı sağlayabilirsiniz. Kendi DNS sunucularınızı kullanmak, DNS çözümünüzü kendi özel ihtiyaçlarınıza uyacak şekilde uyarlamanıza olanak sağlar. Örneğin, Active Directory etki alanı denetleyiciniz aracılığıyla şirket içi kaynaklara erişmeniz gerekebilir.

Özel DNS sunucularınız Azure VM'leri olarak barındırıldığında, konak adlarını çözümlemek için aynı sanal ağ için ana bilgisayar adı sorgularını Azure'a iletebilirsiniz. Bu seçeneği kullanmak istemiyorsanız, dinamik DNS (DDNS) kullanarak VM ana bilgisayar adlarınızı DNS sunucunuza kaydedebilirsiniz. Azure' ın DNS sunucularınızda doğrudan kayıt oluşturmak için kimlik bilgileri yoktur, bu nedenle genellikle alternatif düzenlemeler gereklidir. Alternatifleri olan bazı yaygın senaryolar şunlardır:

Windows istemcileri

Etki alanına katılmamış Windows istemcileri, önyüklendiğinde veya IP adresleri değiştiğinde güvenli olmayan DDNS güncelleştirmelerini dener. DNS adı ana bilgisayar adı ve birincil DNS sonekidir. Azure birincil DNS sonekini boş bırakır, ancak son eki kullanıcı arabirimi veya PowerShell aracılığıyla VM'de ayarlayabilirsiniz.

Etki alanına katılmış Windows istemcileri, güvenli DDNS kullanarak IP adreslerini etki alanı denetleyicisine kaydeder. Etki alanına katılma işlemi istemcide birincil DNS sonekini ayarlar ve güven ilişkisini oluşturur ve korur.

Linux istemcileri

Linux istemcileri genellikle başlangıçta KENDILERINI DNS sunucusuna kaydetmez, DHCP sunucusunun yaptığını varsayarlar. Azure'ın DHCP sunucuları, DNS sunucunuza kayıt kaydetmek için kimlik bilgilerine sahip değildir. DDNS güncelleştirmelerini göndermek için Bağlama paketine dahil edilen adlı nsupdatebir araç kullanabilirsiniz. DDNS protokolü standartlaştırıldığından, DNS sunucusunda Bind kullanmadığınızda bile kullanabilirsiniz nsupdate .

DNS sunucusunda konak adı girdisini oluşturmak ve korumak için DHCP istemcisi tarafından sağlanan kancaları kullanabilirsiniz. DHCP döngüsü sırasında istemci betikleri /etc/dhcp/dhclient-exit-hooks.d/ içinde yürütür. kullanarak yeni IP adresini nsupdatekaydetmek için kancaları kullanabilirsiniz. Örnek:

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

Güvenli DDNS güncelleştirmeleri gerçekleştirmek için komutunu da kullanabilirsiniz nsupdate . Örneğin, Bağlama DNS sunucusu kullanırken ortak-özel anahtar çifti oluşturulur (http://linux.yyz.us/nsupdate/). DNS sunucusu anahtarın ortak bölümüyle yapılandırılır (http://linux.yyz.us/dns/ddns-server.html), böylece istekte imzayı doğrulayabilir. için anahtar çiftini nsupdatesağlamak için, DDNS güncelleştirme isteğinin imzalanması için seçeneğini kullanın -k .

Bir Windows DNS sunucusu kullanırken, içinde parametresiyle nsupdateKerberos kimlik doğrulamasını -g kullanabilirsiniz, ancak windows sürümünde nsupdatekullanılamaz. Kerberos kullanmak için kimlik bilgilerini yüklemek için kullanın kinit . Örneğin, bir anahtar sekmesi dosyasından kimlik bilgilerini yükleyebilirsiniz), ardından nsupdate -g önbellekten kimlik bilgilerini alır.

Gerekirse, VM'lerinize bir DNS arama soneki ekleyebilirsiniz. DNS son eki /etc/resolv.conf dosyasında belirtilir. Çoğu Linux dağıtımı bu dosyanın içeriğini otomatik olarak yönetir, bu nedenle genellikle dosyayı düzenleyemezsiniz. Ancak, DHCP istemcisinin supersede komutunu kullanarak son eki geçersiz kılabilirsiniz. Son eki geçersiz kılmak için /etc/dhcp/dhclient.conf dosyasına aşağıdaki satırı ekleyin:

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