Come agisce immediatamente DynamicDNS?


16

La mia comprensione della funzionalità principale di DNS è quella di fornire un servizio di denominazione / mappatura tra nomi di dominio (ad es. blah-whatever.com) E indirizzi IP (ad es. 100.2.3.4 ).

Inoltre, la mia comprensione di come funzionano i server DNS Internet è che quando si modifica un record di mappatura dominio / IP (diciamo, cambiando blah-whatever.comora a 105.2.3.4 , ecc.), Questa modifica deve essere propagata su ogni server DNS nel mondo prima che si possa dire che il cambiamento è "completo". Questo periodo di propagazione può talvolta durare fino a 24 ore.

Quindi, per cominciare, se qualcosa che ho detto finora è fuorviato o errato, per favore inizia correggendomi!

Supponendo che io sia più o meno corretto, non capisco come aziende come CloudFlare o DynamicDNS possano offrire servizi di tipo "rollover istantaneo" in base ai quali si modifica il record DNS con loro e - boom - la modifica ha effetto immediato.

Capisco che c'è qualcosa chiamato "TTL" (tempo di vivere, presumo?!?) Che gioca un ruolo in questa capacità di rollover istantaneo, ma poiché sono già confuso sulla capacità di iniziare è difficile capire cosa questo TTL è o quale scopo serve.

Quindi chiedo: cosa c'è di Dynamic DNS e dei suoi concorrenti che consente loro di cambiare istantaneamente i mapping DNS (senza impiegare 24 ore per propagare le modifiche DNS come tutti gli altri), e come si inserisce il TTL in questo processo? Grazie in anticipo.

Risposte:


3

La mia risposta precedente conteneva informazioni false perché avevo alcune idee sbagliate su come propagare le modifiche DNS. Quindi ecco un secondo tentativo. Per una spiegazione dettagliata, ti incoraggio a leggere la risposta di Alex .

Per quanto ne so, ci sono 2 fattori coinvolti nella rapidità di propagazione di una modifica DNS:

  1. Trasferimenti di zona tra i server DNS che sono autorevoli per una zona.
  2. Il TTL impostato per singoli record in quella zona.

Trasferimenti di zona

Dato che sono necessari due server dei nomi distinti per gestire una zona, si desidera che questi server dispongano rapidamente dell'ultima versione di quella zona.

Ciò può essere ottenuto estraendo la versione più recente della zona a un intervallo fisso o attendendo un NOTIFY da un server dei nomi autorizzato.

Dato che questo meccanismo è sotto il completo controllo di chiunque gestisca i server dei nomi, qualsiasi ritardo in quest'area può essere completamente controllato.

TTL

Il TTL è un timeout specificato per ogni singolo record di risorse in una zona. Questo valore definisce per quanto tempo il record deve essere memorizzato nella cache da provider DNS non autorevoli.

Tieni presente che questo valore entra in gioco solo se viene modificato un record esistente . I nuovi record non possono ancora essere memorizzati nella cache.

Dato che il TTL ha anche il pieno controllo di chiunque controlli la zona, il ritardo può anche essere completamente controllato.


Grazie @Oliver (+1) - Quindi sembra che un "rollover istantaneo" sia una leggenda urbana! Immagino che la mia domanda di follow-up sarebbe: perché non modificare i miei record DNS da solo? È perché queste aziende offrono API in modo che le modifiche DNS possano essere automatizzate quando determinati eventi si attivano? Immagino che sto cercando per quale scopo servono in primo luogo!
pnongrata,

1
@zharvey: puoi ovviamente gestire il tuo server DNS e modificare le tue zone direttamente. Ma è necessario fornire almeno 2 server DNS distinti che sono autorevoli affinché la propria zona sia accettata dai server root. Le persone di solito non hanno quel tipo di infrastruttura a loro disposizione.
Der Hochstapler,

1
Puoi modificare tu stesso i record DNS. Devi solo eseguire una coppia di server dei nomi (in diverse sottoreti). DynDNS funziona comunque per te e consente aggiornamenti relativamente semplici. Fondamentalmente stai esternalizzando un po 'di lavoro.
Hennes,

@zharvey ovviamente puoi avere un "rollover istantaneo". Se lo intendi letteralmente, lascia che entrambe le macchine cambino i loro IP (che non è sempre possibile). A parte questo, avrai sempre un certo ritardo. Di solito, se i servizi devono essere spostati su server diversi, l'amministratore cambia in anticipo il TTL (ad es. Abbassalo a qualcosa come 1h) - quindi quando si verifica la modifica, il ritardo sarà minimo. Al termine, il TTL verrà nuovamente aumentato (ad esempio 24 ore o più) per consentire una migliore memorizzazione nella cache e risposte più rapide alle query DNS. Ma questo di solito non coinvolge DynDNS;)
Izzy,

2
Ci scusiamo per essere scortese, ma questa risposta è sbagliata da quasi tutti i punti.
Alex,

18

Hai delle idee sbagliate, quindi proverò a spiegare l'intero processo. (Sono bravo con i dettagli da quando mi sono occupato di gestire un servizio DNS pubblico dinamico).

Diciamo che il tuo dominio è example.com e diciamo esempio domain.com ospitato con qualche società DNS dinamica, chiamiamolo lightfastdns.net (nome fittizio). Il tuo dominio contiene record DNS - somehost.example.com , che attualmente punta a 1.1.1.1 .

  1. Quando apporti una modifica al tuo record DNS, questa modifica viene prima inviata a un server intermedio, gestito da lightfastdns.net , ad esempio updates.lightfastdns.net . Questo accade quasi all'istante (in frazione di secondo). È possibile inviare l'aggiornamento tramite interfaccia Web o con un client di aggiornamenti dinamici o tramite alcune API. Non importa, in ogni caso questo aggiornamento arriverà su alcuni server che gestiscono gli aggiornamenti DNS.

  2. Questo server di aggiornamenti invia il tuo record aggiornato (diciamo, 1.2.3.4 ) al server DNS " master " per il tuo dominio. Questo server DNS è anche gestito da lightfastdns.net . Quanto velocemente succede: dipende da come il provider DNS ha progettato il loro software. (Può essere istantaneo e può avvenire ogni 24 ore. Ad esempio gandi.net invia aggiornamenti DNS una volta all'ora.) Naturalmente il nostro lightfastdns.net lo farà immediatamente.

  3. Questo server DNS master invierà aggiornamenti ai server DNS slave per il dominio example.com . Questi server sono anche gestiti dalla stessa azienda lightfastdns.net . Con che velocità succede: con il moderno software master invierà immediatamente il messaggio NOTIFY agli slave e riceveranno immediatamente il record aggiornato dal master. con software più vecchi avevamo valori di REFRESH e RETRY nel record SOA, ma oggi è raramente rilevante. Ovviamente, il nostro lightfastdns.net implementa NOTIFY e gli aggiornamenti si propagano all'istante.

Ciò che abbiamo ora è che tutti i server "autorevoli" per il tuo dominio hanno ricevuto il record aggiornato ( 1.2.3.4 ). Per lightfastdns.net ci sono voluti circa due secondi.

  1. Ora, ci sposteremo a casa di Ivan in Russia, e Ivan vuole aprire " somehost.example.com " nel suo browser. Se non l'ha mai aperto prima, il suo browser non conosce l'indirizzo, quindi il browser chiederà al suo sistema operativo. Ma, se ha visitato il sito di recente, l'indirizzo potrebbe ancora essere memorizzato all'interno del browser e utilizzerà il vecchio indirizzo (obsoleto)! Per quanto ? - Dipende dal browser, ad esempio Google Chrome memorizza i record DNS solo per un massimo di 60 secondi. Abbiamo un ritardo fino a 60 secondi . per questo direi che le modifiche DNS non si sono ancora propagate a questo browser.

  2. In ogni caso, dopo 60 secondi o immediatamente, il browser chiederà infine al sistema operativo di ottenere l'indirizzo. Il sistema operativo potrebbe già conoscere la risposta (vecchia, obsoleta) e restituirla, in questo caso direi che il nuovo record non si è ancora propagato al sistema operativo Ivan. Per quanto tempo il sistema operativo memorizzerà il vecchio valore - guarda i moderni sistemi operativi controllati dal parametro TTL . TTL in DNS definisce per quanto tempo un record può essere memorizzato nella cache. Il nostro lightfastdns.net ha permesso di utilizzare un TTL piuttosto basso - 30 secondi, quindi abbiamo ottenuto un nuovo ritardo fino a 30 secondi, complessivamente - 90 secondi finora.

  3. Se il sistema operativo non conosce la risposta, o se la risposta che conosceva è ormai superata da TTL, chiederà al risolutore DNS (l'ISP di Ivan gli ha assegnato un risolutore DNS dns.moscow-telecom.ru ). In questo caso, il vecchio record potrebbe essere memorizzato nella cache fino a TTL secondi, oppure dns.moscow-telecom.ru potrebbe non conoscere l'indirizzo. Abbiamo altri 30 secondi, poiché dns.moscow-telecom.ru memorizza anche nella cache DNS per un tempo non superiore al valore TTL. Abbiamo 120 secondi di ritardo. Questo è ciò che diceva che il nuovo record DNS non si era ancora propagato ai server DNS di Mosca-Telecom .

  4. Se il server DNS dell'ISP non conosce la risposta o se la risposta che conosceva è già obsoleta perché è scaduta la TTL - dns.moscow-telecom.ru chiederà a uno dei server DNS AUTORITATIVI per esempio.net (li ricordi?). Quelli hanno ricevuto la modifica circa 118 secondi fa e restituiranno la nuova risposta, questa risposta verrà immediatamente inviata a catena al risolutore DNS, al sistema operativo e al browser Ivan.

Pertanto, la propagazione del record ha richiesto da 2 a 120 secondi, a seconda dello stato delle varie cache. TTL più lungo - possono verificarsi ritardi più lunghi.

Per completarlo, alcuni ISP violano a lungo gli standard e i record della cache. Alcuni sistemi operativi più vecchi hanno conservato i vecchi record per molto tempo, e anche i browser più vecchi. Ma per la maggior parte degli utenti funzionerà come previsto.


Mi dispiace molto che sia venuto fuori questo verboso. Forse qualcuno vuole fare una variante più breve (come risposta separata) - sei il benvenuto.
Alex,

@zharvey In realtà hai chiesto qual è la differenza tra dinamico e non dinamico: è 1. Quanto velocemente gestiscono i passaggi (2) e (3) e 2. Quanto TTL basso ti permettono di impostare.
Alex,

3

No. La modifica non deve propagarsi a tutti i server DNS nel mondo .

Se cambi qualcosa e qualcuno richiede il record modificato sul tuo server DNS, il risultato è istantaneo.

Il problema è se hai già interrogato questo nome e è stato memorizzato nella cache. Quindi otterrai il vecchio IP fino alla scadenza della cache. In DNS è possibile impostare per quanto tempo è valida una query precedente e tale periodo è spesso impostato su diversi giorni. Per DynDNS è generalmente impostato su un valore inferiore, ma non tutti i resolver DNS lo onorano.


Grazie @Hennes (+1) - vedi la mia domanda sotto la risposta di Oliver - Ho la stessa domanda per te!
pnongrata,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.