Groupe de travail Réseau	M. Crawford	
Request for Comments : 2673	Fermilab	
Catégorie : Expérimentale	août 1999	
Traduction Yohan Nawrocki		

Étiquettes binaires dans le système de nom de domaine (DNS)

Statut de ce mémoire
Le présent document spécifie un protocole de normalisation pour la communauté Internet et appelle à des discussions et suggestions pour son amélioration. Prière de se reporter à l’édition en cours des "Internet Official Protocol Standards" (normes officielles du protocole Internet) (STD  1) pour connaître l’état de la normalisation et le statut du présent protocole. La distribution du présent mémoire n’est soumise à aucune restriction.

Notice de copyright
Copyright (C) The Internet Society (1999). Tous droits réservés.

1.	Introduction et terminologie

Ce document définit une "étiquette Chaîne de bits" qui peut apparaître au sein des noms de domaine. Ce nouveau type d'étiquette représente de façon compacte une séquence "d'étiquettes à bit unique", et permet aux enregistrements de ressources d’être stockés à toute borne de bit dans une section binaire nommée de l’arbre des noms de domaine.

Les mots clefs "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF", dans ce document, doivent être interprétés comme décrit dans la [RFC2119].

2.	Motivation

Les étiquettes binaires sont destinées à résoudre efficacement le problème du stockage des données et de la délégation d’autorité sur des limites arbitraires quand la structure de l’espace de noms sous-jacent est le plus naturellement représentée en binaire.

3.	Format d'étiquette

Jusqu’à 256 étiquettes à bit unique peuvent être regroupées dans une seule étiquette Chaîne de bits. Dans une étiquette Chaîne de bits, le bit de poids fort ou "de niveau supérieur", apparaît en premier. Ceci est différent de l'ordre des étiquettes du DNS elles-mêmes, qui ont l'étiquette de moindre poids ou "de niveau inférieur" placé en premier. Néanmoins, cet ordre semble être le plus naturel et le plus efficace pour représenter les étiquettes binaires.

Parmi les étiquettes Chaîne de bits consécutives, les bits dans la première étiquette apparente sont de moindre poids ou “de niveau inférieur” que les bits des étiquettes Chaîne de bits précédentes, tout comme sont ordonnées les étiquettes ASCII.

3.1	Codage
 0                   1                   2
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2     . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//+-+-+-+-+-+-+
|0 1|    ELT    |     Compte    |         Étiquette..         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//-+-+-+-+-+-+-+
(Chaque chiffre représente un bit.)

ELT	000001 en binaire, c'est le type d'étiquette étendu à six bits [RFC2671] alloué aux étiquettex Chaîne de bits.

Compte	Le nombre de bits significatifs dans le champ Étiquette. Un compte de valeur 0 indique que les 256 bits sont significatifs. (Et donc, l'étiquette nulle représentant la racine du DNS ne peut pas être représentée comme une étiquette Chaîne de bits.)

Étiquette	La chaîne de bit représentant une séquence d'étiquettes à bit unique, avec le bit de poids fort en premier. C’est-à-dire que l'étiquette à bit unique en position 17 dans le diagramme ci-dessus représente un sous domaine du domaine représenté par l'étiquette à bit unique en position 16, et ainsi de suite.

Le champ Étiquette est bourré sur la droite avec de zéro à sept bits de bourrage afin de faire que le champ entier occupe un nombre entier d’octets. Ces bits de bourrage DOIVENT être à zéro lors de la transmission et ignorés en réception.

Une séquence de bits peut être partagée entre deux ou plusieurs étiquettes Chaîne de bits, mais les points de division n’ont pas de signification et n’ont pas besoin d’être préservés. Une application trop astucieuse de serveur pourrait partager les étiquettes Chaîne de bits de façon à maximiser l’efficacité de la compression de message [RFC1035]. Un serveur plus simple pourrait séparer les étiquettes Chaîne de bits aux limites de zone, si des limites de zone venaient à tomber entre des étiquettes à bit unique.

3.2	Représentation textuelle
Un étiquette Chaîne de bits est représentée en texte -- dans un fichier zone, par exemple -- comme un <bit-spec> entouré par les délimiteurs "\" et "]". Le <bit-spec> est soit un quadruplet séparé par des points, soit un indicateur de base et une séquence de chiffres appropriée à cette base, éventuellement suivie par une barre oblique (slash) et une longueur. Les indicateurs de base sont "b", "o" et "x", dénotant respectivement les bases 2, 8 et 16. La longueur compte les bits significatifs et DOIT être comprise entre 1 et 32, inclus, après un quadruplet séparé par des points, ou entre 1 et 256, inclus, après une des autres formes. Si la longueur est omise, la longueur implicite est 32 pour un quadruplet séparé par des points, ou 1, 3 ou 4 fois le nombre de chiffres, respectivement, binaires, octals ou hexadécimaux fournis pour les autres formes. 

En format Backus-Naur augmenté [RFC2234],

étiquette-chaîne-de-bits	=	"\" bit-spec   «]  »	
			
bit-spec	=	bit-data ["/" longueur] / quadruplet-à-points ["/" slength]	
			
bit-data	=	"x" 1*64HEXDIG / "o" 1*86OCTDIG / "b" 1*256BIT	
			
quadruplet-à-points	=	decbyte "." decbyte "." decbyte "." decbyte	
			
decbyte	=	1*3DIGIT	
			
longueur 	=	NZDIGIT *2DIGIT	
			
slength	=	NZDIGIT [ DIGIT ]	
			
OCTDIG	=	%x30-37	
			
NZDIGIT	=	%x31-39	

Si une <longueur> est présente, le nombre de chiffres dans le <bit-data> DOIT être juste suffisant pour contenir le nombre de bits spécifié par la <longueur>. Si il y a des bits non signifiants dans le chiffre hexadécimal ou octal final, ils DOIVENT être à 0. Un <quadruplet-à-points> a toujours l’ensemble des quatre parties, même si le <slenght> associé est inférieur à 24, mais, comme les autres formes, les bits non signifiants DOIVENT être à 0.

Chaque nombre représenté par un <decbyte> doit être entre 0 et 255, inclus.

Le nombre représenté par <longueur> doit être entre 1 et 256 inclus.

Le nombre représenté par <slength> doit être entre 1 et 32 inclus.

Lorsque la forme textuelle d’une étiquette Chaîne de bit est générée par la machine, la longueur DEVRAIT être explicite, et non pas implicite.

3.2.1	Exemples
Les quatre formes textuelles suivantes représentent la même étiquette Chaîne de bits.
\[b11010000011101]
\[o64072/14]
\[xd074/14]
\[208.116.0.0/14]

Ce qui suit représente deux étiquettes Chaîne de bits consécutives qui notent le même point relatif dans l’arborescence DNS tout comme l'unique étiquette Chaîne de bits ci-dessus

\[b11101].\[o640]

3.3	Représentation canonique et ordre de tri
La forme du réseau et la forme textuelle des étiquettes binaires ont toutes deux une certaine souplesse dans leur façon de se grouper en plusieurs étiquettes Chaîne de bits consécutives. Pour générer et vérifier des enregistrements de signature du DNS [RFC2065] les étiquettes binaires doivent être dans une forme prévisible. Cette forme canonique est définie comme la forme qui a le moins d'étiquettes Chaîne de bits possibles et dans laquelle toutes, sauf peut-être la première étiquette (de moindre poids) dans toute séquence d'étiquettes Chaîne de bits consécutifs, sont de longueur maximum.

Par exemple, la forme canonique de n’importe quelle séquence de jusqu’à 256 étiquettes à bit unique a une seule étiquette à bit unique, et la forme canonique d’une séquence de 512 à 768 étiquettes à bit unique a trois étiquettes à bit unique dont la seconde et la troisième contiennent 256 bits d'étiquette.

L’ordre de tri canonique des noms de domaine [RFC2065] est étendu pour englober les étiquettes binaires comme suit.
Le tri est toujours étiquette par étiquette, du plus signifiant au moins signifiant, où une étiquette peut maintenant être une étiquette à bit unique ou une étiquette standard (code 00). Toute étiquette à bit unique est triée avant toute étiquette standard, et un bit à 0 est trié avant un bit à 1. L’absence d’une étiquette est triée avant toute étiquette, comme spécifié dans la [RFC2065].

Par exemple, les noms de domaines suivants sont correctement triés.
foo.example
\[b1].foo.example
\[b100].foo.example
\[b101].foo.example
bravo.\[b10].foo.example
alpha.foo.example

4.	Règles de traitement

Une étiquette à bit unique ne correspond jamais à un autre type d'étiquette. En particulier, les étiquettes du DNS représentées par les caractères ASCII "0" et "1" uniques ne correspondent pas aux étiquettes à bit unique représentées par les valeurs de bit 0 et  1.

5.	Discussion

Un Compte de zéro dans la forme du réseau représente une séquence de 256 bits, non pas pour optimiser ce cas particulier, mais pour rendre impossible le fait d’avoir une étiquette de zéro bit.

6.	Considérations pour l’IANA

Ce document définit un type d’extension d'étiquette, appelé étiquette Chaîne de bits, et demande l’enregistrement du codet 000001 en binaire dans l’espace défini par la [RFC2671].

7.	Considérations sur la sécurité

Toutes les considérations de sécurité qui s’appliquent aux étiquettes ASCCI traditionnelles du DNS s’appliquent également aux étiquettes binaires. La canonisation et les règles de tri de la section 3.3 leur permettent d’être traitées par la sécurité DNS [RFC2065].

8.	Références

[RFC1035]	P. Mockapetris, "Noms de domaines – Mise en œuvre et spécification", STD 13, novembre 1987. (MàJ par RFC1101, 1183, 1348, 1876, 1982, 1995, 1996, 2065, 2136, 2181, 2137, 2308, 2535, 2673, 2845, 3425, 3658, 4033, 4034, 4035, 4343, 5936, 5966, 6604, 7766, 8482, 8767

[RFC2065]	D. Eastlake 3rd, C. Kaufman, "Extensions de sécurité du système de noms de domaines", janvier 1997. (Obsolète, voir RFC2535) (MàJ RFC1034, RFC1035) (P.S.)

[RFC2119]	S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997. (MàJ par RFC8174)

[RFC2234]	D. Crocker et P. Overell, "BNF augmenté pour les spécifications de syntaxe : ABNF", novembre 1997. (Obsolète, voir RFC5234)

[RFC2671]	P. Vixie, "Mécanismes d'extension pour le DNS (EDNS0)", août 1999. (P.S.) (Remplacée par RFC6891)

9.	Adresse de l’auteur

Matt Crawford
Fermilab MS 368
PO Box 500
Batavia, IL 60510
USA

téléphone  : +1  630  840-3461
mél  : crawdad@fnal.gov 

10.	Déclaration complète de droits de reproduction

Copyright (C) The Internet Society (1999). Tous droits réservés.

Le présent document et ses traductions peuvent être copiés et fournis aux tiers, et les travaux dérivés qui les commentent ou les expliquent ou aident à leur mise en œuvre peuvent être préparés, copiés, publiés et distribués, en tout ou partie, sans restriction d’aucune sorte, pourvu que la déclaration de copyright ci-dessus et le présent paragraphe soient inclus dans toutes copies et travaux dérivés. Cependant, le présent document lui-même ne peut être modifié d’aucune façon, en particulier en retirant la notice de copyright ou les références à la Internet Society ou aux autres organisations Internet, excepté autant qu’il est nécessaire pour le besoin du développement des normes Internet, auquel cas les procédures de copyright définies dans les procédures des normes Internet doivent être suivies, ou pour les besoins de la traduction dans d’autres langues que l’anglais.

Les permissions limitées accordées ci-dessus sont perpétuelles et ne seront pas révoquées par la Internet Society ou ses successeurs ou ayant droits.

Le présent document et les informations y contenues sont fournies sur une base "EN L’ÉTAT" et le contributeur, l’organisation qu’il ou elle représente ou qui le/la finance (s’il en est), la INTERNET SOCIETY et la INTERNET ENGINEERING TASK FORCE déclinent toutes garanties, exprimées ou implicites, y compris mais non limitées à toute garantie que l’utilisation des informations encloses ne violent aucun droit ou aucune garantie implicite de commercialisation ou d’aptitude à un objet particulier.

Le financement de la fonction d’édition des RFC est actuellement fourni par l’Internet Society.