Qu'est-ce qu'une zone DNS ?
Une zone DNS est une portion distincte du namespace DNS gérée par une organisation ou un administrateur spécifique. Une zone contient les registres DNS pour un ou plusieurs domaines et est servie par les serveurs de noms faisant autorité. Bien qu'un domaine soit un nom dans l'arbre DNS, une zone est une limite administrative définissant quels serveurs de noms sont responsables de la réponse aux requêtes.
Domaine vs zone
Comprendre la distinction est crucial :
Domaine
Un domaine est un nom dans la hiérarchie DNS :
example.com (domain)
└── www.example.com (subdomain)
└── blog.example.com (subdomain)
└── api.example.com (subdomain)
Zone
Une zone est un contrôle administratif sur les registres :
Zone unique pour domaine et sous-domaines :example.com zone contains:
- example.com
- www.example.com
- blog.example.com
- api.example.com
Managed by: ns1.example.com, ns2.example.com
Zone de sous-domaine déléguée :
example.com zone contains:
- example.com
- www.example.com
- Delegation: api.example.com → different nameservers
api.example.com zone (separate) contains:
- api.example.com
- v1.api.example.com
- v2.api.example.com
Managed by: ns1.apihost.com, ns2.apihost.com
Composants de la zone
Fichier de zone
Un fichier texte contenant tous les registres DNS d'une zone :
; example.com zone file
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
; Nameserver records
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; A records
@ IN A 203.0.113.50
www IN A 203.0.113.50
blog IN A 203.0.113.51
; MX records
@ IN MX 10 mail.example.com.
mail IN A 203.0.113.52
; CNAME records
ftp IN CNAME www.example.com.
; TXT records
@ IN TXT "v=spf1 include:_spf.google.com ~all"
Registre SOA (Start of Authority)
Chaque zone doit avoir exactement un registre SOA :
example.com. IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
Champs SOA :
| Champ | Objectif | Exemple de valeur |
|---|---|---|
| NS principal | Serveur de noms maître | ns1.example.com |
| Email admin | Contact (@ → .) | admin.example.com ([email protected]) |
| Numéro de série | Numéro de version de zone | 2024010101 |
| Rafraîchissement | Intervalle de vérification du NS secondaire | 7200s (2 heures) |
| Nouvelle tentative | Intervalle de nouvelle tentative en cas d'échec | 3600s (1 heure) |
| Expiration | Le NS secondaire abandonne après | 1209600s (14 jours) |
| TTL minimum | Durée de mise en cache négatif | 3600s (1 heure) |
Registres NS (Serveurs de noms)
Spécifient quels serveurs font autorité pour la zone :
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
Ceux-ci indiquent au monde quels serveurs interroger pour les registres de cette zone.
Types de zones
Zone principale (maître)
La source faisant autorité où les registres de zone sont modifiés :
ns1.example.com (primary)
→ Zone file edited here
→ Changes made directly
→ Notifies secondaries of updates
Zone secondaire (esclave)
Copies en lecture seule qui se répliquent à partir de la zone principale :
ns2.example.com (secondary)
→ Retrieves zone data from primary
→ Cannot be edited directly
→ Automatically syncs based on SOA refresh interval
Transfert de zone (AXFR) :
1. Secondary checks SOA serial number
2. If primary serial is higher → request full zone transfer
3. Primary sends entire zone
4. Secondary updates its copy
Transfert incrémentiel (IXFR) :
1. Secondary requests only changes since last serial
2. Primary sends diff
3. More efficient for large zones with small changes
Zone directe
Mappe les noms de domaines aux adresses IP (le plus courant) :
example.com → 203.0.113.50
www.example.com → 203.0.113.50
Zone inverse
Mappe les adresses IP aux noms de domaines (registres PTR) :
50.113.0.203.in-addr.arpa → example.com
Utilisé pour :
- Vérification du serveur de messagerie
- Enregistrement et sécurité
- Dépannage
Délégation de zone
La délégation crée des zones séparées pour les sous-domaines :
Zone parent (example.com)
; example.com zone
@ IN A 203.0.113.50
www IN A 203.0.113.50
; Delegate api.example.com to different nameservers
api IN NS ns1.apihost.com.
api IN NS ns2.apihost.com.
; Glue records (if needed)
ns1.api IN A 198.51.100.1
ns2.api IN A 198.51.100.2
Zone déléguée (api.example.com)
Fichier de zone complètement séparé sur des serveurs de noms différents :
; api.example.com zone (on ns1.apihost.com)
@ IN A 198.51.100.10
v1 IN A 198.51.100.11
v2 IN A 198.51.100.12
Pourquoi déléguer ?
- Organisationnelle : Les différentes équipes gèrent les différentes zones
- Technique : Utiliser des fournisseurs DNS différents (ex. API sur AWS, site web sur Cloudflare)
- Performance : Distribuer la charge DNS
- Sécurité : Isoler les services sensibles
Gestion des zones
Gestion du numéro de série
Les numéros de série suivent les versions de zone (généralement format YYYYMMDDnn) :
2024010101 ; January 1, 2024, version 01
2024010102 ; January 1, 2024, version 02
2024010201 ; January 2, 2024, version 01
Règle critique : Le numéro de série doit augmenter avec chaque changement, ou les secondaires ne se mettront pas à jour.
Sécurité du transfert de zone
Problème : Les transferts de zone exposent tous les registres DNS Solution : Restreindre les transferts de zone aux secondaires autorisés Configuration BIND :zone "example.com" {
type master;
file "/var/named/example.com.zone";
allow-transfer { 203.0.113.52; 203.0.113.53; }; // Secondary IPs only
notify yes;
};
TSIG (Transaction Signature) : Authentifier les transferts de zone avec des clés partagées :
key "transfer-key" {
algorithm hmac-sha256;
secret "base64-encoded-key";
};
allow-transfer { key transfer-key; };
Vérification de la configuration de la zone
Interroger le registre SOA
dig example.com SOA
; ANSWER SECTION:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. (
2024010101 7200 3600 1209600 3600 )
Interroger les registres NS
dig example.com NS
; ANSWER SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
Demander un transfert de zone (AXFR)
dig @ns1.example.com example.com AXFR
# If allowed, returns entire zone
# If denied, returns transfer failed
La plupart des serveurs de noms publics refusent AXFR pour éviter la divulgation d'informations.
Configurations de zone courantes
Site web simple
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
@ MX 10 mail.example.com
mail A 203.0.113.51
@ TXT "v=spf1 mx -all"
Zone multi-services
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
blog CNAME hosting.wordpress.com.
shop CNAME shops.myshopify.com.
cdn CNAME d111111abcdef8.cloudfront.net.
@ MX 10 aspmx.l.google.com.
Sous-domaines délégués
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
; Delegate api to AWS Route 53
api NS ns-123.awsdns-01.com.
api NS ns-456.awsdns-02.net.
; Delegate cdn to Cloudflare
cdn NS ns1.cloudflare.com.
cdn NS ns2.cloudflare.com.
Meilleures pratiques pour les fichiers de zone
1. Toujours incrémenter le numéro de série : Après chaque changement, ou les secondaires ne se mettront pas à jour
2. Utiliser des numéros de série basés sur la date : Format YYYYMMDDnn pour la clarté
3. Restreindre les transferts de zone : Autoriser uniquement les secondaires autorisés
4. Utiliser plusieurs serveurs de noms : Au minimum 2, de préférence sur des réseaux différents
5. Définir des TTL appropriés : Équilibrer les bénéfices de la mise en cache vs la vitesse de mise à jour
6. Tester avant d'appliquer : Valider la syntaxe du fichier de zone avant de charger
7. Surveiller les transferts de zone : Assurer que les secondaires se synchronisent
8. Documenter les délégations : Noter quelles zones sont déléguées et où
9. Sauvegarder les fichiers de zone : Les sauvegardes régulières évitent la perte de données
10. Utiliser le contrôle de version : Suivre les changements du fichier de zone au fil du temps
Fonctionnalités avancées de la zone
DNSSEC (Signature de zone)
Signez cryptographiquement les registres de zone :
example.com. IN A 203.0.113.50
example.com. IN RRSIG A 8 2 3600 (
signature-data-here )
Protège contre l'empoisonnement du cache et la falsification.
DNS dynamique (DDNS)
Permettre les mises à jour de zone programmatiques :
# Update A record dynamically
nsupdate -k Kupdate.key <<EOF
server ns1.example.com
update delete www.example.com A
update add www.example.com 300 A 203.0.113.51
send
EOF
Utile pour :
- Mises à jour de l'adresse IP domestique
- Infrastructure d'auto-scaling
- Découverte de services
Vues de zone (DNS à horizon divisé)
Servez des données de zone différentes en fonction de l'IP du client :
Internal clients: example.com → 10.0.0.50 (internal)
External clients: example.com → 203.0.113.50 (public)
Cas d'utilisation :
- Versions du site web interne vs externe
- Ressources du réseau privé
- Réponses basées sur la géolocalisation
Dépannage des problèmes de zone
Échecs du transfert de zone
Symptôme : Les secondaires ne sont pas synchronisés Vérifier :# Check if primary allows transfers
dig @ns1.example.com example.com AXFR
# Check secondary logs for errors
tail -f /var/log/named.log
Solutions :
- Vérifier les paramètres allow-transfer
- Vérifier la connectivité réseau entre serveurs
- S'assurer que le numéro de série a augmenté
Le numéro de série n'augmente pas
Symptôme : Les changements ne se propagent pas aux secondaires Solution : Toujours augmenter le numéro de série avec chaque modification de zoneLa délégation ne fonctionne pas
Symptôme : Le sous-domaine ne se résout pas Vérifier :# Verify delegation
dig example.com NS
dig api.example.com NS
# Should show different nameservers for delegated subdomain
Solutions :
- Vérifier les registres NS dans la zone parente
- Vérifier les registres de glu s'il y a lieu
- Confirmer que la zone enfant est configurée
Les zones DNS sont la fondation de la gestion DNS distribuée. Comprendre la structure des zones, la délégation et la gestion permet d'architecturer DNS efficacement pour les organisations de toute taille.