Meccanismo di risoluzione degli indirizzi
I risolutori dei nomi di dominio determinano i server dei nomi di dominio responsabili del nome di dominio in questione mediante una sequenza di query che iniziano con l’etichetta di dominio più a destra (livello superiore).,
UN resolver DNS che implementa l’approccio iterativo, incaricato da RFC 1034; in questo caso, il sistema di risoluzione consulta tre name server per risolvere il nome di dominio completo “www.wikipedia.org”.
Per il corretto funzionamento della sua risoluzione del nome di dominio, un host di rete è configurata con un iniziale cache (consigli) di conoscere gli indirizzi dei root name server. I suggerimenti vengono aggiornati periodicamente da un amministratore recuperando un set di dati da un’origine affidabile.,
Supponendo che il resolver non abbia record memorizzati nella cache per accelerare il processo, il processo di risoluzione inizia con una query su uno dei server root. Nel funzionamento tipico, i server root non rispondono direttamente, ma rispondono con un rinvio a server più autorevoli, ad esempio una query per “www.wikipedia.org” si riferisce ai server org. Il resolver ora interroga i server a cui si fa riferimento e ripete iterativamente questo processo fino a quando non riceve una risposta autorevole. Il diagramma illustra questo processo per l’host chiamato dal nome di dominio completo “www.wikipedia.org”.,
Questo meccanismo avrebbe posto un grande carico di traffico sui server root, se ogni risoluzione su Internet richiesto a partire dalla radice. In pratica il caching viene utilizzato nei server DNS per scaricare i server root e, di conseguenza, i server dei nomi root sono effettivamente coinvolti solo in una frazione relativamente piccola di tutte le richieste.
Name server ricorsivo e caching
In teoria, i name server autorevoli sono sufficienti per il funzionamento di Internet., Tuttavia, con solo server dei nomi autorevoli operativi, ogni query DNS deve iniziare con query ricorsive nella zona radice del Domain Name System e ogni sistema utente dovrebbe implementare un software resolver in grado di eseguire operazioni ricorsive.
Per migliorare l’efficienza, ridurre il traffico DNS su Internet e aumentare le prestazioni nelle applicazioni degli utenti finali, il Domain Name System supporta server cache DNS che memorizzano i risultati delle query DNS per un periodo di tempo determinato nella configurazione (time-to-live) del record del nome di dominio in questione.,In genere, tali server DNS di caching implementano anche l’algoritmo ricorsivo necessario per risolvere un determinato nome a partire dalla radice DNS fino ai server dei nomi autorevoli del dominio interrogato. Con questa funzione implementata nel server dei nomi, le applicazioni utente ottengono efficienza nella progettazione e nel funzionamento.
La combinazione di cache DNS e funzioni ricorsive in un name server non è obbligatoria; le funzioni possono essere implementate indipendentemente nei server per scopi speciali.
I provider di servizi Internet in genere forniscono server dei nomi ricorsivi e di memorizzazione nella cache per i propri clienti., Inoltre, molti router di rete domestica implementano cache DNS e recursor per migliorare l’efficienza della rete locale.
Resolver DNS
Il lato client del DNS è chiamato resolver DNS. Un resolver è responsabile dell’avvio e del sequenziamento delle query che alla fine portano a una risoluzione completa (traduzione) della risorsa ricercata, ad esempio la traduzione di un nome di dominio in un indirizzo IP. I resolver DNS sono classificati in base a una varietà di metodi di query, come ricorsivo, non ricorsivo e iterativo. Un processo di risoluzione può utilizzare una combinazione di questi metodi.,
In una query non ricorsiva, un resolver DNS interroga un server DNS che fornisce un record per il quale il server è autorevole o fornisce un risultato parziale senza interrogare altri server. Nel caso di un resolver DNS di caching, la query non ricorsiva della sua cache DNS locale fornisce un risultato e riduce il carico sui server DNS upstream memorizzando nella cache i record delle risorse DNS per un periodo di tempo dopo una risposta iniziale dai server DNS upstream.
In una query ricorsiva, un resolver DNS interroga un singolo server DNS, che a sua volta può interrogare altri server DNS per conto del richiedente., Ad esempio, un semplice resolver stub in esecuzione su un router domestico in genere esegue una query ricorsiva al server DNS eseguito dall’ISP dell’utente. Una query ricorsiva è quella per la quale il server DNS risponde completamente alla query interrogando altri server dei nomi secondo necessità. Nell’operazione tipica, un client emette una query ricorsiva a un server DNS ricorsivo nella cache, che successivamente emette query non ricorsive per determinare la risposta e inviare una singola risposta al client., Il resolver, o un altro server DNS che agisce ricorsivamente per conto del resolver, negozia l’uso del servizio ricorsivo utilizzando i bit nelle intestazioni delle query. I server DNS non sono necessari per supportare query ricorsive.
La procedura di query iterativa è un processo in cui un resolver DNS interroga una catena di uno o più server DNS. Ogni server rimanda il client al server successivo nella catena, fino a quando il server corrente non può risolvere completamente la richiesta. Ad esempio, una possibile risoluzione di www.example.com interrogherebbe un server root globale, quindi un server” com “e infine un “example.com” server.,
Dipendenze circolari e record di colla
I name server nelle delegazioni sono identificati per nome, piuttosto che per indirizzo IP. Ciò significa che un server dei nomi risolutivo deve emettere un’altra richiesta DNS per scoprire l’indirizzo IP del server a cui è stato fatto riferimento. Se il nome indicato nella delega è un sottodominio del dominio per il quale viene fornita la delega, esiste una dipendenza circolare.
In questo caso, il server dei nomi che fornisce la delega deve anche fornire uno o più indirizzi IP per il server dei nomi autorevole menzionato nella delega., Questa informazione è chiamata colla. Il server dei nomi delega fornisce questa colla sotto forma di record nella sezione aggiuntiva della risposta DNS e fornisce la delega nella sezione autorità della risposta. Un record glue è una combinazione del server dei nomi e dell’indirizzo IP.
Ad esempio, se il server dei nomi autorevoli per example.org è ns1.example.org, un computer che prova a risolvere www.example.org prima risolve ns1.example.org. Come ns1 è contenuto in example.org, questo richiede la risoluzione example.org primo, che presenta una dipendenza circolare., Per interrompere la dipendenza, il server dei nomi per l’organizzazione del dominio di primo livello include glue insieme alla delega per example.org. I record di colla sono record di indirizzi che forniscono indirizzi IP per ns1.example.org. Il resolver utilizza uno o più di questi indirizzi IP per interrogare uno dei server autorevoli del dominio, che gli consente di completare la query DNS.
Record caching
Una pratica standard nell’implementazione della risoluzione dei nomi nelle applicazioni consiste nel ridurre il carico sui server del Domain Name System memorizzando nella cache i risultati localmente o in host di resolver intermedi., I risultati ottenuti da una richiesta DNS sono sempre associati al time to live (TTL), un tempo di scadenza dopo il quale i risultati devono essere scartati o aggiornati. Il TTL è impostato dall’amministratore del server DNS autorevole. Il periodo di validità può variare da pochi secondi a giorni o addirittura settimane.
Come risultato di questa architettura di caching distribuito, le modifiche ai record DNS non si propagano immediatamente in tutta la rete, ma richiedono che tutte le cache scadano e vengano aggiornate dopo il TTL. RFC 1912 trasmette le regole di base per determinare i valori TTL appropriati.,
Alcuni resolver possono ignorare i valori TTL, poiché il protocollo supporta la memorizzazione nella cache per un massimo di sessantotto anni o nessuna memorizzazione nella cache. Il caching negativo, cioè il caching del fatto di non esistenza di un record, è determinato dai server dei nomi autorevoli per una zona che deve includere il record Start of Authority (SOA) quando non si segnalano dati del tipo richiesto. Il valore del campo minimo del record SOA e il TTL del SOA stesso viene utilizzato per stabilire il TTL per la risposta negativa.,
Ricerca inversa
Una ricerca DNS inversa è una query del DNS per i nomi di dominio quando l’indirizzo IP è noto. A un indirizzo IP possono essere associati più nomi di dominio. Il DNS memorizza gli indirizzi IP sotto forma di nomi di dominio come nomi appositamente formattati nei record pointer (PTR) all’interno del dominio di primo livello dell’infrastruttura arpa. Per IPv4, il dominio è in-addr.arpa. Per IPv6, il dominio di ricerca inversa è ip6.arpa. L’indirizzo IP è rappresentato come un nome nella rappresentazione dell’ottetto ordinata all’inverso per IPv4 e nella rappresentazione del nibble ordinata all’inverso per IPv6.,
Quando si esegue una ricerca inversa, il client DNS converte l’indirizzo in questi formati prima di interrogare il nome per un record PTR seguendo la catena di delega come per qualsiasi query DNS. Per esempio, supponendo che l’indirizzo IPv4 208.80.152.2 è assegnato a Wikimedia, è rappresentato come un nome DNS in ordine inverso: 2.152.80.208.in-addr.arpa. Quando il resolver DNS riceve un puntatore (PTR) richiesta, inizia eseguendo il root server, scegliere il server di American Registry for Internet Numbers (ARIN) per la 208.in-addr.arpa zona. I server di ARIN delegano 152.80.208. in-addr.,arpa a Wikimedia a cui il resolver invia un’altra query per 2.152.80.208.in-addr.arpa, che si traduce in una risposta autorevole.
Ricerca client
Sequenza di risoluzione DNS
Gli utenti generalmente non comunicano direttamente con un resolver DNS. Invece la risoluzione DNS avviene in modo trasparente in applicazioni come browser Web, client di posta elettronica e altre applicazioni Internet., Quando un’applicazione effettua una richiesta che richiede una ricerca di un nome di dominio, tali programmi inviano una richiesta di risoluzione al resolver DNS nel sistema operativo locale, che a sua volta gestisce le comunicazioni richieste.
Il resolver DNS avrà quasi invariabilmente una cache (vedi sopra) contenente ricerche recenti. Se la cache può fornire la risposta alla richiesta, il risolutore restituirà il valore nella cache al programma che ha effettuato la richiesta. Se la cache non contiene la risposta, il resolver invierà la richiesta a uno o più server DNS designati., Nel caso della maggior parte degli utenti domestici, Internet service provider a cui la macchina si connette di solito fornire questo server DNS: quali sono configurato in modo che l’indirizzo del server manualmente o ammessi DHCP per impostare; tuttavia, gli amministratori di sistema hanno sistemi configurati per utilizzare i propri server DNS, DNS resolver, punto di mantenuti separatamente name server dell’organizzazione. In ogni caso, il server dei nomi così interrogato seguirà il processo descritto sopra, fino a quando non trova correttamente un risultato o non lo fa., Quindi restituisce i risultati al resolver DNS; supponendo che abbia trovato un risultato, il resolver memorizza debitamente il risultato per un uso futuro e restituisce il risultato al software che ha avviato la richiesta.
Resolver interrotti
Alcuni ISP di grandi dimensioni hanno configurato i loro server DNS per violare le regole, ad esempio disobbedendo ai TTL o indicando che un nome di dominio non esiste solo perché uno dei suoi name server non risponde.
Alcune applicazioni come i browser web mantengono una cache DNS interna per evitare ricerche ripetute attraverso la rete., Questa pratica può aggiungere ulteriore difficoltà durante il debug di problemi DNS in quanto oscura la cronologia di tali dati. Queste cache in genere utilizzano tempi di memorizzazione nella cache molto brevi dell’ordine di un minuto.
Internet Explorer rappresenta un’eccezione notevole: versioni fino a IE 3.x cache record DNS per 24 ore per impostazione predefinita. Internet Explorer 4.x e versioni successive (fino a IE 8) riducono il valore di timeout predefinito a mezz’ora, che può essere modificato modificando la configurazione predefinita.
Quando Google Chrome rileva problemi con il server DNS visualizza un messaggio di errore specifico.,
Altre applicazioni
Il Domain Name System include diverse altre funzioni e caratteristiche.
I nomi host e gli indirizzi IP non devono corrispondere in una relazione uno-a-uno. Più nomi host possono corrispondere a un singolo indirizzo IP, che è utile in hosting virtuale, in cui molti siti web sono serviti da un singolo host. In alternativa, un singolo nome host può essere risolto su più indirizzi IP per facilitare la tolleranza ai guasti e la distribuzione del carico a più istanze server in un’azienda o in Internet globale.,
Il DNS serve ad altri scopi oltre a tradurre i nomi in indirizzi IP. Ad esempio, gli agenti di trasferimento della posta utilizzano il DNS per trovare il miglior server di posta per consegnare la posta elettronica: un record MX fornisce una mappatura tra un dominio e uno scambiatore di posta; questo può fornire un ulteriore livello di tolleranza ai guasti e distribuzione del carico.
Il DNS viene utilizzato per l’archiviazione efficiente e la distribuzione degli indirizzi IP degli host di posta elettronica nella lista nera., Un metodo comune consiste nel posizionare l’indirizzo IP dell’host soggetto nel sottodominio di un nome di dominio di livello superiore e risolvere tale nome in un record che indica un’indicazione positiva o negativa.
Per esempio:
Server di posta elettronica possono interrogare lista nera.esempio per scoprire se un host specifico che si connette a loro è nella lista nera. Molte di queste blacklist, basate su abbonamento o gratuite, sono disponibili per l’uso da parte di amministratori di posta elettronica e software anti-spam.,
Per fornire resilienza in caso di guasto del computer o della rete, di solito vengono forniti più server DNS per la copertura di ciascun dominio. Al livello più alto del DNS globale, esistono tredici gruppi di root name server, con “copie” aggiuntive distribuite in tutto il mondo tramite l’indirizzamento anycast.
Il DNS dinamico (DDNS) aggiorna un server DNS con un indirizzo IP client al volo, ad esempio quando si sposta tra ISP o hot spot mobili o quando l’indirizzo IP cambia amministrativamente.