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)
| Type | Nom | Utilisation |
|---|---|---|
| A | Address | Adresse IPv4 |
| AAAA | IPv6 Address | Adresse IPv6 |
| CNAME | Canonical Name | Enregistrement d'alias |
| MX | Mail Exchange | Serveur de messagerie |
| NS | Name Server | Serveur de noms |
| PTR | Pointer | DNS inversé |
| SOA | Start of Authority | Autorité de zone |
| TXT | Text | Enregistrement de texte |
| SRV | Service | Localisation 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
| Concept | Définition | Exemple |
|---|---|---|
| Domaine (Domain) | Un nœud dans l'arbre de noms et tous ses sous-nœuds | example.com et tous ses sous-domaines |
| Zone | Une 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
| Type | Description |
|---|---|
| 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éristique | HOSTS.TXT | DNS |
|---|---|---|
| Gestion | Centralisée | Distribuée |
| Évolutivité | Mauvaise (bande passante O(n²)) | Bonne (hiérarchique) |
| Mises à jour | FTP manuel | Synchronisation automatique |
| Requêtes | Recherche dans un fichier local | Requêtes réseau |
| Structure | Liste plate | Arbre hiérarchique |
| Performance | Limitée par la taille du fichier | Optimisé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.