DNS

Disponibile

Storia del DNS

Negli anni '70, le persone si stancavano di ricordare gli indirizzi IP dei server a cui volevano accedere. Allo stesso tempo, è nata l'idea di utilizzare un nome più semplice e memorabile invece di un indirizzo host numerico.

I lavoratori dello Stanford Research Institute hanno creato un file di testo HOSTS.TXT , che conteneva un elenco di nomi di stringhe e i corrispondenti indirizzi numerici dei computer su ARPANET.

Gli indirizzi sono stati assegnati manualmente. Per richiedere un nome host e un indirizzo o aggiungere un computer al file principale, gli utenti hanno contattato telefonicamente il centro informazioni di rete di Stanford durante l'orario lavorativo.

All'inizio degli anni '80, il mantenimento di un'unica tabella host centralizzata era diventato lento e ingombrante e la rete in crescita necessitava di un sistema di denominazione automatico per affrontare i problemi tecnici e del personale.

Nel 1984, quattro studenti della UC Berkeley scrissero la prima versione del sistema gerarchico dei nomi di dominio. Ora è ampiamente utilizzato, soprattutto sui sistemi Unix, ed è ancora il software DNS più utilizzato su Internet.

Introduzione al DNS

Domain Name System (DNS) è un sistema di distribuzione per l'archiviazione e il recupero di informazioni sui domini. È più comunemente utilizzato per ottenere un indirizzo IP da un nome host (computer o dispositivo), ottenere informazioni sul routing della posta e/o servire gli host per i protocolli in un dominio.

Il sistema è organizzato sotto forma di una certa gerarchia di server DNS che interagiscono secondo un certo protocollo. La base per comprendere il DNS è la comprensione della struttura gerarchica del nome e delle zone.

Ogni server responsabile di una zona di dominio può trasferire la responsabilità di un'ulteriore parte del dominio a un altro server, il che rende possibile assegnare la responsabilità della pertinenza delle informazioni ai server di varie organizzazioni che sono responsabili solo della "loro" parte del dominio nome del dominio.

Il sistema DNS contiene una gerarchia di server DNS corrispondente alla gerarchia di zona. Ogni zona è supportata da almeno un server DNS autorevole che ospita informazioni sul dominio.

Importante! Il nome e l'indirizzo IP non sono necessariamente correlati uno a uno. Un indirizzo IP può avere molti nomi di dominio, il che consente di supportare molti siti Web su un computer (questo si chiama hosting condiviso ).

Può anche essere il contrario: molti indirizzi IP possono essere associati a un nome di dominio: questo consente di creare un bilanciamento del carico e viene utilizzato attivamente nelle reti CDN .

Per aumentare la stabilità del sistema, vengono utilizzati molti server contenenti informazioni identiche e il protocollo dispone dei mezzi per mantenere il sincronismo delle informazioni situate su server diversi. Ci sono 13 root server, i loro indirizzi praticamente non cambiano.

Interessante! Il protocollo DNS utilizza la porta 53 TCP o UDP per rispondere alle query. Tradizionalmente, le richieste e le risposte vengono inviate come un singolo datagramma UDP. TCP viene utilizzato quando la dimensione dei dati di risposta supera i 512 byte.

Record DNS

Il server DNS memorizza una serie di parametri per ciascun nome di dominio. Si tratta di record relativi al nome di dominio, al suo indirizzo IP e a varie informazioni di servizio.

Ci sono diverse dozzine di tali voci in totale, quindi considereremo solo le più popolari:

UN Indirizzo indirizzo IP
AAAA Indirizzo IPv6 Indirizzo in formato IPv6
CNOME Nome canonico Nome canonico per alias
MX scambiatore di posta Indirizzo del gateway di posta per il dominio
NS server dei nomi L'indirizzo del nodo responsabile della zona di dominio
SOA Inizio dell'autorità Indicazione dell'autorità di informazione
SRV selezione del server Specifica delle posizioni dei server per i servizi
PTR puntatore Corrispondenza nome indirizzo - Corrispondenza inversa per A e AAAA
TXT stringa di testo Scrivi dati binari arbitrari, fino a 255 byte

I più interessanti qui sono:

  • Il record A consente di specificare un indirizzo IP che corrisponde a un dominio.
  • CNAME consente di impostare un sinonimo per il nome, ad esempio www.codegym.cc == codegym.cc.
  • Il record MX contiene informazioni sul server di posta: cosa fare se arriva una lettera a xxx@codegym.cc.
  • NS - indica l'indirizzo del server DNS, che contiene informazioni su questo dominio. Utile quando i record vengono memorizzati nella cache e archiviati su nodi non nativi.

Ricerca indirizzo IP

Vediamo come funziona il sistema DNS.

Diciamo che hai digitato api.codegym.cc nel tuo browser. Il browser contatterà il servizio DNS locale e ti chiederà di fornirgli un indirizzo IP per il dominio api.codegym.cc. Ecco cosa accadrà dopo...

Innanzitutto, il servizio DNS controlla se questo dominio si trova nel file hosts locale sul tuo computer. Se c'è, ne prende l'indirizzo IP. In caso contrario, invia una richiesta al server DNS a lui noto: "Qual è l'indirizzo IP di api.codegym.cc?".

Tuttavia, il server DNS potrebbe non sapere nulla non solo del nome richiesto, ma anche dell'intero dominio codegym.cc. In questo caso, il server contatta il root server, ad esempio 198.41.0.4. Questo server dice: "Non ho informazioni su questo indirizzo, ma so che 204.74.112.1 è responsabile della zona ru".

Quindi il server DNS invia la sua richiesta a 204.74.112.1, ma risponde: "Non ho informazioni su questo server, ma so che 207.142.131.234 è responsabile della zona codegym.cc.". Infine, la stessa richiesta viene inviata a un terzo server DNS e riceve una risposta: un indirizzo IP, che viene trasmesso al client, ovvero al browser.

In questo caso, nel processo di ricerca di un IP per nome, hanno funzionato le seguenti regole:

  • Il browser ha inviato una richiesta ricorsiva a un server DNS noto (in risposta a questo tipo di richiesta, il server deve restituire un indirizzo IP, oppure una risposta vuota e un codice di errore NXDOMAIN).
  • Il server DNS che ha ricevuto la richiesta dal browser ha inviato in successione richieste non ricorsive, alle quali ha ricevuto risposte da altri server DNS, fino a quando non ha ricevuto una risposta dal server responsabile della zona richiesta.
  • Il resto dei server DNS menzionati stava elaborando le richieste in modo non ricorsivo (e molto probabilmente non avrebbe elaborato le richieste in modo ricorsivo, anche se tale requisito fosse nella richiesta).

A volte è possibile che il server richiesto invii una query ricorsiva a un server DNS "a monte" e attenda una risposta pronta.

Importante! Con l'elaborazione ricorsiva delle query, tutte le risposte passano attraverso il server DNS e ha l'opportunità di memorizzarle nella cache. Una richiesta ripetuta per gli stessi nomi di dominio di solito non va oltre la cache del server e le chiamate ad altri server non si verificano affatto.

Il tempo di cache consentito per le risposte viene fornito con le risposte (campo TTL del record della risorsa).

file hosts

Abbiamo notato che la prima ricerca è nel file hosts locale. Questo è l'erede del file HOSTS.TXT, che è stato inventato ai tempi di ARPANET. Sì, esiste ancora ed è ancora in uso.

Si trova lungo il percorso:

  • /etc/host su Linux.
  • %SystemRoot%\system32\drivers\etc\hosts su Windows.
  • /system/etc/hosts su Android.

In genere, il file include una definizione di posizione per il nodo localhost:

127.0.0.1   	localhost

La sua struttura è molto semplice: prima viene l'indirizzo IP, poi il nome del dominio.

Utile

Utilizzando il file hosts, è possibile filtrare gli annunci reindirizzando gli indirizzi di dominio dei banner all'indirizzo 127.0.0.0, 127.0.0.1 o 0.0.0.0.

L'uso di 127.0.0.1 in genere non è consigliato, in quanto comporta un timeout di risposta e ritardi associati se il server non esiste o non è configurato correttamente. E se mappi un dominio pubblicitario sull'indirizzo IP 0.0.0.0, tutte le richieste ad esso verranno immediatamente annullate).

Server DNS pubblici

Di solito ottieni un server DNS insieme al tuo servizio Internet quando lo connetti. Ma un server DNS così gratuito non è sempre l'opzione migliore. Inoltre, potresti non voler inviare una query con il nome di dominio ogni volta che visiti un sito al server DNS del tuo ISP.

Pertanto, molte persone preferiscono passare a server DNS gratuiti pubblici. Innanzitutto, sono molto veloci e dispongono di una grande cache di nomi di dominio. Otterrai un caricamento e un tempo di attività del sito più rapidi con una minima possibilità di problemi tecnici.

In secondo luogo, la sicurezza. Alcuni servizi DNS possono bloccare l'accesso a siti di phishing e dannosi e offrire un filtro dei contenuti per proteggere i bambini da contenuti inappropriati online.

Tali server DNS possono persino combattere i truffatori. Ad esempio, vai su un sito Web di una banca falsa e il server DNS ti fornirà non l'indirizzo IP dei truffatori, ma il suo servizio di sicurezza.

Elenco di tali server

cloudflare 1.1.1.1
1.0.0.1
Cloudflare promette che non utilizzerà i dati dei visitatori per pubblicare annunci e non masterizzerà mai su disco gli indirizzi IP di origine della richiesta.
DNS pubblico di Google 8.8.8.8
8.8.4.4
Memorizza informazioni complete sull'indirizzo IP del dispositivo richiedente per circa 24-48 ore per la risoluzione dei problemi e la diagnostica
Comodo DNS sicuro 8.26.56.26
8.20.247.20
Blocca i siti di phishing, ma avvisa anche se stai tentando di visitare siti con malware, spyware
Yandex.DNS 77.88.8.8
77.88.8.1
Servizio DNS gratuito da un popolare motore di ricerca russo
Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti