Utilizar o DNS dinâmico para registar nomes de anfitrião no seu próprio servidor DNS
O Azure fornece resolução de nomes para máquinas virtuais (VMs) 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. A utilização dos seus próprios servidores DNS dá-lhe a capacidade de adaptar a sua solução de DNS às suas necessidades específicas. Por exemplo, talvez seja necessário acessar recursos locais por meio do controlador de domínio do Ative 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 não quiser usar essa opção, você pode 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 registros diretamente em seus servidores DNS, portanto, arranjos alternativos geralmente são necessários. Este artigo descreve alguns cenários comuns, com alternativas.
Clientes Windows
Clientes Windows que não ingressaram no domínio tentam atualizações DDNS não seguras quando inicializam ou quando o endereço IP muda. 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 definir o sufixo na VM, por meio da interface do usuário ou do PowerShell.
Clientes Windows ingressados no domínio registram seus endereços IP com o controlador de domínio usando DDNS seguro. O processo de associação de 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 com o servidor DNS na inicialização. Eles assumem que o servidor DHCP (Dynamic Host Configuration Protocol) faz isso. Os servidores DHCP do Azure não têm as credenciais para registrar registros em seu servidor DNS. Você pode usar uma ferramenta chamada nsupdate
, que está incluída no pacote Bind, para enviar atualizações DDNS. Como o protocolo DDNS é padronizado, você pode usar nsupdate
mesmo quando não estiver usando Bind no servidor DNS.
Você pode usar os ganchos fornecidos pelo cliente DHCP para criar e manter a entrada de nome de host no servidor DNS. Durante o ciclo DHCP, o cliente executa os scripts no /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 nsupdate
comando para executar atualizações DDNS seguras. Por exemplo, quando você usa um servidor DNS de ligação, um par de chaves público-privado é 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 possa verificar a assinatura na solicitação. Para fornecer o par de chaves para nsupdate
, use a -k
opção para que a solicitação de atualização DDNS seja assinada.
Ao usar um servidor DNS do Windows, você pode usar a autenticação Kerberos com o -g
parâmetro , nsupdate
mas ele não está disponível na versão Windows do nsupdate
. Para usar Kerberos, use kinit
para carregar as credenciais. Por exemplo, você pode carregar credenciais de um arquivo keytab) e, em seguida nsupdate -g
, pega as credenciais do cache.
Se necessário, você pode adicionar um sufixo de pesquisa DNS às suas VMs. O sufixo /etc/resolv.conf
DNS é especificado no arquivo. A maioria das distros Linux gerencia automaticamente o conteúdo desse arquivo, então geralmente você não pode editá-lo. Você pode substituir o sufixo usando o comando do supersede
cliente DHCP. Para substituir o sufixo, adicione a seguinte linha ao /etc/dhcp/dhclient.conf
arquivo:
supersede domain-name <required-dns-suffix>;