Aller au contenu principal

4. Discussion (Discussion)

En l'absence d'EDNS0 (Extension Mechanisms for DNS 0 [RFC6891] ; voir ci-dessous), le comportement normal de tout serveur DNS qui doit envoyer une réponse UDP qui dépasserait la limite de 512 octets est de tronquer la réponse afin qu'elle tienne dans cette limite, puis de définir le drapeau TC dans l'en-tête de la réponse. Lorsque le client reçoit une telle réponse, il prend le drapeau TC comme une indication qu'il doit réessayer via TCP à la place.

La RFC 1123 dit aussi :

... il est également clair que certains nouveaux types d'enregistrements DNS définis à l'avenir contiendront des informations dépassant la limite de 512 octets qui s'applique à UDP, et nécessiteront donc TCP. Ainsi, les résolveurs et les serveurs de noms devraient implémenter les services TCP comme une sauvegarde d'UDP aujourd'hui, sachant qu'ils nécessiteront le service TCP à l'avenir.

Les déploiements existants de DNSSEC [RFC4033] ont montré que la troncature à la limite de 512 octets est désormais courante. Par exemple, une réponse Non-Existent Domain (NXDOMAIN) (RCODE == 3) provenant d'une zone signée DNSSEC utilisant NextSECure 3 (NSEC3) [RFC5155] est presque invariablement supérieure à 512 octets.

Depuis que les spécifications de base originales du DNS ont été écrites, les mécanismes d'extension pour le DNS ont été introduits. Ces extensions peuvent être utilisées pour indiquer que le client est prêt à recevoir des paquets UDP de plus de 512 octets. Un serveur compatible EDNS0 recevant une requête d'un client compatible EDNS0 peut envoyer des paquets UDP jusqu'à la taille de tampon annoncée par ce client sans troncature.

Cependant, le transport de paquets UDP qui dépassent la taille du MTU du chemin provoque une fragmentation des paquets IP, ce qui s'est avéré peu fiable dans de nombreuses circonstances. De nombreux pare-feu bloquent systématiquement les paquets IP fragmentés, et certains n'implémentent pas les algorithmes nécessaires pour réassembler les paquets fragmentés. Pire encore, certains périphériques réseau refusent délibérément de traiter les paquets DNS contenant des options EDNS0. D'autres problèmes liés au transport UDP et à la taille des paquets sont discutés dans la [RFC5625].

Le MTU le plus couramment trouvé au cœur de l'Internet est d'environ 1500 octets, et même cette limite est régulièrement dépassée par les réponses signées DNSSEC.

L'avenir qui était anticipé dans la RFC 1123 est arrivé, et le seul mécanisme normalisé basé sur UDP qui aurait pu résoudre le problème de taille de paquet s'est avéré inadéquat.