Files
learning/networking/026-dns.md
2025-06-15 15:07:52 +02:00

5.8 KiB

Domain Name System (DNS)

Il Domain Name System o DNS è un protocollo del livello applicativo (layer 7) nel modello ISO/OSI (layer 5 nel modello TCP/IP). Utilizza il protocollo UDP a livello di trasporto ed è associato alla well-know port 53.

La funzione principale del DNS è quella di tradurre i nomi di dominio in indirizzi IP, facilitando così la navigazione degli utenti. Oltre a questa funzione principale, il DNS offre anche altre due importanti caratteristiche:

  • Aliasing: consente di creare alias per un dominio principale (ad esempio, per il dominio miosito.com, è possibile avere alias come blog.miosito.com)
  • Load Balancing: il DNS può anche fungere da bilanciatore di carico. Quando un client richiede l'indirizzo IP di un web server, il DNS può inviare la richiesta a un server specifico in base al carico di lavoro attuale, smistando così le richieste tra più indirizzi IP associati allo stesso dominio

Gerarchia DNS

Quando il processo di risoluzione DNS viene avviato, si seguono diversi passaggi per ottenere l'indirizzo IP associato a un nome di dominio.

Il primo passo consiste nell'interrogare la memoria locale del dispositivo, la quale può contenere sia entry manuali inserite dall'utente sia informazioni precedentemente risolte e memorizzate nella cache.

DNS Resolver locale

Se l'informazione non è presente nella memoria locale, il sistema si rivolge al DNS resolver locale, che può essere:

  • un server DNS configurato localmente sulla macchina o sul proprio router
  • un server DNS locale nella LAN
  • un server DNS fornito dal proprio Internet Service Provider (ISP)

Server DNS root

Se il resolver locale non riesce a fornire la risposta, la richiesta viene inoltrata ai server DNS root, che rappresentano il primo livello della gerarchia DNS. Non contengono informazioni specifiche sui nomi di dominio, ma il loro compito principale è quello di indirizzare la risoluzione verso i server dei Top Level Domain (TLD), che si trovano al secondo livello della gerarchia. Questi server gestiscono i domini di primo livello, come ad esempio .com, .org, ecc.

Server TLD

I server TLD ricevono la richiesta e, a loro volta, indirizzano il resolver verso i server DNS autoritativi per il dominio specifico richiesto.

Server DNS Autoritativi

Infine, al terzo livello della gerarchia, ci sono i server DNS autoritativi. Questi server contengono le informazioni definitive riguardanti il dominio richiesto e sono gestiti dal proprietario del dominio o da un ente di fiducia a cui il proprietario si affida. Solo questi server possono fornire la risposta finale, ovvero l'indirizzo IP associato al nome di dominio.

dns-hierarchy

Risoluzione DNS

La risoluzione DNS può avvenire attraverso due modalità principali:

  • Interattiva: nella modalità interattiva, il DNS resolver locale richiede direttamente l'informazione a ciascun livello della gerarchia DNS, partendo dal server DNS root fino ai server autoritativi. Questo approccio presenta diversi vantaggi in termini di sicurezza. Il resolver locale quindi:
    • invia richieste ai server DNS root per ottenere indicazioni sui server TLD appropriati
    • prosegue a interrogare i server TLD per ottenere informazioni sui server autoritativi specifici del dominio richiesto
    • contatta i server autoritativi per ottenere l'indirizzo IP associato al nome di dominio
  • Ricorsiva: nella modalità ricorsiva, il resolver locale delega la responsabilità di trovare l'informazione a altri server DNS, partendo dal server DNS root di primo livello. Questo processo continua in modo ricorsivo, con ogni server che fornisce indicazioni al successivo, fino a quando il resolver non ottiene la risposta finale

Zona DNS

Una zona DNS è una sottosezione della gerarchia DNS che comprende un insieme di server DNS responsabili di un determinato dominio e dei suoi sottodomini. Questa zona contiene tutte le informazioni relative ai nomi di dominio e ai relativi Resource Records (RR).

Il namespace di una zona DNS è l'insieme completo di tutte le informazioni contenute in quella zona. Ogni zona DNS ha un server DNS autoritativo, che è responsabile di fornire informazioni accurate e aggiornate sulla zona stessa.

Records DNS

I Resource Records (RR) o records DNS sono informazioni strutturate in quattro macro campi: (nome, tipo, valore, TTL). Esistono diversi tipi di record DNS, ognuno con uno scopo specifico:

  • Tipo A (Address Record): associa un nome di dominio a un indirizzo IPv4, un processo noto come DNS lookup. Ad esempio, (www.sito.com,A,X.X.X.X,100)

  • Tipo AAAA (Address Record): simile al tipo A, ma associa un nome di dominio a un indirizzo IPv6

  • Tipo MX (Mail Exchange Record): indica il server di posta autorizzato a ricevere email per un dominio (www.gmail.com,MX,smtp.gmail.com,100)

  • Tipo CNAME (Canonical Name Record): associa un nome di dominio canonico a un alias (www.sito.com,CNAME,blog.sito.com,100)

  • Tipo NS (Name Server Record): identifica i server responsabili per una zona di dominio (detti name server), mappando il dominio al nome di un ns (www.sito.com,NS,ns1.dnsprovider.com,100)

  • Tipo PTR (Pointer Record): utilizzato per la reverse DNS lookup, associa un indirizzo IP a un nome di dominio (152.152.142.12.in-addr.arpa,PTR,www.sito.com,100)

  • Tipo SOA (Start of Authority): fornisce informazioni amministrative sulla zona DNS, inclusi i server autoritativi. Un esempio di record SOA:

    @ IN SOA ns.example.com. admins.siteground.com. (
    2022010101 ; Serial
    86400 ; Refresh
    7200 ; Retry
    3600000 ; Expire
    86400 ; Minimum TTL
    )
    
  • Tipo TXT: Associa una stringa di testo a un dominio. I record TXT sono spesso utilizzati per configurazioni relative alla posta elettronica, come SPF, DKIM e DMARC, per migliorare la sicurezza e l'autenticità delle comunicazioni email