{"id":1011,"date":"2021-08-03T23:05:52","date_gmt":"2021-08-03T21:05:52","guid":{"rendered":"https:\/\/il-mio-ip.it\/?page_id=1011"},"modified":"2021-08-03T23:26:52","modified_gmt":"2021-08-03T21:26:52","slug":"dns-domain-name-system","status":"publish","type":"page","link":"https:\/\/il-mio-ip.it\/?page_id=1011","title":{"rendered":"DNS &#8211; Domain Name System"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull has-background-dim has-parallax has-background-gradient\" style=\"background-image:url(https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/servizi.jpg);min-height:380px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__gradient-background\" style=\"background:linear-gradient(100deg,rgb(21,50,67) 0%,rgb(26,108,122) 100%)\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<h1 class=\"has-text-align-center has-white-color has-text-color wp-block-heading\"><strong><strong><strong><strong>DNS &#8211; Domain Name System<\/strong><\/strong><\/strong><\/strong><\/h1>\n<\/div><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span style=\"color: #0693e3;\" class=\"ugb-highlight\"><strong><strong><strong><strong><strong>DNS &#8211; Domain Name System<\/strong><\/strong><\/strong><\/strong><\/strong><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il Protocollo DNS \u00e8 un sistema utilizzato per assegnare dei nomi mnemonici agli host di una rete, in modo da evitare di dover ricordare a memoria i loro indirizzi IP. Ad ogni indirizzo IP vengono quindi assegnati uno o pi\u00f9 nomi alfanumerici, utilizzati per accedere alle risorse messe a disposizione dell\u2019host remoto. Le risorse dell\u2019host remoto saranno quindi rese disponibili tramite un nome che a sua volta andr\u00e0 ad inoltrare la richiesta ad un indirizzo IP e numero di porta, mediante una chiamata detta \u201crisoluzione\u201d del DNS. In pratica la risoluzione DNS \u00e8 la conversione da nome di dominio ad indirizzo IP, e viene operata interrogando il database dei server DNS. All\u2019inverso la conversione da indirizzo IP a nome di dominio \u00e8 detta risoluzione inversa. Il servizio DNS \u00e8 realizzato quindi tramite un enorme database distribuito, costituito appunto dai Server DNS. Effettua pi\u00f9 o meno lo stesso servizio di una rubrica telefonica di un cellulare, associando quindi ad ogni numero di telefono un nome.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il DNS ha una struttura gerarchica ad albero rovesciato ed \u00e8 suddiviso in \u201cdomini\u201d. Ad ogni dominio corrisponde un Nameserver, che conserva un database con le informazioni di alcuni domini dei quali \u00e8 responsabile, mentre si rivolge ai nodi successi quando deve trovare delle informazioni relative ad altri domini. Ogni nome di dominio termina con un carattere \u201c.\u201d. La stringa che segue il punto \u00e8 chiamata \u201cdominio radice\u201d o DNS Root Zone. I Server responsabili del dominio radice si chiamano Root Nameserver. Essi possiedono l\u2019elenco dei Server autoritativi di tutti i domini di primo livello (TLD: Top Level Domain) e lo forniscono in risposta a ciascuna richiesta. I Root Nameserver sono attualmente 13 in tutto il mondo: 10 negli USA, 2 in Europa e uno in Giappone. Il DNS delega la responsabilit\u00e0 di effettuare la mappatura tra indirizzi IP e relative risorse e nomi di dominio utilizzando i Root Nameserver autoritativi per quel dominio, mentre gli amministratori di rete possono delegare l\u2019autorit\u00e0 di mappare i sottodomini ad altri nameserver. Questo meccanismo fornisce un sistema distribuito fault tolerant ed evita che si generi un database di enormi dimensioni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il protocollo DNS specifica anche le modalit\u00e0 tecniche di funzionamento del database che lo costituisce, definendo una specifica dettagliata delle strutture dati&nbsp; e delle modalit\u00e0 di comunicazione che fanno parte integrante del protocollo TPC\/IP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Internet mantiene due principali namespace: la gerarchia dei nomi di dominio e lo spazio degli indirizzi IP. Il DNS mantiene la gerarchia dei nomi di dominio e fornisce servizi di traduzione\/mappatura tra di essa e lo spazio degli indirizzi IP. Un server DNS \u00e8 quindi un server che memorizza i record DNS per un dominio; un server dei nomi DNS risponde alle richieste sul suo database, restituendo indirizzi in corrispondenza di una query basata su un nome.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In pratica, il DNS \u00e8 un registro universale cio\u00e8 un database distribuito, con una struttura gerarchica, che archivia i nomi mnemonici di dominio e la loro associazione ai relativi indirizzi IP specifici.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Utilizzi<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I vantaggi di un tale sistema sono i seguenti:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>La possibilit\u00e0 di attribuire un nome testuale, pi\u00f9 facile da memorizzare, ad un server, anzich\u00e9 doverlo raggiungere tramite il suo indirizzo IP.<\/li><li>La possibilit\u00e0 di attribuire pi\u00f9 nomi allo stesso indirizzo IP e viceversa per rappresentare diversi servizi o funzioni messe a disposizione da un unico server. Questa caratteristica risulta molto utile in numerosi casi:<ul><li>Nel caso in cui si debba sostituire il server che ospita un servizio, o si debba modificare il suo indirizzo IP, \u00e8 sufficiente modificare il record DNS, senza dover intervenire sul client.<\/li><\/ul><ul><li>Utilizzando nomi diversi per riferirsi a diversi servizi di uno stesso server (e registrati quindi tutti con lo stesso indirizzo IP) \u00e8 possibile all\u2019occorrenza spostare una parte dei servizi su un altro host (con diverso indirizzo IP). Modificando quindi sul server DNS i record dei nomi associati ai servizi da spostare e registrando il nuovo IP al posto di quello vecchio, si otterr\u00e0 lo spostamento automatico delle nuove richieste di tutti i client su questo nuovo host, senza interruzione dei servizi.<\/li><\/ul><ul><li>Possibilit\u00e0 di gestire i Virtual Hosts, ovvero una tecnica che permette ai Web Server di gestire pi\u00f9 servizi e pi\u00f9 siti web da una sola interfaccia di rete con un singolo indirizzo IP, utilizzando l\u2019indirizzo alfanumerico del sito web desiderato per identificare su quale virtual host inoltrare la richiesta.<\/li><\/ul><ul><li>Associando ad uno stesso nome pi\u00f9 indirizzi IP \u00e8 possibile realizzare una struttura load balancing e fault tolerance, distribuendo le richieste su pi\u00f9 server.<\/li><\/ul><\/li><li>La risoluzione inversa \u00e8 utile per identificare l\u2019identit\u00e0 di un host o per leggere il risultato di un traceroute.<\/li><li>Il DNS viene utilizzato in maniera del tutto trasparente all\u2019utente e permette di organizzare in maniera pi\u00f9 efficiente le informazioni necessarie al funzionamento di un determinato servizio.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nomi di dominio<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un nome di dominio \u00e8 costituito da una serie di stringhe separate dal carattere \u201c.\u201d e organizzate a livelli. A differenza degli indirizzi IP, dove la parte pi\u00f9 importante \u00e8 la prima cifra partendo da sinistra, nei nomi a dominio del protocollo DNS la parte pi\u00f9 importante \u00e8 quella di destra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La parte destra infatti si chiama TLD, o Top Level Domain, detta anche estensione (.it, .com, etc).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A sinistra del \u201c.\u201d che precede l\u2019estensione TLD si trova il dominio di secondo livello, spesso formato da una parola a scelta (se disponibile per quella particolare estensione TLD).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ancora pi\u00f9 a sinistra troviamo il dominio di terzo livello, ad esempio il WWW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Record DNS<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un record DNS \u00e8 un valore che corrisponde ad una determinata informazione per un dato dominio. Esistono differenti tipi di record impiegati a seconda dei servizi che si vogliono utilizzare. Vediamo i pi\u00f9 comuni:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Record A<\/strong>: indica la corrispondenza tra un nome a dominio ed un indirizzo IPv4 a 32 bit, o anche pi\u00f9 indirizzi IP, infatti possono esistere pi\u00f9 Record A per ogni dominio. Il record A \u00e8 quindi utilizzato per collegare un nome host ad un indirizzo IP.<\/li><li><strong>Record AAAA<\/strong>: \u00e8 l\u2019equivalente del Record A ma utilizzato con gli indirizzi IPv6. Se interrogato restituisce quindi un IPv6 a 128 bit anzich\u00e9 un IPv4 a 32 bit come il Record A.<\/li><li><strong>Record MX (Mail eXchange)<\/strong>: indica quali server gestiscono la posta elettronica per un determinato dominio. Non necessariamente, infatti, un dominio gestisce anche le caselle di posta elettronica con la sua estensione, ma tale compito pu\u00f2 essere demandato ad un server esterno, identificato appunto dai record MX. Possono esistere pi\u00f9 record MX per ogni dominio, ed in questo caso esiste un campo che indica la precedenza di un record rispetto ad un altro.<\/li><li><strong>Record SRV<\/strong>: si utilizzano per identificare un determinato servizio offerto dal server all&#8217;interno di un dominio. Possono essere considerati una generalizzazione dei record MX.<\/li><li><strong>Record CNAME<\/strong>: Permettono di collegare un nome DNS ad un altro e sono quindi utilizzati per creare un alias, ovvero per fare in modo che lo stesso host sia noto con pi\u00f9 nomi. Questo Record \u00e8 molto utile per gestire pi\u00f9 servizi con lo stesso nome offerti da uno stesso server, ad esempio quando su un singolo server sono disponibili i servizi FTP, HTTP, ect. Utilizzando il CNAME i servizi, all\u2019occorrenza, possono essere spostati su altri host senza dover riconfigurare i client, ma modificando solo il DNS.<\/li><li><strong>Record PTR<\/strong>: si utilizza per la risoluzione inversa, ovvero per far corrispondere ad un indirizzo IP il corrispondente nome a dominio.<\/li><li><strong>Record TXT<\/strong>: si usano per associare dei campi di testo arbitrario ad un dominio e vengono utilizzati per scopi molto diversi, ad esempio per contenere una descrizione informativa sul dominio stesso oppure per verificare la titolarit\u00e0 del dominio stesso o per realizzare altri servizi particolari. Oggi viene usato per lo pi\u00f9 per trasmettere informazioni di sicurezza utilizzati dai server di invio e ricezione della posta elettronica.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Altri record sono pi\u00f9 particolari e sono necessari al funzionamento del database distribuito:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Record NS<\/strong>: questo particolare record si utilizza per indicare quali siano i server DNS autoritativi per un certo dominio, ovvero per delegarne la gestione.<\/li><li><strong>Record SOA (Start of Authority)<\/strong>: usato per la gestione delle zone DNS e per rilasciare informazioni circa il server DNS principale del dominio. Il suo valore si utilizza anche per verificare se ci sono state variazioni nei dati della zona e per gestire diversi timer che regolano la frequenza di trasferimento e la durata di validit\u00e0 degli altri record.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Time to Live<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dal momento che i record associati ad un certo nome a dominio possono variare i loro valori nel tempo, il protocollo DNS introduce il parametro TTL, ovvero Time to Live, che indica per quanto tempo il valore di un determinato record DNS pu\u00f2 essere memorizzato in un sistema di cache, in modo da essere risolto pi\u00f9 velocemente senza la necessit\u00e0 di effettuare una nuova interrogazione ai server autoritativi. Quando un server risponde ad una richiesta con un record prelevato dalla propria cache DNS, assegner\u00e0 alla risposta il TTL residuo per avvisare il richiedente del tempo di validit\u00e0 restante per quel determinato record. Se il record originario aveva un TTL di 12 ore, e un server risponde ad una richiesta con un dato che ha ottenuto due ore prima, nella risposta metter\u00e0 come TTL il valore di 10 ore. Il TTL, tuttavia, si misura in secondi.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"388\" src=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/33-Sequenza-risoluzione-DNS-1024x388.png\" alt=\"Figura 33: Sequenza di risoluzione DNS\" class=\"wp-image-1013\" srcset=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/33-Sequenza-risoluzione-DNS-1024x388.png 1024w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/33-Sequenza-risoluzione-DNS-300x114.png 300w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/33-Sequenza-risoluzione-DNS-768x291.png 768w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/33-Sequenza-risoluzione-DNS.png 1276w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em><strong>Figura 33: Sequenza di risoluzione DNS<\/strong><\/em><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Realizzazione DNS<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I DNS realizzano un namespace gerarchico in modo da consentire ad una parte del namespace, detto \u201czona\u201d, di essere delegato da un nameserver ad un altro che si trova pi\u00f9 in basso nella gerarchia. In questo modo di ottiene un sistema pi\u00f9 flessibile e fault tolerante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I nomi di dominio di secondo livello non possono superare i 63 caratteri e il nome complessivo non pu\u00f2 superare i 255 caratteri, oltre a non poter utilizzare tutti i caratteri ASCII ma solo un loro sottoinsieme (niente accenti n\u00e9 segni di interpunzione).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Zone, deleghe e repliche<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un Resource Record Set (RRS) o Zona DNS \u00e8 un sottoalbero del DNS amministrato separatamente, ovvero una parte del namespace, costituita da un dominio e dai suoi sottodomini che non sono a loro volta delegati, che si trova sotto una stessa gestione amministrativa e quindi \u00e8 gestita da uno o pi\u00f9 server. La gestione di una Zona DNS \u00e8 delegata dalla zona superiore tramite i record NS. Un Record NS che amministra un RRS, ovvero che amministra una Zona DNS, \u00e8 detto Record NS Autoritativo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essendo quindi ogni sottoalbero una Zona (RRS), ogni singolo dominio possiede necessariamente un NS autoritativo. Ad esempio, per la zona \u201c.it\u201d ci sar\u00e0 una delega per la zona \u201cil-mio-ip.it\u201d affidata ai server DNS che la gestiscono. Ogni Zona solitamente \u00e8 replicata su pi\u00f9 server NS per garantire la ridondanza, infatti ogni dominio ha almeno un Record NS primario e un Record NS secondario (detti anche Master e Slave): quello primario gestisce il database, ovvero i record veri e propri, mentre il secondario effettua una semplice copia del primo a scopo di ridondanza. I diversi server delegati per una zona, quindi, devono contenere le stesse informazioni in modo da rispondere correttamente, e allo stesso modo, ad una stessa query DNS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per tenere traccia delle diverse versioni di una Zona DNS, ed i particolare per fare in modo che il record secondario decida o meno di replicare le informazioni del record primario, si utilizza il valore del record SOA, che \u00e8 una sorta di numero di serie. Ogni record inferiore al primario effettua un\u2019interrogazione del record SOA e confronta il valore contenuto nel Record NS primario con il proprio. Se il valore del SOA primario \u00e8 superiore al proprio allora effettua la copia, che pu\u00f2 essere completa (tutti i record) o incrementale (si copiano solo i record modificati). Ad ogni modifica del NS primario il valore del record SOA viene incrementato di una unit\u00e0. Ricordiamo che la root dell\u2019albero dei nomi DNS \u00e8 la zona \u201c.\u201d, gestita da un insieme di server detti appunto Root Server.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"675\" src=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/34-DNS-Domain-Name-System-1024x675.png\" alt=\"Figura 34: Domain Name Space\" class=\"wp-image-1014\" srcset=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/34-DNS-Domain-Name-System-1024x675.png 1024w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/34-DNS-Domain-Name-System-300x198.png 300w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/34-DNS-Domain-Name-System-768x506.png 768w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/34-DNS-Domain-Name-System.png 1323w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em><strong>Figura 34: Domain Name Space<\/strong><\/em><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Risoluzione tramite iterazione e ricorsione<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La risoluzione DNS di un nome a dominio si compone delle seguenti fasi:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Il Client (ad esempio un browser) interroga il DNS, chiedendo di ottenere l\u2019indirizzo per un dominio;<\/li><li>Il DNS restituisce al Cliente il record corrispondente al dominio richiesto;<\/li><li>Il Client si connette all\u2019indirizzo contenuto nel record.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Esistono tuttavia due tipi di query DNS: iterazione e ricorsione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Iterazione<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con l\u2019iterazione per ottenere la risoluzione di un nome \u00e8 necessario partire dalla radice, interrogare uno dei Root Server del dominio di primo livello, ottenere quindi il server che lo gestisce, interrogare il server di secondo livello a sua volta, fino a raggiungere il server autoritativo del nome a dominio desiderato. Questa tecnica prende il nome di iterazione. Vediamo i passaggi in dettaglio<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Il Client chiede al Local NS l\u2019indirizzo del dominio;<\/li><li>Il Local NS interroga il Root NS per ottenere l\u2019indirizzo del NS autoritativo per il TLD del dominio;<\/li><li>Il Local NS interroga il TLD NS per l\u2019indirizzo dell\u2019NS autoritativo per il dominio richiesto;<\/li><li>Il Local NS interroga il NS autoritativo per il dominio, per ottenere l\u2019indirizzo della risorsa richiesta;<\/li><li>Il Local NS restituisce l\u2019indirizzo trovato al Client, che potr\u00e0 quindi raggiungere la destinazione;<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">in pratica \u00e8 il Local NS che si occupa di interrogare in maniera iterativa tutti i NS che sono coinvolti nella query. Dopo ogni singola interrogazione \u00e8 sempre il Local NS che si occupa di interrogare il NS successivo, fino a giungere al NS autoritativo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ricorsione<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nella risoluzione DNS ricorsiva il Client effettua una richiesta al Root Server, il quale la inoltra al TLD server, il quale a sua volta la inoltra al server autoritativo e cos\u00ec via fino a raggiungere il server desiderato. La risposta DNS procede quindi in senso inverso fino a raggiungere il client che aveva fatto la richiesta.<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Il Client chiede al Local NS l\u2019indirizzo del dominio;<\/li><li>Il Local NS delega la richiesta al Root Server NS;<\/li><li>Il Root Server NS delega la richiesta al TLD NS;<\/li><li>Il TLD NS interroga il NS Autoritativo per il dominio in questione;<\/li><li>Il NS autoritativo rimanda il record al TLD NS. Il record viene passato tra tutti i NS coinvolti, fino al Local NS;<\/li><li>Il Local NS restituisce l\u2019indirizzo al Client, che potr\u00e0 raggiungere la destinazione;<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">in questo modo quindi ogni NS interroga il successivo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Local NS<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il Local NS (o anche Default NS) \u00e8 il nameserver che viene assegnato di default dall\u2019ISP del Client. \u00c8 possibile cambiarlo impostando manualmente l\u2019indirizzo dei nameserver desiderati solitamente nelle impostazioni della scheda di rete, o dal gateway. Ad esempio, Google mette a disposizione i suoi Public DNS (8.8.8.8, 8.8.4.4) che sono quindi dei Local NS che effettuano query DNS in modalit\u00e0 iterativa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Risolutore DNS del client<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il Local NS restituisce comunque un record al client, il cui valore viene estrapolato attraverso il risolutore DNS del client. Il risolutore DNS locale, infatti, pu\u00f2 essere configurato (generalmente \u00e8 cos\u00ec di default) per porre i record ricevuti in cache, per ottimizzare le future connessioni agli stessi host. Oltre alla propria cache DNS, il client possiede anche una propria mappatura tra nomi di dominio e indirizzi IP \u2013 il file degli hosts \u2013 che pu\u00f2 essere facilmente modificato dagli utenti. Riassumendo, quindi, il client prima controlla il file degli hosts, poi la propria cache e, infine (se non trova il dominio) interroga il Local NS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Caching<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per risparmiare il tempo necessario ad effettuare l\u2019iterazione o la ricorsione alcuni Server memorizzano i risultati delle Query in una cache per un determinato periodo di tempo, implementando quindi la funzione di Cache DNS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Formato messaggi DNS<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"357\" src=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/35-Formato-Messaggi-DNS-1024x357.png\" alt=\"Figura 35: Formato messaggio DNS\" class=\"wp-image-1015\" srcset=\"https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/35-Formato-Messaggi-DNS-1024x357.png 1024w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/35-Formato-Messaggi-DNS-300x105.png 300w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/35-Formato-Messaggi-DNS-768x268.png 768w, https:\/\/il-mio-ip.it\/wp-content\/uploads\/2021\/08\/35-Formato-Messaggi-DNS.png 1231w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em><strong>Figura 35: Formato messaggio DNS<\/strong><\/em><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Il protocollo DNS utilizza due tipi di messaggi: le query e le risposte, ed entrambi i tipi di messaggio hanno lo stesso formato. Ogni messaggio \u00e8 costituito da un\u2019intestazione e da 4 sezioni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019intestazione (header) \u00e8 formata come segue:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Identificazione<\/li><li>Flag (Parametri)<\/li><li>N\u00b0 di domande<\/li><li>N\u00b0 di risposte<\/li><li>N\u00b0 di Authority<\/li><li>N\u00b0 di informazioni aggiuntive<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il campo di intestazione chiamato Flag controlla il contenuto delle quattro sezioni. Ciascun campo \u00e8 lungo 16 bit e viene visualizzato nell&#8217;ordine indicato. Il campo di identificazione viene utilizzato per abbinare le risposte alle domande.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le quattro sezioni sono le seguenti:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sezione domande<\/li><li>Sezione risposte<\/li><li>Sezione Authorithy<\/li><li>Sezione informazioni aggiuntive<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il campo flag \u00e8 costituito da sottocampi come segue:<\/p>\n\n\n\n<table id=\"tablepress-3\" class=\"tablepress tablepress-id-3\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Campo<\/th><th class=\"column-2\">Descrizione<\/th><th class=\"column-3\">Bit<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">QR<\/td><td class=\"column-2\">Indica se il messaggio \u00e8 una query (0) o una risposta (1)<\/td><td class=\"column-3\">1<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">OPCODE<\/td><td class=\"column-2\">Il tipo pu\u00f2 essere QUERY (query standard, 0), IQUERY (query inversa, 1) o STATUS (richiesta di stato del server, 2)<\/td><td class=\"column-3\">4<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">AA<\/td><td class=\"column-2\">Risposta autorevole, in una risposta, indica se il server DNS \u00e8 autorevole per il nome host richiesto<\/td><td class=\"column-3\">1<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">TC<\/td><td class=\"column-2\">Truncation, indica che questo messaggio \u00e8 stato troncato a causa della lunghezza eccessiva<\/td><td class=\"column-3\">1<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">RD<\/td><td class=\"column-2\">Ricorsione desiderata, indica se il client intende una query ricorsiva<\/td><td class=\"column-3\">1<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">RA<\/td><td class=\"column-2\">Ricorsione RA Disponibile, in una risposta, indica se il server DNS di risposta supporta la ricorsione<\/td><td class=\"column-3\">1<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">Z<\/td><td class=\"column-2\">Zero, riservato per uso futuro<\/td><td class=\"column-3\">3<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">RCODE<\/td><td class=\"column-2\">Codice di risposta, pu\u00f2 essere NOERROR (0), FORMERR (1, Errore di formato), SERVFAIL (2), NXDOMAIN (3, Dominio inesistente), ecc<\/td><td class=\"column-3\">4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-3 from cache -->\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DNS Dinamico (DDNS)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il DNS dinamico \u00e8 una tecnologia che permette di inserire automaticamente in una zona DNS degli indirizzi IP relativi ad host che ottengono indirizzi non predefiniti, o i cui indirizzi per diversi motivi possono variare spesso: \u00e8 il caso di un ISP che assegna ad una connessione un indirizzo IP pubblico dinamico tramite DHCP o PPP. A tale scopo sono state definite delle query DNS di \u201cUPDATE\u201d. Esistono appositi software, i client DNS, sia a livello applicazione che all\u2019interno dei router, che permettono di utilizzare un servizio di DDNS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DNS Security Extensions (DNSSEC)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inizialmente il protocollo DNS era del tutto privo di un sistema di cifratura, e poneva quindi diversi problemi di sicurezza. \u00c8 stato quindi implementato il protocollo DNSSEC per introdurre il supporto alla crittografia, introducendo nuovi specifici record. Il DNSSEC utilizza una crittografia a chiave pubblica e dei certificati digitali.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#f3f9fb\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/il-mio-ip.it\/guida-al-networking\/ftp-ftps-file-transfer-protocol\/\" data-type=\"page\" data-id=\"1002\">&lt;&lt; <strong>FTP\/FTPS \u2013 File Transfer Protocol<\/strong><\/a><\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"has-text-align-right wp-block-heading\"><a href=\"https:\/\/il-mio-ip.it\/guida-al-networking\/dhcp-dynamic-host-configuration-protocol-2\/\" data-type=\"page\" data-id=\"1025\"><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>DHCP &#8211; Dynamic Host Configuration Protocol<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong> >><\/a><\/h3>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>DNS &#8211; Domain Name System Il Protocollo DNS \u00e8 un sistema utilizzato per assegnare dei nomi mnemonici agli host di una rete, in modo da evitare di dover ricordare a memoria i loro indirizzi IP. Ad ogni indirizzo IP vengono quindi assegnati uno o pi\u00f9 nomi alfanumerici, utilizzati per accedere alle risorse messe a disposizione [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":647,"menu_order":56,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"right-sidebar","site-content-layout":"plain-container","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[10],"tags":[],"class_list":["post-1011","page","type-page","status-publish","hentry","category-guida-al-networking"],"featured_image_urls_v2":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":""},"post_excerpt_stackable_v2":"<p>DNS &#8211; Domain Name System DNS &#8211; Domain Name System Il Protocollo DNS \u00e8 un sistema utilizzato per assegnare dei nomi mnemonici agli host di una rete, in modo da evitare di dover ricordare a memoria i loro indirizzi IP. Ad ogni indirizzo IP vengono quindi assegnati uno o pi\u00f9 nomi alfanumerici, utilizzati per accedere alle risorse messe a disposizione dell\u2019host remoto. Le risorse dell\u2019host remoto saranno quindi rese disponibili tramite un nome che a sua volta andr\u00e0 ad inoltrare la richiesta ad un indirizzo IP e numero di porta, mediante una chiamata detta \u201crisoluzione\u201d del DNS. In pratica la&hellip;<\/p>\n","category_list_v2":"<a href=\"https:\/\/il-mio-ip.it\/?cat=10\" rel=\"category\">Guida al Networking<\/a>","author_info_v2":{"name":"admin","url":"https:\/\/il-mio-ip.it\/?author=1"},"comments_num_v2":"0 commenti","_links":{"self":[{"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages\/1011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1011"}],"version-history":[{"count":4,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages\/1011\/revisions"}],"predecessor-version":[{"id":1044,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages\/1011\/revisions\/1044"}],"up":[{"embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=\/wp\/v2\/pages\/647"}],"wp:attachment":[{"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/il-mio-ip.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}