Uso de DNS dinámico para registrar nombres de host en su propio servidor DNS
Azure ofrece resolución de nombres para las máquinas virtuales y las instancias de rol. Cuando las necesidades de resolución de nombres superan las funcionalidades proporcionadas por el sistema de nombres de dominio (DNS) predeterminado de Azure, puede proporcionar sus propios servidores DNS. El uso de sus propios servidores DNS le ofrece la capacidad de personalizar su solución DNS para satisfacer sus propias necesidades específicas. Por ejemplo, es posible que tenga que acceder a los recursos locales a través del controlador de dominio de Active Directory.
Cuando los servidores DNS personalizados se hospedan como máquinas virtuales de Azure, puede reenviar consultas de nombre de host para la misma red virtual a Azure para resolver los nombres de host. Si no desea usar esta opción, puede registrar los nombres de host de la máquina virtual en el servidor DNS mediante DNS dinámico (DDNS). Azure no tiene las credenciales para crear directamente los registros en los servidores DNS, por lo que a menudo se necesitan medidas alternativas. En este artículo se describen algunos escenarios comunes, con alternativas.
Clientes Windows
Los clientes Windows no unido a un dominio intentan actualizaciones de DDNS no seguros cuando arrancan o cuando cambia su dirección IP. El nombre DNS es el nombre de host más el sufijo DNS primario. Azure deja en blanco el sufijo DNS principal, pero puede establecerlo en la VM con la interfaz de usuario o mediante PowerShell.
Los clientes Windows unidos a dominio registran sus direcciones IP con el controlador de dominio mediante DDNS seguro. El proceso de unión a dominio establece el sufijo DNS primario en el cliente y crea y mantiene la relación de confianza.
Clientes Linux
Por lo general, los clientes Linux no se registran con el servidor DNS al iniciarse. Asumen que el servidor del Protocolo de configuración dinámica de host (DHCP) lo hace. Los servidores DHCP de Azure no tienen las credenciales para registrar registros en el servidor DNS. Puede usar una herramienta denominada nsupdate
, que se incluye en el paquete Bind, para enviar las actualizaciones de DDNS. Dado que el protocolo DDNS está estandarizado, puede usar nsupdate
incluso cuando no use Bind en el servidor DNS.
Puede usar los enlaces que proporciona el cliente DHCP para crear y mantener la entrada del nombre de host en el servidor DNS. Durante el ciclo DHCP, el cliente ejecuta los scripts en /etc/dhcp/dhclient-exit-hooks.d/
. Puede usar los enlaces para registrar la nueva dirección IP mediante nsupdate
. Por ejemplo:
#!/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
También puede usar el comando nsupdate
para realizar actualizaciones de DDNS seguras. Por ejemplo, cuando se usa un servidor DNS de enlace, se genera un par de claves pública-privada (http://linux.yyz.us/nsupdate/
). El servidor DNS está configurado (http://linux.yyz.us/dns/ddns-server.html
) con la parte pública de la clave para que pueda comprobar la firma en la solicitud. Para proporcionar el par de claves para nsupdate
, use la opción -k
para que se firme la solicitud de actualización de DDNS.
Cuando usa un servidor DNS de Windows, puede usar la autenticación Kerberos con el parámetro -g
en nsupdate
, pero no está disponible en la versión de Windows de nsupdate
. Para usar Kerberos, utilice kinit
para cargar las credenciales. Por ejemplo, puede cargar credenciales desde un archivo keytab) y, a continuación, nsupdate -g
recoger las credenciales de la memoria caché.
En caso de ser necesario, puede agregar un sufijo de búsqueda DNS a las máquinas virtuales. El sufijo DNS se especifica en el archivo/etc/resolv.conf
. La mayoría de las distribuciones de Linux administran automáticamente el contenido de este archivo, por lo que normalmente no se puede editar. Puede invalidar el sufijo mediante el comando supersede
del cliente DHCP. Para invalidar el sufijo, agregue la siguiente línea al archivo /etc/dhcp/dhclient.conf
:
supersede domain-name <required-dns-suffix>;