Atualizações do cache ao migrar o DNS de um provedor para outro

5

Essa pode ser uma pergunta específica do DNS do Windows ou uma pergunta geral sobre práticas recomendadas de DNS - não tenho certeza!

Nós migramos nossa provisão de DNS de terceiros do provedor A para o provedor B.

Percebi que nossos servidores DNS recursivos internos ainda tinham registros NS armazenados em cache para nossos domínios apontando para os servidores do provedor A, embora eu tenha mudado os servidores de nomes com nosso registrador há vários dias e, mesmo selecionando as propriedades dos registros em cache. um TTL de 1 dia.

Após 24 horas, quando os registros do NS nesse cache tiverem expirado, o servidor DNS retornará ao servidor TLD para obter uma atualização da autoridade ou optará pelo dns1.providera.com, já que é isso? foi armazenado em cache?

Nesse caso, combinei deixar os servidores do Provedor A por uma semana para permitir que as alterações se propagassem, portanto, o dns1.providera.com ainda está ativo e ainda forneceria os registros NS e SOA que disseram que dns1.providera.com. foi responsável por este domínio. Diante desse fato, o servidor DNS do Windows voltaria para o TLD e selecionaria as alterações de autoridade ou assumiria que tudo estava bem e renovaria os timestamps em seus registros do NS armazenados em cache?

Eu me pergunto qual seria a melhor abordagem para garantir que os caches captem isso. Eu deveria: -

(1) Deixe os servidores do Provedor A no local e ativos e espere pelos caches para recuperar ... basicamente o que estamos fazendo agora, o que parece ter problemas - talvez especificamente para servidores Windows, ou talvez mais amplamente. (2) Deixe os servidores do Provedor A no local, mas altere as informações de NS e / ou SOA que eles fornecem para informar aos caches que novos servidores estão no comando. (3) Remova os servidores do Provedor A após 2 * TTL para forçar os caches restantes a serem atualizados.

O problema com (2) é que no sistema do Provedor A não consigo alterar as informações de NS ou SOA para algo diferente de seus servidores.

O problema com (3) é que não tenho certeza de como um servidor DNS se comportaria nesse caso. Quando não conseguisse acessar os servidores de nomes em cache, descarregaria seu cache e tentaria uma pesquisa recursiva completa ou apenas retornaria um erro, forçando o usuário a limpar o cache manualmente?

Obrigado antecipadamente!

    
por JohnCC 01.06.2012 / 10:37

2 respostas

1

A arquitetura geral / fluxo dessas atualizações é:

  • Depois de atualizar os registros com seu registrador, eles atualizarão o banco de dados do registro, o que, por sua vez, atualizará o TLD NS primário e invisível.

  • As atualizações fluem do servidor secreto para os servidores secundários que realmente respondem às consultas. Isso acontece no período de tempo de atualização do TLD SOA, a menos que haja falhas e, nesse caso, o período de expiração do TLD SOA começa a passar.

  • Se tudo estiver bem para o fim, essas atualizações se propagam em um máximo de atualização de TLD SOA e seu registro atualizado aparece nos servidores de nomes de TLD voltados ao público.

  • Se você tiver consultado antes do registro atualizado aparecer nos servidores de nomes de TLD voltados ao público, terá que esperar que o TTL do registro expire antes de obter o registro atualizado.

Em conclusão:

  • Se todos os sistemas estiverem funcionando, você só precisará aguardar o tempo máximo de atualização do TLD SOA.

  • Se você fez sua consulta por meio de seu armazenamento em cache / recursivo muito cedo, talvez seja necessário aguardar a atualização do TLD SOA e o registro de TTL

  • Se houver uma interrupção, talvez seja necessário esperar por mais tempo.

  • Se os sistemas voltarem no último momento possível após uma interrupção, você não precisará esperar mais do que o TLD SOA expirar + gravar TTL. Isso é responsável pelo fato de você ter feito a consulta antes de os registros atualizados serem publicados em servidores de nomes de TLD voltados ao público.

  • Como a maioria dos servidores em cache / recursivos armazenará em cache os registros de sua zona, e seu provedor de DNS (corporativo?) provavelmente também terá servidores secundários, você precisará adicionar sua atualização SOA antes você começa a ver alterado para sua própria zona através dos novos servidores. É claro que, como eu fiz antes, você pode atualizar servidores novos e antigos para sua própria zona.

O que você poderia fazer:

  • Você pode usar uma ferramenta como dig ou nslookup para consultar diretamente os servidores de nomes de DPNs voltados ao público para descobrir se seus registros foram atualizados. Você também conhecerá os valores temporais de SOA do seu TLD.

  • Você pode usar as mesmas ferramentas para consultar os servidores secundários do novo provedor de DNS para descobrir se eles obtiveram a alteração.

  • Faça uma consulta recursiva completa por meio de servidores de nomes públicos (eles podem optar por ignorar isso de forma recursiva, mas a maioria não) para ver se a nova cadeia de consulta está funcionando bem.

  • Faça uma consulta recursiva completa localmente a partir de sua estação de trabalho cliente. Dig permite que você faça isso e irá ajudá-lo a determinar se sua cadeia de resolução está vinculada conforme o esperado.

  • O DNS pode ser assustador. Escreva comentários para minha resposta para que eu possa torná-lo mais compreensível. Eu vou olhar para isso no final do dia para ver se posso melhorar o que escrevi.

por 04.06.2012 / 01:19
-1

Não é realmente uma resposta, apenas alguns pensamentos.

The issue with (3) is that I'm not sure how a DNS server would behave in this case. When it couldn't reach the cached name servers, would it flush its cache and try a full recursive lookup, or would it just return an error, forcing the user to clear the cache manually?

O BCP 123 , seção 2.1.1, recomenda que o servidor DNS de cache apenas retorne um erro nesse caso. (BTW, o que você quer dizer com "usuário manualmente limpar o cache"? Usuário não pode fazer nada. Operador de servidor DNS pode, e, claro, admins não vai se importar e nem vai saber sobre o seu servidor inacessível (a menos que seja autoritativo para google.com).), portanto (3) não é uma opção muito boa.

Quanto a

After 24 hours when the NS records in this cache have expired, will the DNS server go back to the TLD server for an update on the authority

Eu estava prestes a pular e dizer "é claro que ele consultará o TLD", simplesmente porque, do contrário, ninguém conseguirá mudar sua hospedagem DNS. Embora, no segundo pensamento, existam algumas possibilidades:

Se algum servidor DNS de armazenamento em cache não receber consultas para seu domínio até que o TTL do NS expire, e depois após o TTL do NS expirar ele receba uma consulta, o servidor de cache não deve usar esses NS expirado e não tem outra opção além de consultar o TLD. No entanto, se algum servidor DNS em cache constantemente consultou seu domínio, seu servidor antigo com cada consulta pode enviar uma cópia dos registros NS (na seção de autoridade), os servidores de armazenamento em cache também podem armazenar os registros para seu novo TTL e, portanto, TTL tecnicamente pode nunca expirar (?!)

Suponho que o TLD será questionado simplesmente porque não posso acreditar que um problema tão comum não tenha solução. Minha esperança é que os magos aqui nos iluminem ... @Alnitak.

    
por 01.06.2012 / 17:12