Permettre des tailles de paquets plus élevées en UDP

Les limitations de taille de certains champs, code de retour et types de label du protocole original ont commencé à poser des problèmes pour le développement de nouvelles fonctionnalités. Les messages DNS étaient limitée à 512 octets en UDP et le recours à TCP mandaté par la norme pour des messages plus volumineux aboutit à une plus grande surcharge. En 1999, Paul Vixie propose d'étendre le DNS avec de nouveaux codes et de permettre des tailles de paquets plus élevées en UDP, tout en restant compatible avec les implémentations existantes.
Extension mechanisms for DNS (EDNS) est une extension du protocole Domain Name System qui permet d'augmenter la taille de certains paramètres. La première série d'extensions a été publiée en 1999 par l'Internet Engineering Task Force (IETF) dans la RFC 2671 sous le nom EDNS0.
Puisqu'aucun nouveau code ne peut être ajouté dans l'en-tête DNS, l'identification d'une requête étendue est réalisée grâce à un pseudo resource-record (RR), OPT. Ce RR n'est utilisé que dans la transmission est est absent des zones. Les clients EDNS incluent ce RR pour indiquer qu'ils prennent en charge cette extension. Si le serveur ne prend pas en charge cette extension, ce RR sera ignoré, ce qui procure la rétrocompatibilité.
Le pseudo-record OPT fournit 16 codes additionnels et étend l'espace disponible pour la réponse. La taille maximale du paquet UDP et la version EDNS (toujours 0 actuellement) sont contenues dans le RR OPT. Un champ de données de taille variable permet des extensions ultérieures.
Le protocole original prévoyait deux types de labels en fonction des deux premiers bits du paquets DNS : 00 (label standard) et 11 (label comprimé). EDNS définit le label 01 (label étendu). Les six bits suivants sont utilisables pour définir d'autres labels étendus. by TAATJENE
Voici un exemple de pseudo-record OPT, tel qu'il est affiché par la commande dig :
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096

Comments

Popular Posts