Aller au contenu principal

3. Domain Name Space and RR Definitions (Espace de noms de domaine et définitions RR)

Ce chapitre définit comment les noms de domaine sont encodés dans le DNS et le format des enregistrements de ressources (Resource Records). Il s'agit de la spécification technique de base pour l'implémentation du DNS.


3.1. Name Space Definitions (Définitions de l'espace de noms)

Encodage des noms de domaine

Les noms de domaine dans les messages sont exprimés en termes de séquence d'étiquettes (Sequence of Labels).

Format d'encodage :

Chaque étiquette est représentée comme :
[octet de longueur (1 octet)][contenu de l'étiquette (N octets)]

Exemple : www.example.com
Encodé comme : 3www7example3com0

Explication détaillée :

  • Chaque étiquette est représentée par un champ de longueur d'un octet suivi de ce nombre d'octets
  • Puisque chaque nom de domaine se termine par l'étiquette nulle de la racine, un nom de domaine est terminé par un octet de longueur zéro
  • Les deux bits de poids fort de chaque octet de longueur doivent être à zéro (MUST)
  • Les six bits restants du champ de longueur limitent l'étiquette à 63 octets ou moins

Limites de longueur :

Étiquette unique : ≤ 63 octets
Nom de domaine complet : ≤ 255 octets (y compris les octets de longueur)

Règles de contenu des étiquettes

Valeurs d'octets : Les étiquettes peuvent contenir n'importe quelle valeur 8 bits dans les octets qui composent une étiquette

Forte recommandation : Les étiquettes devraient (SHOULD) suivre la syntaxe préférée décrite ailleurs dans ce mémo, qui est compatible avec les conventions de dénomination d'hôte existantes

Règles de comparaison :

  • Les serveurs de noms et les résolveurs doivent (MUST) comparer les étiquettes de manière insensible à la casse
  • En supposant ASCII avec parité nulle (c'est-à-dire, A=a)
  • Les codes non alphabétiques doivent correspondre exactement

3.2. RR Definitions (Définitions RR)

3.2.1. Format

Tous les RR (Resource Records, enregistrements de ressources) ont le même format de niveau supérieur présenté ci-dessous :

                                    1  1  1  1  1  1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
/ /
/ NAME /
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| CLASS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TTL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RDLENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
/ RDATA /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Descriptions des champs :

  • NAME : Un nom de propriétaire (Owner Name), c'est-à-dire le nom du nœud auquel cet enregistrement de ressource se rapporte.

  • TYPE : Deux octets contenant l'un des codes RR TYPE.

  • CLASS : Deux octets contenant l'un des codes RR CLASS.

  • TTL : Un entier signé 32 bits qui spécifie l'intervalle de temps pendant lequel l'enregistrement de ressource peut être mis en cache avant que la source de l'information ne soit à nouveau consultée. Les valeurs nulles sont interprétées comme signifiant que le RR ne peut être utilisé que pour la transaction en cours et ne doit pas être mis en cache.

  • RDLENGTH : Un entier non signé 16 bits qui spécifie la longueur en octets du champ RDATA.

  • RDATA : Une chaîne d'octets de longueur variable qui décrit la ressource. Le format de cette information varie selon le TYPE et la CLASS de l'enregistrement de ressource.

3.2.2. TYPE Values (Valeurs TYPE)

Les champs TYPE sont utilisés dans les enregistrements de ressources. Notez que ces types sont un sous-ensemble des QTYPE.

TYPEValeurSignification
A1Adresse d'hôte
NS2Serveur de noms autoritaire
MD3Destination de courrier (Obsolète - utiliser MX)
MF4Transmetteur de courrier (Obsolète - utiliser MX)
CNAME5Nom canonique pour un alias
SOA6Début d'une zone d'autorité
MB7Nom de domaine de boîte aux lettres (EXPÉRIMENTAL)
MG8Membre de groupe de courrier (EXPÉRIMENTAL)
MR9Nom de domaine de renommage de courrier (EXPÉRIMENTAL)
NULL10RR nul (EXPÉRIMENTAL)
WKS11Description de service bien connu
PTR12Pointeur de nom de domaine
HINFO13Information d'hôte
MINFO14Information de boîte aux lettres ou liste de diffusion
MX15Échange de courrier
TXT16Chaînes de texte

3.2.3. QTYPE Values (Valeurs QTYPE)

Les champs QTYPE apparaissent dans la partie question d'une requête. Les QTYPE sont un sur-ensemble des TYPE, donc tous les TYPE sont des QTYPE valides.

QTYPEValeurSignification
AXFR252Demande de transfert d'une zone entière
MAILB253Demande d'enregistrements liés aux boîtes aux lettres (MB, MG ou MR)
MAILA254Demande de RR d'agent de courrier (Obsolète - voir MX)
*255Demande de tous les enregistrements

3.2.4. CLASS Values (Valeurs CLASS)

Les champs CLASS apparaissent dans les enregistrements de ressources.

CLASSValeurSignification
IN1L'Internet
CS2La classe CSNET (Obsolète)
CH3La classe CHAOS
HS4Hesiod [Dyer 87]

3.2.5. QCLASS Values (Valeurs QCLASS)

Les champs QCLASS apparaissent dans la section question d'une requête. Les valeurs QCLASS sont un sur-ensemble des valeurs CLASS.

QCLASSValeurSignification
*255N'importe quelle classe

3.3. Standard RRs (RR standards)

Les définitions RR suivantes sont censées apparaître dans toutes les implémentations.

3.3.1. CNAME RDATA Format (Format CNAME RDATA)

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ CNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • CNAME : Un nom de domaine qui spécifie le nom canonique ou principal du propriétaire. Le nom du propriétaire est un alias.

Utilisation de CNAME :

  • Un RR CNAME identifie son nom de propriétaire comme un alias
  • Spécifie le nom canonique correspondant dans la section RDATA
  • Si un RR CNAME est présent à un nœud, aucune autre donnée ne devrait être présente (SHOULD NOT)
  • Cela garantit que les données pour un nom canonique et ses alias ne peuvent pas être différentes

3.3.2. HINFO RDATA Format (Format HINFO RDATA)

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ CPU /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ OS /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • CPU : Une chaîne de caractères qui spécifie le type de CPU.
  • OS : Une chaîne de caractères qui spécifie le type de système d'exploitation.

Objectif : Les enregistrements HINFO sont utilisés pour acquérir des informations générales sur un hôte.

3.3.3. MB RDATA Format (Format MB RDATA) - EXPÉRIMENTAL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MADNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • MADNAME : Un nom de domaine qui spécifie un hôte qui possède la boîte aux lettres spécifiée.

Statut : EXPÉRIMENTAL

3.3.4. MD RDATA Format (Format MD RDATA) - Obsolète

Statut : Obsolète - Utiliser MX

3.3.5. MF RDATA Format (Format MF RDATA) - Obsolète

Statut : Obsolète - Utiliser MX

3.3.6. MG RDATA Format (Format MG RDATA) - EXPÉRIMENTAL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MGMNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • MGMNAME : Un nom de domaine qui spécifie une boîte aux lettres qui est membre du groupe de messagerie identifié par le nom de domaine.

Statut : EXPÉRIMENTAL

3.3.7. MINFO RDATA Format (Format MINFO RDATA) - EXPÉRIMENTAL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ RMAILBX /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ EMAILBX /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • RMAILBX : Un nom de domaine qui spécifie la boîte aux lettres responsable de la boîte aux lettres.
  • EMAILBX : Un nom de domaine qui spécifie la boîte aux lettres qui reçoit les messages d'erreur.

Statut : EXPÉRIMENTAL

3.3.8. MR RDATA Format (Format MR RDATA) - EXPÉRIMENTAL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ NEWNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • NEWNAME : Un nom de domaine qui spécifie le nom correct de la boîte aux lettres.

Statut : EXPÉRIMENTAL

3.3.9. MX RDATA Format (Format MX RDATA)

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| PREFERENCE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ EXCHANGE /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • PREFERENCE : Un entier 16 bits qui spécifie la préférence donnée à ce RR parmi d'autres au même propriétaire. Les valeurs plus basses sont préférées.
  • EXCHANGE : Un nom de domaine qui spécifie un hôte disposé à agir comme un échange de courrier pour le nom du propriétaire.

Utilisation de MX :

  • Les enregistrements MX provoquent un traitement de section supplémentaire de type A pour l'hôte spécifié par EXCHANGE
  • L'utilisation des RR MX est expliquée en détail dans RFC-974

3.3.10. NULL RDATA Format (Format NULL RDATA) - EXPÉRIMENTAL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ <anything> /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • <anything> : N'importe quel contenu, maximum 65535 octets

Objectif :

  • Le RR NULL n'est pas utilisé pour les opérations normales
  • Peut être utilisé à des fins expérimentales
  • Peut contenir des données arbitraires

Statut : EXPÉRIMENTAL

3.3.11. NS RDATA Format (Format NS RDATA)

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ NSDNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • NSDNAME : Un nom de domaine qui spécifie un hôte qui devrait être autoritaire pour la classe et le domaine spécifiés.

Utilisation de NS :

  • Les enregistrements NS provoquent le traitement habituel de section supplémentaire pour localiser un enregistrement de type A
  • Lorsqu'ils sont utilisés dans une référence, ils signalent un point de délégation dans l'espace de noms

3.3.12. PTR RDATA Format (Format PTR RDATA)

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ PTRDNAME /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • PTRDNAME : Un nom de domaine qui pointe vers un emplacement dans l'espace de noms de domaine.

Utilisation de PTR :

  • Les enregistrements PTR ne provoquent pas de traitement de section supplémentaire
  • Ces RR sont utilisés dans des domaines spéciaux pour pointer vers un autre emplacement dans l'espace de noms de domaine
  • Principalement utilisés pour les recherches DNS inversées dans le domaine IN-ADDR.ARPA

3.3.13. SOA RDATA Format (Format SOA RDATA)

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ RNAME /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| SERIAL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| REFRESH |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RETRY |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| EXPIRE |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| MINIMUM |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • MNAME : Le nom de domaine du serveur de noms qui était la source originale ou primaire de données pour cette zone.
  • RNAME : Un nom de domaine qui spécifie la boîte aux lettres de la personne responsable de cette zone.
  • SERIAL : Le numéro de version non signé 32 bits de la copie originale de la zone.
  • REFRESH : Un intervalle de temps 32 bits avant que la zone ne doive être rafraîchie.
  • RETRY : Un intervalle de temps 32 bits qui devrait s'écouler avant qu'un rafraîchissement échoué ne soit retenté.
  • EXPIRE : Une valeur de temps 32 bits qui spécifie la limite supérieure de l'intervalle de temps qui peut s'écouler avant que la zone ne soit plus autoritaire.
  • MINIMUM : Le champ TTL minimum non signé 32 bits qui devrait être exporté avec n'importe quel RR de cette zone.

3.3.14. TXT RDATA Format (Format TXT RDATA)

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ TXT-DATA /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • TXT-DATA : Une ou plusieurs chaînes de caractères.

Utilisation de TXT :

  • Les RR TXT sont utilisés pour contenir du texte descriptif
  • La sémantique du texte dépend du domaine où il se trouve
  • Couramment utilisés pour SPF, DKIM, vérification de domaine, etc.

3.4. Internet Specific RRs (RR spécifiques à Internet)

3.4.1. A RDATA Format (Format A RDATA)

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Champs :

  • ADDRESS : Une adresse Internet 32 bits.

Utilisation de l'enregistrement A :

  • Les hôtes qui ont plusieurs adresses Internet auront plusieurs enregistrements A
  • La section RDATA d'une ligne A dans un fichier maître est une adresse Internet exprimée sous forme de quatre nombres décimaux séparés par des points

Exemple :

www.example.com.  IN  A  93.184.216.34

3.5. IN-ADDR.ARPA Domain (Domaine IN-ADDR.ARPA)

Le domaine IN-ADDR.ARPA est utilisé pour les recherches DNS inverses (Reverse DNS Lookups) - cartographier les adresses IP aux noms de domaine.

Structure :

  • Le domaine est organisé par octets d'adresse IP dans l'ordre inverse
  • Chaque octet forme une étiquette dans le nom de domaine

Exemple :

Adresse IP : 93.184.216.34
Nom IN-ADDR.ARPA : 34.216.184.93.in-addr.arpa.

Utilisation :

  • Les enregistrements PTR dans le domaine IN-ADDR.ARPA pointent vers le nom d'hôte canonique
  • Cela permet aux applications de mapper d'une adresse à un nom

Exemple d'enregistrement PTR :

34.216.184.93.in-addr.arpa.  IN  PTR  www.example.com.

3.6. Defining New Types, Classes, and Special Namespaces (Définition de nouveaux types, classes et espaces de noms spéciaux)

Le DNS est conçu pour être extensible. De nouveaux types et classes RR peuvent être définis pour prendre en charge de nouvelles applications et services.

Directives :

  • Les nouveaux types et classes devraient (SHOULD) être enregistrés auprès de l'IANA
  • Les implémentations devraient (SHOULD) pouvoir gérer les types inconnus de manière appropriée
  • Les types RR inconnus devraient (SHOULD) être préservés et transmis par les serveurs de noms
  • Le format général des RR permet d'ajouter de nouveaux types sans casser les implémentations existantes

Suivant : 4. Messages