diff --git a/networking/026-dns.md b/networking/026-dns.md index 4a90203..3f740dc 100644 --- a/networking/026-dns.md +++ b/networking/026-dns.md @@ -75,3 +75,53 @@ I `Resource Records` (RR) o records DNS sono informazioni strutturate in quattro - `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 +## Pacchetto DNS + +Il pacchetto DNS è costituito da diverse componenti, alcune delle quali vengono utilizzate se il pacchetto è una richiesta DNS (DNS request) e altre nella risposta (DNS response). La struttura principale del pacchetto include: + +### Intestazione (Header) + +L'intestazione, lunga 12 byte, contiene vari campi: + +- `Transaction ID`: un identificatore univoco della richiesta, che consente di associare una specifica query alla sua risposta +- `Flags`: un insieme di valori rappresentati da singoli bit, ciascuno dei quali può essere acceso (1) o spento (0): + - `QR`: indica se il pacchetto è una query (0) o una risposta (1) + - `AA` (Authoritative Answer): indica se la risposta è autoritativa (1) o meno (0) +- `RCODE` (Response Code): un campo di 4 bit che riporta codici di risposta per eventuali errori +- `QDCount`: il numero di richieste presenti nella sezione *Question*, che indica quante domande sono state formulate +- `ANCount`: il numero di record di risposta presenti nella sezione *Answer* +- `NSCount`: il numero di RR presenti nella sezione *Authority*, che indica quanti record provengono da un server autoritativo +- `ARCount`: il numero di record presenti nella sezione *Additional*, che fornisce informazioni supplementari utili per la risoluzione della richiesta + +### Sezione Questions + +La sezione Questions contiene la/e richiesta/e DNS e include i seguenti campi: + +- `QNAME`: il nome di dominio per il quale si sta effettuando la richiesta +- `QTYPE`: indica il tipo di record richiesto, rappresentato da un codice associato al tipo di RR specificato in QNAME. + - A (1) + - AAAA (28) + - MX (15) + - CNAME (5) +- `QCLASS`: indica la classe della query, specificando il contesto/luogo in cui si sta cercando l'informazione per il nome di dominio. Per un contesto ampio, come Internet, si utilizza la QCLASS IN (Internet). + +Questi campi forniscono le informazioni necessarie per elaborare la richiesta e ottenere la risposta desiderata. + +### Sezione Answers (Risposte) + +La sezione Answers fornisce le risposte alla/e richiesta/e DNS e include i seguenti campi: + +- `Name`: rappresenta il dominio per il quale è stata effettuata la richiesta +- `Type`: indica il tipo di record restituito, come A, AAAA, MX, CNAME, ecc. +- `CLASS`: rappresenta la classe di risposta, che è quasi sempre IN (Internet). +- `TTL` (Time to Live): indica il tempo di vita della risposta. Una volta scaduto, l'informazione viene considerata obsoleta e viene eliminata +- `RD Length`: indica la lunghezza dei dati di risposta, specificando quanti byte occupa l'informazione restituita +- `RDATA`: contiene i dati effettivi della risposta, che variano a seconda del tipo di record richiesto + +### Sezione Authority + +La sezione Authority indica le risposte provenienti da server DNS autoritativi. + +### Sezione Additional + +La sezione Additional può contenere informazioni extra che non rientrano nelle altre sezioni. \ No newline at end of file