Come funziona il server dei nomi DNS?


14

Abbiamo due server DNS elencati nel nostro record NS. Ieri sera, uno dei nostri server DNS è andato giù. Come previsto, alcuni server DNS non stavano risolvendo i nostri nomi host. Ho pensato che questo sarebbe stato temporaneo e avrebbe iniziato a funzionare una volta scaduto il TTL dei nostri record NS (1 ora).

Un'ora più tardi, continuavo a ricevere timeout DNS dai desktop che utilizzavano i server Earthlink, Verizon e OpenDNS. Ho provato per vedere se l'altro server DNS stava rispondendo:

dig @ns2.example.com www.example.com +short

Questo ha funzionato.

Le mie domande:

  1. Qualcuno ha una risposta sul perché altri server DNS non hanno colpito l'altro nostro server DNS anche dopo la scadenza del TTL?
  2. I server DNS preferiscono il server DNS principale di un dominio (dal SOArecord)?
  3. Esiste un algoritmo utilizzato per scegliere un nameserver dai record NS disponibili? Suppongo che questo sia specifico dell'implementazione, ma forse ci sono alcuni standard applicabili qui.

Il TTL non ha nulla a che fare con nulla. Poiché nessun record è stato modificato, non ha alcun effetto rilevante.
David Schwartz,

Ah, lo vedo adesso. Doh.
Belmin Fernandez,

Risposte:


17

Questa è una sfortunata irritazione. Si suppone che più server DNS aumentino l'affidabilità, ma in pratica ha spesso l'effetto contrario.

Il problema è che il client attende solo una risposta così a lungo e il server attende circa lo stesso periodo di tempo. Supponi di avere due server DNS, A e B. Supponi che A funzioni e che B non sia riuscito. Questo succede:

  1. Il client si connette al server dei nomi Z e richiede le informazioni. Z sceglie B e invia una query.

  2. Il client scade perché il server dei nomi Z non ha risposto.

  3. Il client prova il server dei nomi Y. Y sceglie B e invia una query.

  4. Il server dei nomi Z va in timeout e prova A. Riceve la risposta giusta, ma il client non sta più aspettando.

  5. Il client scade perché il server dei nomi Y non ha risposto.

  6. Il client si arrende, avendo entrambi i suoi server dei nomi non rispondono.

  7. Il server dei nomi Y va in timeout e prova A. Riceve la risposta giusta, ma il client non sta più aspettando.

E non esiste una buona soluzione. Quanto più a lungo aspetti per vedere se un nameserver risponde, tanto più tempo dovrai aspettare perché il server dei nomi che stai aspettando attende più a lungo. Probabilmente, il problema era che Y e Z non si erano arresi abbastanza velocemente.

In sostanza, se uno dei tuoi server dei nomi è fuori uso, alcuni client, per pura sfortuna, scadranno perché hanno provato solo quelli cattivi.

Il lato positivo, se hai due nameserver e uno fallisce, circa il 75% dei server dei nomi riceverà una risposta, invece dello 0%.


Capisco cosa intendi. Eek. Quindi il nameserver del client ( Z) non memorizzerà nella cache quale nameserver ha usato l'ultima volta che ha funzionato?
Belmin Fernandez,

1
Alcuni server dei nomi lo fanno e talvolta ciò aiuta. Spesso dipende dal modo preciso in cui il nameserver ha fallito. Devi ricordare che questo è tutto al di sopra di UDP, quindi l'incapacità di ottenere una risposta (anche dopo una o due ritrasmissioni) non prova che ci sia qualcosa di sbagliato nel nameserver.
David Schwartz,

Ho letto nella mia copia di DNS e BIND (Paul Albitz e Cricket Lui, O'Rielly p278) che i server Bind 8.2.3 scelgono il server che risponde più rapidamente dal suo elenco di server di inoltro, il che significa che se il server nell'elenco non funziona, viene praticamente abbandonato automaticamente. Bind 9 non lo implementa ancora, interroga i server forward nell'ordine dell'elenco. Qualcuno sa se questo è cambiato?
Jaydee,

Solo per chiarire, per i meno esperti nelle configurazioni DNS (mi ci è voluto un po 'di tempo per capirlo) i server dei nomi DNS Z e Y in questo esempio sono molto probabilmente server dei nomi ricorsivi basati sulla rete del client, ad esempio i server DNS forniti da un ISP ai suoi clienti tramite DHCP. E il problema sorge quando questi server hanno un valore di timeout più lungo rispetto al resolver DNS client (ad esempio il sistema operativo del dispositivo.)
Jordan Rieger,

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.