Meu entendimento da funcionalidade principal do DNS é fornecer um serviço de nomeação / mapeamento entre nomes de domínio (por exemplo blah-whatever.com
) e endereços IP (por exemplo, 100.2.3.4 ).
Além disso, meu entendimento de como os servidores DNS da Internet funcionam é que, quando um registro de mapeamento de domínio / IP é alterado (por exemplo, alterando blah-whatever.com
agora para 105.2.3.4 etc.), essa alteração precisa ser propagada por todos os servidores DNS do mundo. antes que a mudança possa ser considerada "completa". Às vezes, esse período de propagação pode durar até 24 horas.
Então, para começar, se alguma coisa que eu disse até agora estiver errada ou incorreta, comece me corrigindo!
Supondo que eu esteja mais ou menos correto, não entendo como empresas como CloudFlare ou DynamicDNS podem oferecer serviços do tipo "rollover instantâneo", nos quais você altera seu registro DNS com eles e - boom - a mudança afeta instantaneamente.
Entendo que existe algo chamado "TTL" (presumo que é hora de viver?!?) Que desempenha um papel nesse recurso de rolagem instantânea, mas como já estou confuso com o recurso, é difícil entender o que esse TTL é ou a qual propósito ele serve.
Por isso, pergunto: o que é o Dynamic DNS e seus concorrentes que lhes permite alterar os mapeamentos de DNS instantaneamente (sem levar 24 horas para propagar as alterações de DNS como todos os demais) e como o TTL se encaixa nesse processo? Desde já, obrigado.
fonte
Você tem alguns conceitos errados, então tentarei explicar todo o processo. (Eu sou bom com os detalhes, pois participei da operação de um serviço DNS dinâmico público).
Digamos que seu domínio seja example.com , e digamos domain.com hospedado em alguma empresa dinâmica de DNS, vamos chamá-lo de lightfastdns.net (nome fictício). Seu domínio contém registro DNS - somehost.example.com , que atualmente aponta para 1.1.1.1 .
Quando você faz uma alteração no seu registro DNS, essa alteração é submetida primeiro a algum servidor intermediário, operado pela lightfastdns.net, por exemplo, updates.lightfastdns.net . Isso acontece quase instantaneamente (em fração de segundo). Você pode enviar sua atualização via interface da web ou com um cliente de atualizações dinâmicas ou por meio de alguma API. Isso não importa, em qualquer caso, essa atualização chegará em algum servidor que lida com atualizações de DNS.
Este servidor de atualizações envia seu registro atualizado (digamos, 1.2.3.4 ) para o servidor DNS " mestre " do seu domínio. Este servidor DNS também é operado por lightfastdns.net . Quão rápido isso acontece: depende de como o provedor de DNS projetou seu software. (Pode ser instantaneamente e a cada 24 horas. Por exemplo, o gandi.net envia atualizações de DNS uma vez por hora.) É claro que nosso lightfastdns.net fará isso instantaneamente.
Este servidor DNS mestre enviará atualizações para servidores DNS escravos , por exemplo, domínio.com. Esses servidores também são operados pela mesma empresa lightfastdns.net . Quão rápido isso acontece: com o software moderno, o mestre envia instantaneamente uma mensagem de notificação aos escravos , e eles recebem instantaneamente o registro atualizado do mestre. com o software mais antigo, tínhamos valores REFRESH e RETRY no registro SOA, mas hoje raramente é relevante. Obviamente, nosso lightfastdns.net implementa o NOTIFY e as atualizações se propagam instantaneamente.
O que temos agora é que todos os servidores "autorizados" do seu domínio receberam o registro atualizado ( 1.2.3.4 ). Para lightfastdns.net , foram necessários dois segundos.
Agora, mudaremos para a casa de Ivan na Rússia, e Ivan deseja abrir " somehost.example.com " em seu navegador. Se ele nunca abriu isso antes, seu navegador não sabe o endereço, então o navegador perguntará ao seu sistema operacional. Mas, se ele visitou o site recentemente, o endereço ainda pode ser armazenado no navegador e ele usará o endereço antigo (obsoleto)! Por quanto tempo ? - Depende do navegador, o Google Chrome, por exemplo, armazena registros DNS apenas por até 60 segundos. Temos um atraso de até 60 segundos . por esse fato, eu diria que a alteração no DNS ainda não se propagou para este navegador.
De qualquer forma, após 60 segundos ou imediatamente, o navegador solicitará ao sistema operacional que obtenha o endereço. O sistema operacional já pode saber a resposta (antiga, obsoleta) e devolvê-la. Nesse caso, eu diria que o novo registro ainda não se propagou para o sistema operacional de Ivan. Por quanto tempo o sistema operacional armazenará o valor antigo - os modernos sistemas operacionais são controlados pelo parâmetro TTL . TTL no DNS define por quanto tempo um registro pode ser armazenado no cache. Nosso lightfastdns.net permitiu o uso de TTL bastante baixo - 30 segundos, então tivemos um novo atraso de até 30 segundos, no geral - 90 segundos até agora.
Se o sistema operacional não souber a resposta, ou se a resposta que ela sabia agora estiver desatualizada pelo TTL, o sistema operacional solicitará o resolvedor de DNS (o ISP de Ivan atribuiu a ele um resolvedor de DNS dns.moscow-telecom.ru ). Aqui, o registro antigo pode ser armazenado em cache até segundos TTL ou o dns.moscow-telecom.ru pode não saber o endereço. Temos mais 30 segundos, pois o dns.moscow-telecom.ru também armazena em cache o DNS por não mais que o valor TTL. Temos um atraso de 120 segundos . Foi o que chamou a atenção de que o novo registro DNS ainda não havia se propagado para os servidores DNS da Moscow-Telecom .
Se o servidor DNS do ISP não sabe a resposta, ou se a resposta que sabia já é obsoleto porque é TTL expirou - dns.moscow-telecom.ru pedirá um dos AUTORIDADE servidores DNS para example.net (você se lembra deles?). Aqueles obtiveram a alteração há cerca de 118 segundos e retornarão a nova resposta. Essa resposta será imediatamente enviada por cadeia para o resolvedor de DNS, para o SO e para o navegador de Ivan.
Assim, a propagação do registro levou de 2 a 120 segundos, dependendo do estado de vários caches. TTL mais longo - atrasos mais longos podem ocorrer.
Para torná-lo completo - alguns ISPs violam os padrões e os registros de cache por muito tempo. Alguns sistemas operacionais mais antigos mantiveram registros antigos por muito tempo e navegadores mais antigos também. Mas para a maioria dos usuários, ele funcionará conforme o esperado.
fonte
Não. A alteração não precisa se propagar para todos os servidores DNS do mundo .
Se você alterar alguma coisa e alguém consultar o registro alterado no servidor DNS, o resultado será instantâneo.
O problema é se você consultou esse nome antes e ele foi armazenado em cache. Então você receberá o IP antigo até que o cache expire. No DNS, você pode definir por quanto tempo uma consulta antiga é válida e esse período geralmente é definido para vários dias. Para o DynDNS, normalmente é definido como inferior, mas nem todos os resolvedores de DNS respeitam isso.
fonte