Aller au contenu principal

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

  • Statut: Internet Standard
  • Publié: November 1987
  • Stream: Legacy
  • Remplace: RFC882, RFC883, RFC973
  • Errata: Pas d'errata

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​

1. Statut​

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)​

Technical Guide (Guide technique)​

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

Références​

Liste complète des sources et références bibliographiques figurant dans le mémoire original.

[Dyer 87] S. Dyer, F. Hsu, "Hesiod", Project Athena Technical Plan - Name Service, April 1987, version 1.9.

            Décrit les fondements du service de noms Hesiod.

[IEN-116] J. Postel, "Internet Name Server", IEN-116, USC/Information Sciences Institute, August 1979.

            Un service de noms obsolète remplacé par le Domain Name
System, mais encore utilisé.

[Quarterman 86] J. Quarterman, and J. Hoskins, "Notable Computer Networks", Communications of the ACM, October 1986, volume 29, number 10.

[RFC-742] K. Harrenstien, "NAME/FINGER", RFC-742, Network Information Center, SRI International, December 1977.

[RFC-768] J. Postel, "User Datagram Protocol", RFC-768, USC/Information Sciences Institute, August 1980.

[RFC-793] J. Postel, "Transmission Control Protocol", RFC-793, USC/Information Sciences Institute, September 1981.

[RFC-799] D. Mills, "Internet Name Domains", RFC-799, COMSAT, September 1981.

            Propose l'introduction d'une hiérarchie à la place d'un
espace de noms plat pour Internet.

[RFC-805] J. Postel, "Computer Mail Meeting Notes", RFC-805, USC/Information Sciences Institute, February 1982.

[RFC-810] E. Feinler, K. Harrenstien, Z. Su, and V. White, "DOD Internet Host Table Specification", RFC-810, Network Information Center, SRI International, March 1982.

            Obsolète. Voir RFC-952.

[RFC-811] K. Harrenstien, V. White, and E. Feinler, "Hostnames Server", RFC-811, Network Information Center, SRI International, March 1982.

            Obsolète. Voir RFC-953.

[RFC-812] K. Harrenstien, and V. White, "NICNAME/WHOIS", RFC-812, Network Information Center, SRI International, March 1982.

[RFC-819] Z. Su, and J. Postel, "The Domain Naming Convention for Internet User Applications", RFC-819, Network Information Center, SRI International, August 1982.

            Premières réflexions sur la conception du système de
domaines. L'implémentation actuelle est totalement
différente.

[RFC-821] J. Postel, "Simple Mail Transfer Protocol", RFC-821, USC/Information Sciences Institute, August 1980.

[RFC-830] Z. Su, "A Distributed System for Internet Name Service", RFC-830, Network Information Center, SRI International, October 1982.

            Premières réflexions sur la conception du système de
domaines. L'implémentation actuelle est totalement
différente.

[RFC-882] P. Mockapetris, "Domain names - Concepts and Facilities," RFC-882, USC/Information Sciences Institute, November 1983.

            Remplacé par ce mémorandum.

[RFC-883] P. Mockapetris, "Domain names - Implementation and Specification," RFC-883, USC/Information Sciences Institute, November 1983.

            Remplacé par ce mémorandum.

[RFC-920] J. Postel and J. Reynolds, "Domain Requirements", RFC-920, USC/Information Sciences Institute, October 1984.

            Explique le schéma de nommage des domaines de premier
niveau.

[RFC-952] K. Harrenstien, M. Stahl, E. Feinler, "DoD Internet Host Table Specification", RFC-952, SRI, October 1985.

            Spécifie le format de HOSTS.TXT, la table hôte/adresse
remplacée par le DNS.

[RFC-953] K. Harrenstien, M. Stahl, E. Feinler, "HOSTNAME Server", RFC-953, SRI, October 1985.

            Ce RFC contient la spécification officielle du protocole
de serveur de noms d'hôtes, rendu obsolète par le DNS. Ce
protocole basé sur TCP accède aux informations stockées
au format RFC-952 et sert à obtenir des copies de la
table des hôtes.

[RFC-973] P. Mockapetris, "Domain System Changes and Observations", RFC-973, USC/Information Sciences Institute, January 1986.

            Décrit les modifications apportées aux RFC-882 et RFC-883
ainsi que leurs raisons.

[RFC-974] C. Partridge, "Mail routing and the domain system", RFC-974, CSNET CIC BBN Labs, January 1986.

            Décrit la transition de l'adressage postal basé sur
HOSTS.TXT vers le système MX plus performant utilisé avec
le système de domaines.

[RFC-1001] NetBIOS Working Group, "Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and Methods", RFC-1001, March 1987.

            Ce RFC et le RFC-1002 constituent une conception
préliminaire de NETBIOS sur TCP/IP qui propose de baser
le service de noms NetBIOS sur le DNS.

[RFC-1002] NetBIOS Working Group, "Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed Specifications", RFC-1002, March 1987.

[RFC-1010] J. Reynolds, and J. Postel, "Assigned Numbers", RFC-1010, USC/Information Sciences Institute, May 1987.

            Contient les numéros de sockets et les mnémotechniques
pour les noms d'hôtes, systèmes d'exploitation, etc.

[RFC-1031] W. Lazear, "MILNET Name Domain Transition", RFC-1031, November 1987.

            Décrit un plan de conversion du MILNET vers le DNS.

[RFC-1032] M. Stahl, "Establishing a Domain - Guidelines for Administrators", RFC-1032, November 1987.

            Décrit les politiques d'enregistrement utilisées par le
NIC pour administrer les domaines de premier niveau et
déléguer des sous-zones.

[RFC-1033] M. Lottor, "Domain Administrators Operations Guide", RFC-1033, November 1987.

            Un guide pratique pour les administrateurs de domaines.

[Solomon 82] M. Solomon, L. Landweber, and D. Neuhengen, "The CSNET Name Server", Computer Networks, vol 6, nr 3, July 1982.

            Décrit un service de noms pour CSNET indépendant du DNS
et l'utilisation du DNS dans CSNET.

[RFC-974]. Voir la section sur le MX et le routage du courrier.

[RFC-1034]. Document compagnon : DNS – Concepts et installations, voir section 2.

[RFC-1034]. Voir la section 4 – Détails d'implémentation.