Menggunakan DNS dinamis untuk mendaftarkan nama host di server DNS Anda sendiri

Azure menyediakan resolusi nama untuk instans peran dan mesin virtual (VM). Saat resolusi nama Anda harus melebihi kemampuan yang disediakan oleh DNS default Azure, Anda bisa menyediakan server DNS Anda sendiri. Menggunakan server DNS Anda sendiri memberi Anda kemampuan untuk menyesuaikan solusi DNS agar sesuai dengan kebutuhan khusus Anda sendiri. Misalnya, Anda mungkin perlu mengakses sumber daya lokal melalui pengontrol domain Active Directory Anda.

Saat server DNS kustom dihosting sebagai VM Azure, Anda dapat meneruskan kueri nama host untuk jaringan virtual yang sama ke Azure untuk mengatasi nama host. Jika Anda tidak ingin menggunakan opsi ini, Anda dapat mendaftarkan nama host VM Anda di server DNS Anda menggunakan DNS dinamis (DDNS). Azure tidak memiliki kredensial untuk membuat catatan secara langsung dalam server DNS Anda, sehingga pengaturan alternatif sering diperlukan. Beberapa skenario umum, dengan alternatif berikut:

Klien Windows

Klien Windows yang tidak bergabung dengan domain mencoba pembaruan DDNS yang tidak aman saat melakukan booting, atau ketika alamat IP berubah. Nama DNS adalah nama host ditambah akhiran DNS utama. Azure membiarkan akhiran DNS utama kosong, tetapi Anda dapat mengatur akhiran dalam VM, melalui antarmuka pengguna atau PowerShell.

Klien Windows yang bergabung dengan domain mendaftarkan alamat IP-nya dengan pengontrol domain menggunakan DDNS aman. Proses gabungan domain menetapkan akhiran DNS utama pada klien dan membuat serta memelihara hubungan kepercayaan.

Klien Linux

Klien Linux umumnya tidak mendaftarkan diri dengan server DNS saat startup, klien menganggap server DHCP melakukannya. Server DHCP Azure tidak memiliki kredensial untuk mendaftarkan rekaman di server DNS Anda. Anda dapat menggunakan alat yang disebut nsupdate, yang disertakan dalam paket Bind, untuk mengirim pembaruan DDNS. Karena protokol DDNS distandarisasi, Anda dapat menggunakan nsupdate bahkan ketika Anda tidak menggunakan Bind di server DNS.

Anda dapat menggunakan hook yang disediakan oleh klien DHCP untuk membuat dan memelihara entri nama host dalam server DNS. Selama siklus DHCP, klien menjalankan skrip di /etc/dhcp/dhclient-exit-hooks.d/ . Anda dapat menggunakan hook untuk mendaftarkan alamat IP baru menggunakan nsupdate. Contohnya:

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

Anda juga dapat menggunakan perintah nsupdate untuk melakukan pembaruan DDNS yang aman. Misalnya, saat Anda menggunakan server DNS Bind, pasangan kunci publik-privat dihasilkan (http://linux.yyz.us/nsupdate/). Server DNS dikonfigurasi (http://linux.yyz.us/dns/ddns-server.html) dengan bagian publik dari kunci, sehingga dapat memverifikasi tanda tangan pada permintaan. Untuk menyediakan pasangan kunci pada nsupdate, gunakan opsi -k, agar permintaan pembaruan DDNS ditandatangani.

Saat menggunakan server DNS Windows, Anda dapat menggunakan autentikasi Kerberos dengan parameter -g di nsupdate, tetapi tidak tersedia dalam versi Windows nsupdate. Untuk menggunakan Kerberos, gunakan kinit untuk memuat kredensial. Misalnya, Anda dapat memuat kredensial dari file keytab), lalu nsupdate -g mengambil kredensial, dari cache.

Bila perlu, Anda dapat menambahkan akhiran pencarian DNS ke VM Anda. Akhiran DNS ditentukan dalam file /etc/resolv.conf. Sebagian besar distro Linux secara otomatis mengelola konten file ini, jadi biasanya Anda tidak dapat mengeditnya. Namun, Anda dapat mengganti akhiran menggunakan perintah supersede klien DHCP. Untuk mengganti akhiran, tambahkan baris berikut ke file /etc/dhcp/dhclient.conf:

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