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 (VM) e instâncias de função. Quando a resolução de nomes precisar de exceder as capacidades fornecidas pelo DNS predefinido do Azure, pode fornecer os seus próprios servidores DNS. A utilização dos seus próprios servidores DNS permite-lhe adaptar a sua solução de DNS de acordo com as suas necessidades específicas. Por exemplo, poderá ter de aceder aos recursos no local através do controlador de domínio do Active Directory.
Quando os servidores DNS personalizados estão alojados como VMs do Azure, pode reencaminhar consultas de nome de anfitrião para a mesma rede virtual para o Azure para resolver nomes de anfitrião. Se não quiser utilizar esta opção, pode registar os nomes de anfitrião da VM no servidor DNS através de DNS dinâmico (DDNS). O Azure não tem as credenciais para criar registos diretamente nos servidores DNS, pelo que são muitas vezes necessárias disposições alternativas. Seguem-se alguns cenários comuns, com alternativas:
Clientes Windows
Os clientes Windows não associados a um domínio tentam atualizações DDNS não protegidas quando arrancam ou quando o respetivo endereço IP é alterado. O nome DNS é o nome do anfitrião e o sufixo DNS principal. O Azure deixa o sufixo DNS principal em branco, mas pode definir o sufixo na VM, através da interface de utilizador ou do PowerShell.
Os clientes Windows associados a um domínio registam os respetivos endereços IP no controlador de domínio através do DDNS seguro. O processo de associação a um domínio define o sufixo DNS principal no cliente e cria e mantém a relação de confiança.
Clientes Linux
Geralmente, os clientes Linux não se registam no servidor DNS no arranque, partem do princípio de que o servidor DHCP o faz. Os servidores DHCP do Azure não têm as credenciais para registar registos no servidor DNS. Pode utilizar uma ferramenta chamada nsupdate
, que está incluída no pacote Bind, para enviar atualizações de DDNS. Uma vez que o protocolo DDNS está padronizado, pode utilizar nsupdate
mesmo quando não estiver a utilizar o Bind no servidor DNS.
Pode utilizar os hooks fornecidos pelo cliente DHCP para criar e manter a entrada de nome de anfitrião no servidor DNS. Durante o ciclo DHCP, o cliente executa os scripts em /etc/dhcp/dhclient-exit-hooks.d/. Pode utilizar os hooks para registar o novo endereço IP com 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
Também pode utilizar o nsupdate
comando para executar atualizações DDNS seguras. Por exemplo, quando estiver a utilizar um servidor DNS do Bind, é gerado um par de chaves público-privado (http://linux.yyz.us/nsupdate/
). O servidor DNS está configurado (http://linux.yyz.us/dns/ddns-server.html
) com a parte pública da chave, para que possa verificar a assinatura no pedido. Para fornecer o par de chaves para nsupdate
, utilize a opção -k
para que o pedido de atualização DDNS seja assinado.
Quando estiver a utilizar um servidor DNS do Windows, pode utilizar a autenticação Kerberos com o -g
parâmetro em nsupdate
, mas não está disponível na versão do Windows do nsupdate
. Para utilizar o Kerberos, utilize kinit
para carregar as credenciais. Por exemplo, pode carregar credenciais de um ficheiro keytab e, em seguida nsupdate -g
, escolher as credenciais da cache.
Se necessário, pode adicionar um sufixo de pesquisa DNS às suas VMs. O sufixo DNS é especificado no ficheiro /etc/resolv.conf . A maioria das distribuições do Linux gerem automaticamente o conteúdo deste ficheiro, pelo que normalmente não o pode editar. No entanto, pode substituir o sufixo com o comando do supersede
cliente DHCP. Para substituir o sufixo, adicione a seguinte linha ao ficheiro /etc/dhcp/dhclient.conf :
supersede domain-name <required-dns-suffix>;