Compartilhar via


Usar o DNS dinâmico para registrar os nomes do host em seu próprio servidor DNS

Azure fornece resolução de nomes para VMs (máquinas virtuais) e instâncias de função. Quando suas necessidades de resolução de nomes excederem os recursos fornecidos pelo DNS (Sistema de Nomes de Domínio) padrão do Azure, você poderá fornecer seus próprios servidores DNS. Usar seus próprios servidores DNS permite que você personalize sua solução de DNS para ajustá-la às suas próprias necessidades específicas. Por exemplo, talvez seja necessário acessar recursos locais por meio do controlador de domínio do Active Directory.

Quando seus servidores DNS personalizados são hospedados como VMs do Azure, você pode encaminhar consultas de nome de host para a mesma rede virtual para o Azure para resolver nomes de host. Se você não quiser usar essa opção, poderá registrar seus nomes de host de VM em seu servidor DNS usando DNS dinâmico (DDNS). O Azure não tem as credenciais para criar diretamente registros nos servidores DNS, de modo que disposições alternativas muitas vezes são necessárias. Este artigo descreve alguns cenários comuns, com alternativas.

Clientes do Windows

Os clientes Windows não ingressados no domínio tentam atualizações DDNS não seguras quando inicializam ou quando seu endereço IP é alterado. O nome DNS é o nome do host mais o sufixo DNS primário. O Azure deixa o sufixo DNS primário em branco, mas você pode defini-lo na VM, por meio da interface do usuário ou do PowerShell.

Os clientes do Windows ingressados no domínio registram seus endereços IP com o controlador de domínio usando DDNS seguro. O processo de ingresso no domínio define o sufixo DNS primário no cliente e cria e mantém a relação de confiança.

Clientes Linux

Os clientes Linux geralmente não se registram no servidor DNS na inicialização. Eles assumem que o servidor DHCP faz isso. Os servidores DHCP do Azure não têm as credenciais para registrar registros em seu servidor DNS. Use uma ferramenta chamada nsupdate, que está incluída no pacote de Associação, para enviar atualizações do DDNS. Como o protocolo DDNS é padronizado, você pode usánsupdate mesmo quando não estiver usando o Bind no servidor DNS.

Você pode usar os ganchos que são fornecidos pelo cliente DHCP para criar e manter a entrada do nome do host no servidor DNS. Durante o ciclo DHCP, o cliente executa os scripts em /etc/dhcp/dhclient-exit-hooks.d/. Você pode usar os ganchos para registrar o novo endereço IP usando nsupdate. Por exemplo:

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

Você também pode usar o comando nsupdate para executar atualizações de DDNS seguras. Por exemplo, quando você usa um servidor DNS de associação, um par de chaves pública-privada é gerado (http://linux.yyz.us/nsupdate/). O servidor DNS é configurado (http://linux.yyz.us/dns/ddns-server.html) com a parte pública da chave para que ele possa verificar a assinatura na solicitação. Para fornecer o par de chaves para nsupdate, use a opção -k para que a solicitação de atualização do DDNS seja assinada.

Ao usar um servidor DNS do Windows, você pode usar a autenticação Kerberos com o parâmetro -g no nsupdate, mas ela não está disponível na versão Windows do nsupdate. Para usar o Kerberos, use kinit para carregar as credenciais. Por exemplo, você pode carregar credenciais de um arquivo keytab) e, em seguida, nsupdate -g seleciona as credenciais do cache.

Se necessário, você pode adicionar um sufixo de pesquisa DNS em suas VMs. O sufixo DNS é especificado no arquivo /etc/resolv.conf. A maioria das distribuições de Linux gerencia automaticamente o conteúdo desse arquivo, então, normalmente você não pode editá-lo. Você pode substituir o sufixo usando o comando supersede do cliente DHCP. Para substituir o sufixo, adicione a seguinte linha ao arquivo /etc/dhcp/dhclient.conf:

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