Aller au contenu principal

RFC 1035 - Noms de domaine - Implémentation et spécification

Statut : Standard Internet (STD 13)
Obsolète : RFC 882, 883, 973
Auteur : Paul Mockapetris (ISI)
Date de publication : Novembre 1987

Résumé

Ce RFC décrit les détails du système de domaine et du protocole, et suppose que le lecteur est familier avec les concepts discutés dans le RFC complémentaire « Domain Names - Concepts and Facilities (Noms de domaine - Concepts et facilités) » [RFC-1034].

Le système de domaine est un mélange de fonctions et de types de données qui sont un protocole officiel et de fonctions et types de données qui sont encore expérimentaux. Étant donné que le système de domaine est intentionnellement extensible, de nouveaux types de données et des comportements expérimentaux doivent toujours être attendus dans les parties du système au-delà du protocole officiel. Les parties du protocole officiel incluent les requêtes standard, les réponses et les formats de données RR de classe Internet (par exemple, les adresses d'hôte).

Importance

Le RFC 1035 forme avec le RFC 1034 la spécification de base du DNS :

  • RFC 1034 : Concepts et facilités (théorie et architecture)
  • RFC 1035 : Implémentation et spécification (protocole et formats)

Ce RFC fournit tous les détails techniques nécessaires pour implémenter le DNS, notamment :

  • 📦 Format et encodage des messages
  • 📋 Définitions des enregistrements de ressources
  • 📁 Format des fichiers de zone
  • 🖥️ Implémentation du serveur de noms
  • 🔍 Implémentation du résolveur

Table des matières

2. Introduction

  • 2.1 Vue d'ensemble
  • 2.2 Configurations courantes
  • 2.3 Conventions
    • 2.3.1 Syntaxe de nom préférée
    • 2.3.2 Ordre de transmission des données
    • 2.3.3 Casse des caractères
    • 2.3.4 Limites de taille

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

  • 3.1 Définitions de l'espace de noms
  • 3.2 Définitions RR
    • 3.2.1 Format
    • 3.2.2 Valeurs TYPE
    • 3.2.3 Valeurs QTYPE
    • 3.2.4 Valeurs CLASS
    • 3.2.5 Valeurs QCLASS
  • 3.3 RR standards
    • 3.3.1 Format CNAME RDATA
    • 3.3.2 Format HINFO RDATA
    • 3.3.3 Format MB RDATA (EXPÉRIMENTAL)
    • 3.3.4 Format MD RDATA (Obsolète)
    • 3.3.5 Format MF RDATA (Obsolète)
    • 3.3.6 Format MG RDATA (EXPÉRIMENTAL)
    • 3.3.7 Format MINFO RDATA (EXPÉRIMENTAL)
    • 3.3.8 Format MR RDATA (EXPÉRIMENTAL)
    • 3.3.9 Format MX RDATA
    • 3.3.10 Format NULL RDATA (EXPÉRIMENTAL)
    • 3.3.11 Format NS RDATA
    • 3.3.12 Format PTR RDATA
    • 3.3.13 Format SOA RDATA
    • 3.3.14 Format TXT RDATA
  • 3.4 RR spécifiques à Internet
    • 3.4.1 Format A RDATA
    • 3.4.2 Format WKS RDATA
  • 3.5 Domaine IN-ADDR.ARPA
  • 3.6 Définition de nouveaux types, classes et espaces de noms spéciaux

4. Messages

  • 4.1 Format
    • 4.1.1 Format de la section d'en-tête
    • 4.1.2 Format de la section de question
    • 4.1.3 Format des enregistrements de ressources
    • 4.1.4 Compression des messages
  • 4.2 Transport
    • 4.2.1 Utilisation UDP
    • 4.2.2 Utilisation TCP

5. Master Files (Fichiers maîtres)

  • 5.1 Format
  • 5.2 Utilisation des fichiers maîtres pour définir les zones
  • 5.3 Exemple de fichier maître

6. Name Server Implementation (Implémentation du serveur de noms)

  • 6.1 Architecture
    • 6.1.1 Contrôle
    • 6.1.2 Base de données
    • 6.1.3 Temps
  • 6.2 Traitement des requêtes standard
  • 6.3 Traitement de rafraîchissement et de rechargement de zone
  • 6.4 Requêtes inverses (Optionnel)
  • 6.5 Requêtes et réponses de complétion

7. Resolver Implementation (Implémentation du résolveur)

  • 7.1 Transformation d'une demande utilisateur en requête
  • 7.2 Envoi des requêtes
  • 7.3 Traitement des réponses
  • 7.4 Utilisation du cache

Glossary (Glossaire)

References (Références)

Référence rapide

Format de message DNS

    +---------------------+
| Header | 12 octets
+---------------------+
| Question | variable
+---------------------+
| Answer | variable
+---------------------+
| Authority | variable
+---------------------+
| Additional | variable
+---------------------+

Format d'en-tête DNS (12 octets)

                                    1  1  1  1  1  1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z | RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Types RR courants

TYPEValeurDescription
A1Adresse d'hôte
NS2Serveur de noms autoritaire
CNAME5Nom canonique (alias)
SOA6Début d'autorité
PTR12Pointeur de nom de domaine
MX15Échange de courrier
TXT16Chaînes de texte
AAAA28Adresse IPv6 (RFC 3596)

Codes de réponse (RCODE)

ValeurNomDescription
0NOERRORAucune erreur
1FORMERRErreur de format
2SERVFAILÉchec du serveur
3NXDOMAINLe nom n'existe pas
4NOTIMPNon implémenté
5REFUSEDRefusé

Limites de taille

ÉlémentLimiteDescription
Étiquette63 octetsLongueur maximale d'une seule étiquette
Nom de domaine255 octetsLongueur maximale d'un nom de domaine complet
Message UDP512 octetsTaille de message UDP par défaut
Message TCP65535 octetsTaille maximale de message TCP
TTL2^31-1 secondesDurée de vie maximale

Relation avec le RFC 1034

RFC 1034RFC 1035
Concepts et théorieImplémentation et protocole
Structure de l'espace de noms de domaineFormat de message
Fonctions du serveur de nomsImplémentation du serveur de noms
Concepts du résolveurImplémentation du résolveur
Gestion des zonesFormat des fichiers de zone

Exigences d'implémentation

Doit implémenter (MUST)

  • ✅ Requêtes et réponses standard
  • ✅ Enregistrements A, NS, CNAME, SOA, PTR, MX
  • ✅ Transport UDP (512 octets)
  • ✅ Compression des messages
  • ✅ Comparaison insensible à la casse

Devrait implémenter (SHOULD)

  • ✅ Transport TCP (pour les grandes réponses)
  • ✅ Transfert de zone (AXFR)
  • ✅ Mise en cache et gestion TTL
  • ✅ Support des requêtes récursives

Peut implémenter (MAY)

  • Requêtes inverses
  • Types RR expérimentaux
  • Mises à jour dynamiques

RFC connexes

  • RFC 1034 : Concepts et facilités DNS (document complémentaire)
  • RFC 2181 : Clarifications de la spécification DNS
  • RFC 2308 : Mise en cache négative des requêtes DNS
  • RFC 3596 : Extensions DNS pour IPv6
  • RFC 4033-4035 : DNSSEC
  • RFC 6891 : EDNS(0)
  • RFC 8499 : Terminologie DNS

Ressources en ligne


Document complémentaire : RFC 1034 - Concepts et facilités DNS

Chapitre suivant : 2. Introduction