Passa al contenuto principale

5. Server e Client DNS

Questa sezione definisce i termini utilizzati per i sistemi che agiscono come client DNS, server DNS o entrambi.

Resolver: Un programma "che estrae informazioni dai name server in risposta alle richieste dei client." (Citato da [RFC1034], Sezione 2.4) "Il resolver si trova sulla stessa macchina del programma che richiede i servizi del resolver, ma potrebbe dover consultare name server su altri host." (Citato da [RFC1034], Sezione 5.1) Un resolver esegue query per un nome, tipo e classe, e riceve risposte. La funzione logica è chiamata "resolution" (risoluzione). In pratica, il termine si riferisce solitamente a un tipo specifico di resolver (alcuni dei quali sono definiti di seguito), e la comprensione dell'uso del termine dipende dalla comprensione del contesto.

Stub resolver: Un resolver che non può eseguire tutta la risoluzione da solo. Gli stub resolver dipendono generalmente da un resolver ricorsivo per intraprendere la funzione di risoluzione effettiva. Gli stub resolver sono discussi ma mai completamente definiti nella Sezione 5.3.1 di [RFC1034]. Sono completamente definiti nella Sezione 6.1.3.1 di [RFC1123].

Modalità iterativa (Iterative mode): Una modalità di risoluzione di un server che riceve query DNS e risponde con un referral a un altro server. La Sezione 2.3 di [RFC1034] descrive questo come "Il server riferisce il client a un altro server e lascia che il client prosegua la query". Un resolver che lavora in modalità iterativa è talvolta chiamato "resolver iterativo" (iterative resolver).

Modalità ricorsiva (Recursive mode): Una modalità di risoluzione di un server che riceve query DNS e risponde a tali query da una cache locale o invia query ad altri server per ottenere le risposte finali alle query originali. La Sezione 2.3 di [RFC1034] descrive questo come "Il primo server prosegue la query per il client presso un altro server". Un server che opera in modalità ricorsiva può essere pensato come avente un lato name server (che risponde alla query) e un lato resolver (che esegue la funzione di risoluzione). I sistemi che operano in questa modalità sono comunemente chiamati "server ricorsivi" (recursive servers). A volte sono chiamati "resolver ricorsivi" (recursive resolvers). Sebbene strettamente la differenza tra questi sia che uno di essi invia query a un altro server ricorsivo e l'altro no, in pratica non è possibile sapere in anticipo se il server che si sta interrogando eseguirà anche la ricorsione; entrambi i termini possono essere osservati in uso intercambiabile.

Full resolver: Questo termine è utilizzato in [RFC1035], ma non vi è definito. RFC 1123 definisce un "full-service resolver" che potrebbe essere o non essere ciò che era inteso per "full resolver" in [RFC1035]. Questo termine non è propriamente definito in alcun RFC.

Full-service resolver: La Sezione 6.1.3.1 di [RFC1123] definisce questo termine per indicare un resolver che agisce in modalità ricorsiva con una cache (e soddisfa altri requisiti).

Priming (Inizializzazione): Il meccanismo utilizzato da un resolver per determinare dove inviare le query prima che ci sia qualcosa nella cache del resolver. Il priming è più spesso fatto da un'impostazione di configurazione che contiene un elenco di server autorevoli per la zona radice.

Negative caching (Caching negativo): "La memorizzazione della conoscenza che qualcosa non esiste, non può dare una risposta o non dà una risposta." (Citato da [RFC2308], Sezione 1)

Server autorevole (Authoritative server): "Un server che conosce il contenuto di una zona DNS da conoscenza locale, e quindi può rispondere alle query su quella zona senza dover interrogare altri server." (Citato da [RFC2182], Sezione 2.) È un sistema che risponde alle query DNS con informazioni sulle zone per le quali è stato configurato per rispondere con il flag AA nell'header di risposta impostato a 1. È un server che ha autorità su una o più zone DNS. Si noti che è possibile per un server autorevole rispondere a una query senza che la zona genitore deleghi l'autorità a quel server. I server autorevoli forniscono anche "referral", solitamente a zone figlie delegate da loro; questi referral hanno il bit AA impostato a 0 e vengono forniti con dati di referral nelle sezioni Authority e (se necessario) Additional.

Server solo autorevole (Authoritative-only server): Un name server che serve solo dati autorevoli e ignora le richieste di ricorsione. "Non genererà normalmente alcuna query propria. Invece, risponderà a query non ricorsive da resolver iterativi che cercano informazioni nelle zone che serve." (Citato da [RFC4697], Sezione 2.4)

Trasferimento di zona (Zone transfer): L'atto di un client che richiede una copia di una zona e di un server autorevole che invia le informazioni necessarie. (Vedere Sezione 6 per una descrizione delle zone.) Ci sono due metodi standard comuni per eseguire trasferimenti di zona: il meccanismo AXFR ("Authoritative Transfer") per copiare la zona completa (descritto in [RFC5936]), e il meccanismo IXFR ("Incremental Transfer") per copiare solo parti della zona che sono cambiate (descritto in [RFC1995]). Molti sistemi utilizzano metodi non standard per il trasferimento di zona al di fuori del protocollo DNS.

Server secondario (Secondary server): "Un server autorevole che utilizza il trasferimento di zona per recuperare la zona" (Citato da [RFC1996], Sezione 2.1). [RFC2182] descrive i server secondari in dettaglio. Sebbene i primi RFC DNS come [RFC1996] si riferissero a questo come "slave", l'uso comune attuale si è spostato verso "secondary" (secondario). I server secondari sono anche discussi in [RFC1034].

Server slave: Vedere server secondario.

Server primario (Primary server): "Qualsiasi server autorevole configurato per essere la fonte di trasferimento di zona per uno o più server [secondari]" (Citato da [RFC1996], Sezione 2.1) o, più specificamente, "un server autorevole configurato per essere la fonte di dati AXFR o IXFR per uno o più server [secondari]" (Citato da [RFC2136]). Sebbene i primi RFC DNS come [RFC1996] si riferissero a questo come "master", l'uso comune attuale si è spostato verso "primary" (primario). I server primari sono anche discussi in [RFC1034].

Server master: Vedere server primario.

Primary master: "Il primary master è nominato nel campo SOA MNAME della zona e opzionalmente da un RR NS". (Citato da [RFC1996], Sezione 2.1). [RFC2136] definisce "primary master" come "Server master alla radice del grafo di dipendenza AXFR/IXFR. Il primary master è nominato nel campo SOA MNAME della zona e opzionalmente da un RR NS. C'è per definizione solo un server primary master per zona." L'idea di un primary master è utilizzata solo da [RFC2136], ed è considerata arcaica in altre parti del DNS.

Server stealth: Questo è "come un server slave tranne che non è elencato in un RR NS per la zona." (Citato da [RFC1996], Sezione 2.1)

Hidden master (Master nascosto): Un server stealth che è un master per i trasferimenti di zona. "In questa disposizione, il name server master che elabora gli aggiornamenti non è disponibile agli host generali su Internet; non è elencato nel RRset NS." (Citato da [RFC6781], Sezione 3.4.3.) Un RFC precedente, [RFC4641], affermava che il nome dell'hidden master appare nel campo MNAME dei RR SOA, anche se in alcune configurazioni, il nome non appare affatto nel DNS pubblico. Un hidden master può essere sia un secondario che un primary master.

Forwarding (Inoltro): Il processo di un server che invia una query DNS con il bit RD impostato a 1 a un altro server per risolvere quella query. Il forwarding è una funzione di un resolver DNS; è diverso dal semplice inoltrare ciecamente le query.

[RFC5625] non fornisce una definizione specifica per il forwarding, ma descrive in dettaglio quali funzionalità un sistema che inoltra deve supportare. I sistemi che inoltrano sono talvolta chiamati "proxy DNS" (DNS proxies), ma quel termine non è ancora stato definito (nemmeno in [RFC5625]).

Forwarder: La Sezione 1 di [RFC2308] descrive un forwarder come "un nameserver utilizzato per risolvere le query invece di utilizzare direttamente la catena di nameserver autorevoli". [RFC2308] afferma inoltre "Il forwarder ha tipicamente sia un migliore accesso a internet, sia mantiene una cache più grande che può essere condivisa tra molti resolver." Quella definizione sembra suggerire che i forwarder interroghino normalmente solo i server autorevoli. Nell'uso attuale, tuttavia, i forwarder spesso si trovano tra gli stub resolver e i server ricorsivi. [RFC2308] è silenzioso sul fatto che un forwarder sia solo iterativo o possa essere un full-service resolver.

Resolver che implementa policy (Policy-implementing resolver): Un resolver che agisce in modalità ricorsiva che cambia alcune delle risposte che restituisce in base a criteri di policy, come per prevenire l'accesso a siti di malware o contenuti discutibili. In generale, uno stub resolver non ha idea se i resolver upstream implementino tale policy o, se lo fanno, la policy esatta su quali modifiche verranno apportate. In alcuni casi, l'utente dello stub resolver ha selezionato il resolver che implementa policy con l'intenzione esplicita di utilizzarlo per implementare le policy. In altri casi, le policy vengono imposte senza che l'utente dello stub resolver ne sia informato.

Resolver aperto (Open resolver): Un full-service resolver che accetta ed elabora query da qualsiasi (o quasi qualsiasi) stub resolver. Questo è talvolta anche chiamato "resolver pubblico" (public resolver), anche se il termine "resolver pubblico" è utilizzato di più con i resolver aperti che sono destinati ad essere aperti, rispetto alla stragrande maggioranza dei resolver aperti che sono probabilmente configurati erroneamente per essere aperti.

View (Vista): Una configurazione per un server DNS che gli consente di fornire risposte diverse a seconda degli attributi della query. Tipicamente, le view differiscono per l'indirizzo IP di origine di una query, ma possono anche essere basate sull'indirizzo IP di destinazione, il tipo di query (come AXFR), se è ricorsiva, e così via. Le view sono spesso utilizzate per fornire più nomi o indirizzi diversi alle query provenienti da "dentro" una rete protetta rispetto a quelle "fuori" da quella rete. Le view non sono una parte standardizzata del DNS, ma sono ampiamente implementate nel software del server.

DNS passivo (Passive DNS): Un meccanismo per raccogliere grandi quantità di dati DNS memorizzando le risposte DNS dai server. Alcuni di questi sistemi raccolgono anche le query DNS associate alle risposte; questo può sollevare problemi di privacy. I database DNS passivi possono essere utilizzati per rispondere a domande storiche sulle zone DNS come quali record erano disponibili per esse in quali momenti nel passato. I database DNS passivi consentono la ricerca dei record memorizzati su chiavi diverse dal solo nome, come "trova tutti i nomi che hanno record A di un valore particolare".

Anycast: "La pratica di rendere disponibile un particolare indirizzo di servizio in più posizioni discrete e autonome, in modo che i datagrammi inviati vengano instradati verso una delle diverse posizioni disponibili." (Citato da [RFC4786], Sezione 2)