Como o DynamicDNS age imediatamente?

16

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.comagora 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.

pnongrata
fonte

Respostas:

3

Minha resposta anterior continha informações falsas porque eu tinha alguns conceitos errados sobre como as alterações no DNS são propagadas. Então, aqui está uma segunda tentativa. Para uma explicação detalhada, encorajo você a ler a resposta de Alex .

Na minha opinião, existem dois fatores envolvidos na rapidez com que uma alteração no DNS se propaga:

  1. Transferências de zona entre os servidores DNS autorizados para uma zona.
  2. O TTL definido para registros únicos nessa zona.

Transferências de zona

Como você precisa de dois servidores de nomes distintos para gerenciar uma zona, você deseja que esses servidores tenham rapidamente a versão mais recente dessa zona disponível para eles.

Isso é obtido puxando a versão mais recente da zona em um intervalo fixo ou aguardando um NOTIFY de um servidor de nomes autorizado.

Como esse mecanismo está sob controle total de quem executa os servidores de nomes, qualquer atraso nessa área pode ser totalmente controlado.

TTL

O TTL é um tempo limite especificado para cada registro de recurso em uma zona. Esse valor define por quanto tempo o registro deve ser armazenado em cache por provedores de DNS não-autorizados.

Lembre-se de que esse valor só será reproduzido se um registro existente for alterado. Novos registros ainda não podem ser armazenados em cache.

Dado que o TTL também está sob controle total de quem controla a zona, o atraso também pode ser totalmente controlado.

Der Hochstapler
fonte
Obrigado @ Oliver (+1) - Parece que uma "substituição instantânea" é uma lenda urbana! Acho que minha pergunta seguinte seria: por que não editar apenas meus registros DNS? É porque essas empresas oferecem APIs para que as alterações no DNS possam ser automatizadas quando determinados eventos são acionados? Acho que estou procurando para que finalidade eles servem em primeiro lugar!
Pnongrata
11
@ zharvey: Você pode, é claro, executar seu próprio servidor DNS e editar suas zonas diretamente. Mas você precisa fornecer pelo menos 2 servidores DNS distintos que sejam autoritários para sua zona para serem aceitos pelos servidores raiz. As pessoas geralmente não têm esse tipo de infraestrutura disponível para elas.
Der Hochstapler
11
Você pode editar os registros DNS você mesmo. Você só precisa executar um par de servidores de nomes (em diferentes sub-redes). No entanto, o DynDNS funciona para você e permite atualizações relativamente fáceis. Basicamente, você está terceirizando algum trabalho.
Hennes
@ zharvey é claro que você pode ter uma "rolagem instantânea". Se você quer dizer isso literalmente, deixe as duas máquinas mudarem seus IPs (o que nem sempre é possível). Fora isso, você sempre terá um certo atraso. Normalmente, se os serviços devem ser movidos para servidores diferentes, o administrador altera o TTL antecipadamente (por exemplo, reduza-o para algo como 1h) - portanto, quando a alteração ocorrer, o atraso será mínimo. Depois disso, o TTL será aumentado novamente (por exemplo, 24h ou mais) para permitir um melhor cache e respostas mais rápidas nas consultas DNS. Mas isso geralmente não envolve DynDNS;)
Izzy
2
Desculpe por ser rude, mas esta resposta está errada em quase todos os pontos.
28412 Alex
18

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 .

  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.

  2. 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.

  3. 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.

  1. 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.

  2. 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.

  3. 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 .

  4. 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.

Alex
fonte
Lamento muito que tenha saído tão detalhado. Talvez alguém queira fazer uma variante mais curta (como uma resposta separada) - você é bem-vindo.
2628 Alex
@zharvey Na verdade, você perguntou qual é a diferença entre dinâmico e não dinâmico - é 1. A rapidez com que eles lidam com as etapas (2) e (3) e 2. Com que TTL baixo eles permitem que você defina.
28412 Alex
3

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.

Hennes
fonte
Obrigado @Hennes (+1) - veja minha pergunta na resposta de Oliver - Eu tenho a mesma pergunta para você!
Pnongrata