Il DNS, o Domain Name System, è una delle parti più integranti di Internet. Chiunque utilizzi Internet utilizza il servizio DNS ogni giorno. Offriremo una semplice illustrazione del mondo reale e analizzeremo attentamente il percorso della query. Quando lavori con DNS, dovrai affrontare vari termini e terminologie come host, zone, TLD e risolutori. La sezione seguente fornisce un’introduzione concisa ad alcuni di questi concetti. Se vuoi intraprendere una carriera nell’amministrazione Linux, devi avere una conoscenza approfondita di come funziona il DNS. Questa guida fornisce una panoramica operativa dei concetti fondamentali del DNS ed esempi pratici di un server DNS Ubuntu.
Diciamo che stiamo provando a stabilire una connessione dal mio dispositivo portatile basato su Ubuntu al sito web “www.example.com.“. Apro un browser Internet, digito l’URL nella barra degli indirizzi e premo Invio. Inizialmente, il client o il mio browser, in questo caso, controlleranno se l’IP di “www.example.com”. esiste già nella sua cache. Se lo trova, salterà tutti i passaggi successivi. Quando il client non riesce a trovare l’IP nella cache del browser, inoltra la richiesta al risolutore o al server dei nomi dell’ISP, nel mio caso. Il risolutore tenta di vedere se altri utenti sono stati di recente su questo sito Web e, in tal caso, individua l’IP dalla sua cache. Altrimenti, il risolutore inoltra la richiesta a uno dei server dei nomi root.
Il server root restituisce l’indirizzo del server dei nomi TLD per quel dominio, che in questo esempio è un server dei nomi “.com”. Ora, il risolutore invia una richiesta al server TLD per vedere se ha il risultato previsto. Tuttavia, il server TLD non dispone delle informazioni ma sa quale nome ha il server. Restituisce l’indirizzo di quel server dei nomi con il dominio per le mappature IP per il nostro URL. Una volta che il risolutore chiede al server dei nomi il nostro dominio, restituisce l’IP appropriato. Il risolutore invia quindi l’indirizzo IP effettivo al programma client, che ora può stabilire la comunicazione necessaria.
Poiché il DNS è costituito da diversi servizi e da complesse interazioni tra loro, gli utenti devono familiarizzare con le terminologie principali per comprendere cosa sta accadendo dietro le quinte. Ecco perché abbiamo suddiviso l’intera guida in più sezioni. Il primo offre una breve introduzione a termini e concetti, mentre gli altri si occupano di flussi di lavoro e configurazioni.
DNS o Domain Name System è il meccanismo che interpreta un nome di dominio completo (FQDN) in un indirizzo IP specifico. Questo è l’indirizzo utilizzato dai nostri sistemi per inviare e recuperare risorse web. Il DNS è costituito da più sistemi ed esegue comunicazioni multidirezionali per recuperare l’indirizzo IP associato a un URL.
I nomi di dominio sono indirizzi leggibili associati a risorse web. Rimuovono l’ambiguità di ricordare un gran numero di indirizzi IP. Ad esempio, google.com è il nome di dominio del motore di ricerca Google. Quando lo inserisci nella barra degli indirizzi del browser, utilizza il sistema DNS per trovare l’indirizzo IP.
Un indirizzo IP è un numero univoco assegnato a tutti i dispositivi connessi a Internet in un determinato punto. Gli indirizzi IP hanno diverse classi e due versioni principali. La maggior parte delle persone utilizza attualmente la versione IP 4. Gli indirizzi IPv4 comprendono quattro ottetti, ciascuno separato da un punto “.” simbolo.
I TLD o domini di primo livello si trovano al livello più alto nella gerarchia dei nomi di dominio. Queste sono le parti più generali di un nome di dominio e si trovano nella posizione più a destra. Ad esempio, la parte “com” è il TLD dell’URL www.example.com. Alcuni domini di primo livello popolari includono “com”, “org, “gov”, “net” e “edu”.
I proprietari di un dominio possono definire diversi host diversi all’interno di quel dominio. Questi possono essere utilizzati per accedere a servizi o computer separati. È possibile accedere alla maggior parte dei server Web tramite il dominio nudo, come esempio.com, o tramite la dichiarazione dell’host, come www.esempio.com. La parte “www” è l’host qui. Un altro utilizzo comune di un host è fornire l’accesso API come api.example.com.
I sottodomini sono semplicemente un sottoinsieme di un dominio. Ciò consente ai proprietari dei siti di avere più sottodomini sotto un dominio principale. Ad esempio, un dominio chiamato University.edu può avere diversi sottodomini per ciascuno dei suoi dipartimenti, come www.cs.university.edu o www.phy.university.edu.
La differenza tra host e sottodomini è che i primi specificano computer o servizi diversi, mentre i secondi suddividono il dominio principale in diversi gruppi.
Un nome di dominio completo o FQDN è il dominio assoluto di un sito web. Rappresenta la radice del dominio in questione. Un dominio solitamente contiene più percorsi secondari o percorsi, come www.example.com/new/example.
Qui, la sezione www.example.com è il FQDN. Inoltre, l’FQDN termina sempre con un punto “.” simbolo come “www.example.com.”. Tuttavia, agli utenti non è richiesto di inserire questo punto finale poiché se ne occupa il programma client.
Nel DNS, un server dei nomi è un sistema informatico che traduce i nomi di dominio in IP indirizzabili. Svolgono la maggior parte del lavoro effettivo all’interno di un’infrastruttura DNS Ubuntu. Poiché i name server devono gestire migliaia di richieste al secondo, spesso reindirizzano ulteriori richieste a nuovi server.
Inoltre, i name server possono funzionare anche come server autorevoli. In questo scenario, rispondono alle query sotto il loro controllo e altrimenti forniscono risposte memorizzate nella cache da altri server.
I file di zona sono veri e propri file di testo che memorizzano le relazioni tra i nomi di dominio e gli indirizzi IP associati. Un sistema DNS recupera le informazioni IP di un FQDN da questo documento. Sono memorizzati sul server dei nomi e specificano quali risorse sono accessibili per un determinato dominio. Se le informazioni non sono disponibili nel file di zona, puntano alla posizione che contiene tali dati.
Come già discusso, il DNS è un sistema gerarchico che comprende componenti multilivello. Il root server si trova al vertice di questa gerarchia. Si tratta di server estremamente potenti gestiti da più organizzazioni e controllati dall’ICANN (Internet Corporation for Assigned Names and Numbers) .
Attualmente esistono 13 root server primari in tutto il mondo e ciascuno di essi è sottoposto a mirroring per una maggiore disponibilità.
Quando qualcuno richiede un root server, la richiesta viene inoltrata al mirror più vicino. I server root gestiscono le query relative ai domini di primo livello. Ogni volta che c’è qualcosa che un server dei nomi di livello inferiore non può risolvere, al server root viene posta quella domanda.
Tuttavia, i server root non dispongono di informazioni IP. Puntano invece ai name server che gestiscono quello specifico TLD.
I server TLD si trovano sotto i server root nella gerarchia DNS. I server root indirizzano le entità della richiesta DNS verso il server TLD di quella richiesta. Il server TLD reindirizza quindi l’entità richiedente al server dei nomi, che dispone delle informazioni IP specifiche per il dominio in questione.
I server TLD reindirizzano l’entità richiedente al server dei nomi a livello di dominio. Questo è il server il cui file di zona contiene le mappature IP per il dominio. Questo è quindi il name server con l’indirizzo IP specifico per il nome di dominio richiesto.
Un risolutore è l’entità richiesta responsabile del recupero delle informazioni IP di un dominio dal DNS. Di solito viene configurato all’interno del sistema client, come nel browser o tramite un’impostazione DNS Ubuntu personalizzata.
La maggior parte delle persone utilizza il risolutore DNS fornito dai propri ISP. Un risolutore è un’astrazione che consente all’utente finale di ignorare ciò che accade dietro le quinte. Può funzionare in modo ricorsivo finché non recupera l’indirizzo IP di un determinato dominio.
Abbiamo già discusso del fatto che il server dei nomi memorizza le mappature dominio-IP nel file di zona. Le informazioni nei file di zona vengono salvate come record. Esistono molti tipi di record in un file di zona. Stiamo toccando alcuni dei più importanti qui.
SOA sta per Start of Authority ed è un record obbligatorio per tutti i file di zona. Il primo record effettivo in un file di zona deve essere di tipo SOA. Potrebbe essere necessario del tempo prima di comprendere appieno i record SOA. Fino ad allora, ricorda i seguenti suggerimenti. Innanzitutto, un record SOA è simile al seguente snippet.
esempio.com. IN SOA ns1.esempio.com. admin.esempio.com. ( 12083; numero di serie 3 ore; intervallo di aggiornamento 30 metri; intervallo tra tentativi 3w; periodo di scadenza 1 ora; TTL negativo)
Le parti essenziali sono le seguenti.
I record A e AAAA associano un host a un indirizzo IP effettivo. Il record “A” mappa un host su un indirizzo IPv4 funzionante, mentre il record “AAAA” mappa gli host su indirizzi IPv6. Di seguito è riportato il formato generale per questi tipi di record.
hostname IN A IPv4Address hostname IN AAAA IPv6Address
Di seguito è riportato un esempio appropriato che utilizza il server dei nomi ns1 definito nel record SOA.
ns1.example.com. IN A 111.112.221.222
Il successivo record “A” definisce il server web come “www”.
www IN A 111.112.211.212
I record CNAME rappresentano un alias per il server dei nomi definito da un record A o AAAA. Ad esempio, il seguente frammento dichiara un host chiamato “server” utilizzando un record A e quindi crea un alias “www” per quell’host.
server IN A 111.111.111.111 www IN CNAME server
Tuttavia, la creazione di alias potrebbe comportare un calo delle prestazioni poiché richiedono una query aggiuntiva al server. I record CNAME vengono solitamente utilizzati per assegnare un nome canonico a una risorsa esterna.
I record MX vengono utilizzati per specificare gli scambi di posta per un nome di dominio e aiutano a ricevere comunicazioni e-mail che arrivano al tuo server di posta Linux. A differenza della maggior parte dei tipi di record, non associano gli host agli IP perché si applicano all’intera zona. Di seguito è riportato un semplice esempio di record MX.
IN MX 10 mail.example.com.
Si noti che in questo record non è definito alcun host e che ha anche un nuovo numero, “10”. Viene utilizzato per indicare la preferenza. Se sono presenti più record MX, le e-mail verranno indirizzate al server con il numero di preferenza più basso.
I record NS specificano i server dei nomi utilizzati per una zona. Sebbene possa sembrare irrilevante dal momento che il file di zona esiste già sul server dei nomi, viene utilizzato per alcuni motivi. Spesso il file di zona servito da un server DNS potrebbe essere una copia memorizzata nella cache di un server diverso.
IN NS ns1.example.com. IN NS ns2.example.com.
Come i record MX, anche i record NS vengono definiti per un’intera zona e non richiedono nomi host. Inoltre, molti DNS di Ubuntu servono a considerare non validi i file di zona se non contengono più record ns. Pertanto, la maggior parte dei file di zona definisce più di un server dei nomi.
I record PTR specificano un nome associato a un indirizzo IP funzionante e sono semplicemente l’inverso del record A o AAAA. Devono iniziare dalla radice .arpa e sono commissionati al proprietario dell’IP. La delega degli IP a organizzazioni e fornitori di servizi è gestita dai Registri Internet Regionali (RIR).
222.111.222.111.in-addr.arpa. 33692 IN PTR host.example.com.
Lo snippet sopra fornisce un esempio di base di un record PTR. Mappa l’IP 222.111.222.111 su “host.example.com.”.
I record CAA definiscono quali autorità di certificazione (CA) possono emettere certificati SSL/TLS per un nome di dominio. Se non è definito alcun record CAA per un dominio, qualsiasi CA può emettere un certificato. Tuttavia, se una CA viene definita esplicitamente, solo quella specifica autorità può emettere il certificato.
example.com. IN CAA 0 issue "letsencrypt.org"
DNS è fondamentale per ottenere un lavoro CS ben retribuito come amministratore di sistema o di rete. Lo scopo di questa guida è aiutare i principianti a padroneggiare i principi alla base del DNS il più velocemente possibile. Inoltre, i nostri redattori hanno anche fornito un’illustrazione pratica di varie configurazioni DNS di Ubuntu per facilitare il tuo processo di apprendimento.