1. Introduzione (Introduction)
La maggior parte delle transazioni DNS [RFC1034] avviene su UDP [RFC768]. TCP [RFC793] è sempre usato per trasferimenti di zona completi (usando AXFR) ed è spesso usato per messaggi le cui dimensioni superano il limite originale di 512 byte del protocollo DNS. La crescente diffusione della sicurezza DNS (DNSSEC) e di IPv6 ha aumentato le dimensioni delle risposte e quindi l'uso di TCP. La necessità di un maggiore uso di TCP è stata anche guidata dalla protezione che fornisce contro lo spoofing degli indirizzi e quindi lo sfruttamento del DNS negli attacchi di riflessione/amplificazione. È ora ampiamente utilizzato nella limitazione della velocità di risposta (Response Rate Limiting) [RRL1] [RRL2]. Inoltre, il recente lavoro sulle soluzioni per la privacy DNS come [DNS-over-TLS] è un'altra motivazione per rivisitare i requisiti DNS-over-TCP.
La sezione 6.1.3.2 della [RFC1123] afferma:
I risolutori DNS e i server ricorsivi DEVONO (MUST) supportare UDP, e DOVREBBERO (SHOULD) supportare TCP, per l'invio di query (non di trasferimento di zona).
Tuttavia, alcuni implementatori hanno interpretato il testo citato sopra nel senso che il supporto TCP è una caratteristica opzionale del protocollo DNS.
La maggior parte degli operatori di server DNS supporta già TCP e la configurazione predefinita per la maggior parte delle implementazioni software è quella di supportare TCP. Il pubblico principale di questo documento sono quegli implementatori il cui supporto limitato per TCP limita l'interoperabilità e ostacola la distribuzione di nuove funzionalità DNS.
Questo documento aggiorna quindi le specifiche del protocollo DNS di base in modo tale che il supporto per TCP sia d'ora in poi una parte RICHIESTA (REQUIRED) di un'implementazione completa del protocollo DNS.
Ci sono diversi vantaggi e svantaggi nell'uso crescente di TCP (vedi Appendice A) così come dettagli di implementazione che devono essere considerati. Questo documento affronta questi problemi e presenta TCP come una valida alternativa di trasporto per il DNS. Estende il contenuto della [RFC5966], con ulteriori considerazioni e lezioni apprese dalla ricerca, dagli sviluppi e dall'implementazione di TCP nel DNS e in altri protocolli Internet.
Sebbene questo documento non imponga requisiti specifici agli operatori di server DNS, offre alcuni suggerimenti agli operatori per aiutare a garantire che il supporto per TCP sui loro server e sulla loro rete sia ottimale. Va notato che il mancato supporto di TCP (o il blocco del DNS su TCP a livello di rete) comporterà probabilmente un fallimento della risoluzione e/o timeout a livello di applicazione.