Poiché sempre più persone adottano funzionalità più recenti come IPv6, spam avoidance e DNSSEC, è più probabile che DNS passi a TCP a causa delle dimensioni della risposta più grandi.

Cosa succede se TCP è bloccato?

In ogni caso, quando la dimensione del messaggio supera i 512 byte, attiverà il bit ‘TC’ (Troncamento) nel DNS da impostare, informando il client che la lunghezza del messaggio ha superato la dimensione consentita. In queste situazioni, il client deve ritrasmettere su TCP, che non ha limiti di dimensione., Se i server DNS e l’ambiente di rete non possono supportare pacchetti UDP di grandi dimensioni, ciò causerà la ritrasmissione su TCP; se TCP è bloccato, la risposta UDP di grandi dimensioni comporterà la frammentazione IP o verrà eliminata completamente. Il sintomo finale al client finale è solitamente una risoluzione DNS lenta o l’incapacità di risolvere determinati nomi di dominio.

Le dimensioni contano: EDNS

Potresti chiederti da dove proviene il limite di dimensioni di 512 byte. La dimensione del payload UDP a 512 byte è una dipendenza da IPv4., Lo standard IPV42 specifica che ogni host deve essere in grado di riassemblare pacchetti di 576 byte o meno, take away header e altre opzioni, che lasciano 512 byte per i dati del payload. Questo è il motivo per cui ci sono precisamente 13 server root DNS3 in origine: 13 nomi di dominio e 13 indirizzi IPv4 si adattano perfettamente a un singolo pacchetto UDP.

Questa limitazione delle dimensioni è stata riconosciuta molto tempo fa come un problema. Nel 1999, Meccanismo di estensione per DNS (EDNS) è stato proposto, ed è stato aggiornato nel corso degli anni, aumentando la dimensione fino a 4096 byte, o 4 kilobyte., Quindi, se si esegue un server DNS ragionevolmente aggiornato, le probabilità che passi a TCP dovrebbero essere ridotte(mer).

Tuttavia, anche se EDNS è in circolazione da molto tempo, il suo supporto non è stato così universale come dovrebbe essere4 . Alcune apparecchiature di rete, come i firewall, potrebbero ancora formulare ipotesi sulla dimensione del pacchetto DNS. Un firewall può cadere o rifiutare un grande pacchetto DNS, pensando che sia un attacco., Questo comportamento potrebbe non aver causato problemi visibili in passato (o lo ha fatto ma nessuno ha capito perché), ma poiché i dati DNS continuano ad aumentare di dimensioni, è importante che tutte le apparecchiature di rete siano configurate correttamente per supportare pacchetti DNS di grandi dimensioni. Se l’ambiente di rete non supporta completamente i messaggi DNS di grandi dimensioni, il messaggio DNS può essere rifiutato dall’ingranaggio di rete o parzialmente eliminato durante la frammentazione. Ciò che sembra all’utente finale è che le query DNS non hanno risposta, o richiedono molto tempo, dando l’impressione che “DNS/rete sia davvero lento.,”

Mentre EDNS è necessario per il funzionamento dei DNS moderni, la possibilità di inviare messaggi più grandi ha contribuito ad attacchi volumetrici come l’amplificazione e la riflessione.