4. Discussione (Discussion)
In assenza di EDNS0 (Extension Mechanisms for DNS 0 [RFC6891]; vedi sotto), il comportamento normale di qualsiasi server DNS che deve inviare una risposta UDP che supererebbe il limite di 512 byte è che il server tronchi la risposta in modo che rientri in quel limite e quindi imposti il flag TC nell'intestazione della risposta. Quando il client riceve tale risposta, prende il flag TC come un'indicazione che dovrebbe riprovare invece su TCP.
La RFC 1123 dice anche:
... è anche chiaro che alcuni nuovi tipi di record DNS definiti in futuro conterranno informazioni che superano il limite di 512 byte che si applica a UDP, e quindi richiederanno TCP. Pertanto, i risolutori e i name server dovrebbero implementare i servizi TCP come backup di UDP oggi, con la consapevolezza che richiederanno il servizio TCP in futuro.
Le implementazioni esistenti di DNSSEC [RFC4033] hanno dimostrato che il troncamento al limite di 512 byte è ormai comune. Ad esempio, una risposta Non-Existent Domain (NXDOMAIN) (RCODE == 3) da una zona firmata DNSSEC utilizzando NextSECure 3 (NSEC3) [RFC5155] è quasi invariabilmente più grande di 512 byte.
Da quando sono state scritte le specifiche di base originali per il DNS, sono stati introdotti i meccanismi di estensione per il DNS. Queste estensioni possono essere utilizzate per indicare che il client è pronto a ricevere pacchetti UDP più grandi di 512 byte. Un server compatibile con EDNS0 che riceve una richiesta da un client compatibile con EDNS0 può inviare pacchetti UDP fino alla dimensione del buffer annunciata da quel client senza troncamento.
Tuttavia, il trasporto di pacchetti UDP che superano la dimensione dell'MTU del percorso provoca la frammentazione dei pacchetti IP, che è stata trovata inaffidabile in molte circostanze. Molti firewall bloccano regolarmente i pacchetti IP frammentati e alcuni non implementano gli algoritmi necessari per riassemblare i pacchetti frammentati. Peggio ancora, alcuni dispositivi di rete rifiutano deliberatamente di gestire i pacchetti DNS contenenti opzioni EDNS0. Altri problemi relativi al trasporto UDP e alla dimensione dei pacchetti sono discussi nella [RFC5625].
L'MTU più comunemente trovato nel nucleo di Internet è di circa 1500 byte, e anche quel limite viene regolarmente superato dalle risposte firmate DNSSEC.
Il futuro che era stato anticipato nella RFC 1123 è arrivato e l'unico meccanismo standardizzato basato su UDP che avrebbe potuto risolvere il problema della dimensione dei pacchetti è stato trovato inadeguato.