Aller au contenu principal

RFC 1034 - DOMAIN NAMES - CONCEPTS AND FACILITIES

Noms de domaine - Concepts et fonctionnalités

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


Status of this Memo (Statut de ce mémo)

Ce RFC est une introduction au système de noms de domaine (Domain Name System, DNS), et omet de nombreux détails qui peuvent être trouvés dans un RFC complémentaire, « Domain Names - Implementation and Specification » [RFC-1035]. Ce RFC suppose que le lecteur est familier avec les concepts discutés dans ce mémo.

Un sous-ensemble des fonctions DNS et des types de données (Data Types) constitue un protocole officiel (Official Protocol). Le protocole officiel inclut les requêtes standard (Standard Queries) et leurs réponses, ainsi que la plupart des formats de données de classe Internet (par exemple, les adresses d'hôtes).

Cependant, le système de domaine (Domain System) est intentionnellement extensible (Extensible). Les chercheurs proposent, implémentent et expérimentent continuellement de nouveaux types de données, types de requêtes, classes (Classes), fonctions, etc. Par conséquent, bien que les composants du protocole officiel soient censés rester essentiellement inchangés et fonctionner comme un service de production, un comportement expérimental doit toujours être attendu dans les extensions au-delà du protocole officiel.


Abstract (Résumé)

Le DNS (Domain Name System, système de noms de domaine) est l'un des composants fondamentaux de l'infrastructure Internet, fournissant un système de nommage distribué et hiérarchique (Naming System). Ce RFC présente les noms de domaine, leur utilisation pour le courrier Internet et le support d'adresse d'hôte, ainsi que les protocoles (Protocols) et serveurs (Servers) utilisés pour implémenter les facilités de noms de domaine.


Table des matières (Table of Contents)

1. Status of this Memo (Statut de ce mémo)

2. Introduction

  • 2. Introduction
    • 2.1 The history of domain names (L'histoire des noms de domaine)
    • 2.2 DNS design goals (Objectifs de conception du DNS)
    • 2.3 Assumptions about usage (Hypothèses sur l'utilisation)
    • 2.4 Elements of the DNS (Éléments du DNS)

3. Domain Name Space and Resource Records (Espace de noms de domaine et enregistrements de ressources)

  • 3. Domain Name Space and Resource Records (Espace de noms de domaine et enregistrements de ressources)
    • 3.1 Name space specifications and terminology (Spécifications de l'espace de noms et terminologie)
    • 3.2 Administrative guidelines on use (Directives administratives sur l'utilisation)
    • 3.3 Technical guidelines on use (Directives techniques sur l'utilisation)
    • 3.4 Example name space (Exemple d'espace de noms)
    • 3.5 Preferred name syntax (Syntaxe de nom préférée)
    • 3.6 Resource Records (Enregistrements de ressources)
      • 3.6.1 Textual expression of RRs (Expression textuelle des RR)
      • 3.6.2 Aliases and canonical names (Alias et noms canoniques)
    • 3.7 Queries (Requêtes)
      • 3.7.1 Standard queries (Requêtes standard)
      • 3.7.2 Inverse queries (Optional) (Requêtes inverses, optionnel)
    • 3.8 Status queries (Experimental) (Requêtes de statut, expérimental)
    • 3.9 Completion queries (Obsolete) (Requêtes de complétion, obsolète)

4. Name Servers (Serveurs de noms)

  • 4. Name Servers (Serveurs de noms)
    • 4.1 Introduction
    • 4.2 How the database is divided into zones (Comment la base de données est divisée en zones)
      • 4.2.1 Technical considerations (Considérations techniques)
      • 4.2.2 Administrative considerations (Considérations administratives)
    • 4.3 Name server internals (Fonctionnement interne des serveurs de noms)
      • 4.3.1 Queries and responses (Requêtes et réponses)
      • 4.3.2 Algorithm (Algorithme)
      • 4.3.3 Wildcards (Caractères génériques)
      • 4.3.4 Negative response caching (Optional) (Mise en cache des réponses négatives, optionnel)
    • 4.4 Using the database (Utilisation de la base de données)

5. Resolvers (Résolveurs)

  • 5. Resolvers (Résolveurs)
    • 5.1 Introduction
    • 5.2 Client-resolver interface (Interface client-résolveur)
    • 5.3 Resolver internals (Fonctionnement interne des résolveurs)

Annexes (Appendices)


Référence rapide des concepts de base

Hiérarchie DNS

                    .  (racine)
|
+----------+----------+
| | |
com org net ...
| | |
+----+----+ | +---+---+
| | | | |
google amazon ietf example ...
|
+---+---+
| |
www mail

Structure des noms de domaine

www.example.com.
│ │ │ └─ racine (généralement omis)
│ │ └───── Domaine de premier niveau (TLD)
│ └─────────── Domaine de deuxième niveau (SLD)
└───────────── nom d'hôte/sous-domaine

Nom de domaine pleinement qualifié (Fully Qualified Domain Name, FQDN) : www.example.com.
Nom de domaine relatif (Relative Domain Name) : www

Types d'enregistrements DNS (RR Types)

TypeNomUtilisation
AAddressAdresse IPv4
AAAAIPv6 AddressAdresse IPv6
CNAMECanonical NameEnregistrement d'alias
MXMail ExchangeServeur de messagerie
NSName ServerServeur de noms
PTRPointerDNS inversé
SOAStart of AuthorityAutorité de zone
TXTTextEnregistrement de texte
SRVServiceLocalisation de service

Types de requêtes DNS

Requête récursive (Recursive Query) :
Client → DNS local → [requête récursive] → Réponse finale

Requête itérative (Iterative Query) :
Client → DNS1 → [référence] → DNS2 → [référence] → DNS3 → Réponse

Format d'enregistrement de ressource (RR Format)

name    TTL   class   type   rdata
example.com. 3600 IN A 93.184.216.34
│ │ │ │ │
│ │ │ │ └─ données d'enregistrement
│ │ │ └────── type d'enregistrement
│ │ └──────────── classe (IN=Internet)
│ └────────────────── Durée de vie (secondes)
└──────────────────────────────── nom de domaine

Processus de résolution DNS

1. L'utilisateur interroge www.example.com

2. Vérifier le cache local

3. Interroger le serveur DNS local

4. Interroger le serveur racine → retourne le serveur .com

5. Interroger le serveur .com → retourne le serveur example.com

6. Interroger le serveur example.com → retourne l'adresse IP

7. Retourner le résultat et mettre en cache

Zone vs Domaine

ConceptDéfinitionExemple
Domaine (Domain)Un nœud dans l'arbre de noms et tous ses sous-nœudsexample.com et tous ses sous-domaines
ZoneUne partie d'un domaine gérée par une seule autoritéFichier de zone example.com

Différence clé : Un domaine peut être divisé en plusieurs zones à des fins de gestion.

Types de serveurs de noms

TypeDescription
Serveur autoritaire (Authoritative)Possède la source officielle pour les données de zone
Serveur récursif (Recursive)Effectue une résolution complète au nom des clients
Serveur de cache (Caching)Met uniquement en cache les résultats de requête
Redirecteur (Forwarder)Transfère les requêtes à d'autres serveurs

Exemple de fichier de zone

$ORIGIN example.com.
$TTL 3600

@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL

IN NS ns1.example.com.
IN NS ns2.example.com.

IN MX 10 mail.example.com.

www IN A 93.184.216.34
mail IN A 93.184.216.35
ftp IN CNAME www.example.com.

Caractéristiques clés du DNS

1. Espace de noms hiérarchique (Hierarchical Namespace)

  • Structure arborescente avec racine en haut
  • Utilise des points (.) pour séparer les niveaux
  • Lecture de droite à gauche (racine → TLD → SLD → hôte)

2. Base de données distribuée (Distributed Database)

  • Pas de point de défaillance unique
  • Données distribuées sur des milliers de serveurs dans le monde
  • Chaque zone gérée par des serveurs autoritaires

3. Mécanisme de mise en cache (Caching Mechanism)

  • Réduit la latence des requêtes
  • Diminue la charge sur les serveurs racines
  • Le TTL contrôle la période de validité du cache

4. Redondance (Redundancy)

  • 13 clusters de serveurs racines (A-M)
  • Chaque zone a généralement plusieurs enregistrements NS
  • Architecture serveur primaire/secondaire

5. Extensibilité (Extensibility)

  • Prend en charge de nouveaux types RR
  • Prend en charge de nouveaux types de requêtes
  • Mécanisme d'extension EDNS0

DNS vs Systèmes anciens (HOSTS.TXT)

CaractéristiqueHOSTS.TXTDNS
GestionCentraliséeDistribuée
ÉvolutivitéMauvaise (bande passante O(n²))Bonne (hiérarchique)
Mises à jourFTP manuelSynchronisation automatique
RequêtesRecherche dans un fichier localRequêtes réseau
StructureListe plateArbre hiérarchique
PerformanceLimitée par la taille du fichierOptimisée avec mise en cache

Flux de données DNS

+----------+
| Client |
| App |
+----------+
↓ ↑
Requête | Réponse
↓ ↑
+----------+
| Résolveur| ← Config : /etc/resolv.conf
+----------+
↓ ↑
Protocole DNS
↓ ↑
+----------+
| Serveur | ← Fichiers de zone
| de noms |
+----------+

Système de serveurs racines

13 identifiants de serveurs racines mondiaux (A-M) :

A.ROOT-SERVERS.NET  - VeriSign
B.ROOT-SERVERS.NET - ISI
C.ROOT-SERVERS.NET - Cogent
D.ROOT-SERVERS.NET - UMD
E.ROOT-SERVERS.NET - NASA
F.ROOT-SERVERS.NET - ISC
G.ROOT-SERVERS.NET - DISA
H.ROOT-SERVERS.NET - ARL
I.ROOT-SERVERS.NET - Netnod
J.ROOT-SERVERS.NET - VeriSign
K.ROOT-SERVERS.NET - RIPE NCC
L.ROOT-SERVERS.NET - ICANN
M.ROOT-SERVERS.NET - WIDE

Note : Grâce à l'anycast, chaque « serveur racine » est en réalité des centaines de serveurs physiques distribués dans le monde entier.


Ressources connexes

  • RFC officiel : RFC 1034 (TXT)
  • Page officielle : RFC 1034 DataTracker
  • RFC complémentaire : RFC 1035 - Implémentation et spécification DNS
  • Norme : STD 13
  • Mises à jour :
    • RFC 1101 - Encodage DNS des noms de réseau
    • RFC 1183 - Nouvelles définitions de RR DNS
    • RFC 2181 - Clarifications de la spécification DNS
    • RFC 2308 - Mise en cache négative du DNS
    • RFC 4033-4035 - DNSSEC
    • RFC 6891 - Extensions EDNS0
    • RFC 8499 - Terminologie DNS

Commandes DNS utiles

Unix/Linux/macOS

# Interroger l'enregistrement A
dig example.com A

# Interroger tous les enregistrements
dig example.com ANY

# Tracer le chemin de résolution
dig +trace example.com

# Requête DNS inversée
dig -x 8.8.8.8

# Interroger un serveur DNS spécifique
dig @8.8.8.8 example.com

# Commande nslookup
nslookup example.com

# Commande host
host example.com

Windows

# Interroger le nom de domaine
nslookup example.com

# Interroger un type spécifique
nslookup -type=MX example.com

# Vider le cache DNS
ipconfig /flushdns

# Afficher le cache DNS
ipconfig /displaydns

Note importante : Le DNS est une infrastructure Internet critique dont presque toutes les applications Internet dépendent. Comprendre les concepts DNS et leur fonctionnement est essentiel pour la gestion réseau, la sécurité et le dépannage.

Prochaines étapes : Lisez RFC 1035 - Implémentation et spécification DNS pour les détails d'implémentation de protocole détaillés.