Chapitre 216 minIntermédiaire
Zones et enregistrements DNS : SOA, A, CNAME, MX, SRV, PTR
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- distinguer un domaine d'une zone et expliquer une délégation ;
- choisir et écrire le bon enregistrement pour chaque besoin ;
- lire les champs du SOA et gérer le numéro de série ;
- construire une zone inverse et ses enregistrements PTR ;
- écrire un fichier de zone complet sans les erreurs classiques.
4 exercices corrigés
Une zone DNS est la portion de l'arbre des noms dont un serveur a la charge, décrite par une liste d'enregistrements de ressource : A pour une adresse IPv4, CNAME pour un alias, MX pour la messagerie, PTR pour la résolution inverse, et une dizaine d'autres. Ce chapitre explique la différence entre domaine et zone, détaille chaque type d'enregistrement avec la syntaxe d'un fichier de zone, la délégation, les zones inverses et la copie d'une zone d'un serveur à un autre.
Domaine, zone, délégation
Un domaine est une branche de l'arbre : sorbier.example et tout ce qu'il y a dessous. Une zone est la partie de cette branche gérée d'un seul tenant, sur les mêmes serveurs. Tant que Sorbier gère tout sorbier.example au même endroit, domaine et zone se confondent. Mais Sorbier a confié ad.sorbier.example à ses contrôleurs de domaine : le domaine sorbier.example contient alors deux zones.
- La zone
sorbier.example, chez l'hébergeur :www,suivi,mail… (sans délégation pourad, voir l'encadré ci-dessous). - La zone
ad.sorbier.example, sursrv-adetsrv-ad2: les serveurs, les postes, les enregistrements SRV de l'annuaire.
Une délégation est le panneau indicateur qui dit « pour ce sous-domaine, adresse-toi à ces serveurs ». Elle se fait par des enregistrements NS placés dans la zone parente. C'est exactement ce que fait la zone .fr pour service-public.fr, ou la racine pour .fr.
Quand les serveurs délégués portent un nom à l'intérieur de la zone déléguée (ns1.filiale.sorbier.example pour la zone filiale.sorbier.example), la zone parente doit aussi donner leur adresse, sinon personne ne pourrait les joindre : ce sont les enregistrements de colle (glue records), des A placés dans la zone parente.
; Dans la zone sorbier.example : délégation de filiale.sorbier.example
filiale IN NS ns1.filiale.sorbier.example.
filiale IN NS ns2.filiale.sorbier.example.
; Enregistrements de colle : sans eux, ns1 et ns2 seraient introuvables
ns1.filiale IN A 198.51.100.10
ns2.filiale IN A 198.51.100.11
Les types d'enregistrements
Chaque enregistrement a cinq champs : le nom, le TTL (facultatif, sinon celui de la zone), la classe (IN pour Internet, toujours), le type et la donnée.
| Type | Rôle | Exemple dans un fichier de zone |
|---|---|---|
| SOA | Début d'autorité : un seul par zone, en tête, avec les paramètres de la zone | Voir plus bas |
| NS | Serveurs qui font autorité pour la zone (ou pour un sous-domaine délégué) | @ IN NS ns1.sorbier.example. |
| A | Nom vers adresse IPv4 | www IN A 203.0.113.17 |
| AAAA | Nom vers adresse IPv6 | www IN AAAA 2001:db8:17::80 |
| CNAME | Alias : ce nom est un autre nom | extranet IN CNAME suivi.sorbier.example. |
| MX | Serveur de messagerie du domaine, avec une préférence (le plus petit nombre d'abord) | @ IN MX 10 mail.sorbier.example. |
| TXT | Texte libre : SPF, DKIM, DMARC, preuves de propriété d'un domaine | @ IN TXT "v=spf1 mx -all" |
| SRV | Service : priorité, poids, port et serveur qui le rend | _ldap._tcp IN SRV 0 100 389 srv-ad.ad.sorbier.example. |
| PTR | Adresse vers nom, dans une zone inverse | 178 IN PTR srv-fichiers.ad.sorbier.example. |
| CAA | Autorités de certification autorisées à émettre des certificats pour le domaine | @ IN CAA 0 issue "letsencrypt.org" |
| DNSKEY, DS, RRSIG | Clés et signatures DNSSEC | Créés par le serveur qui signe (chapitre 5) |
Le symbole @ désigne le nom de la zone elle-même (l'« apex ») : dans la zone sorbier.example, @ IN MX 10 mail.sorbier.example. veut dire « le serveur de messagerie de sorbier.example est mail.sorbier.example ».
Le piège du point final
Dans un fichier de zone, un nom sans point final est relatif : le serveur lui ajoute le nom de la zone. Un nom avec point final est absolu.
Écrit dans la zone sorbier.example | Compris comme |
|---|---|
www | www.sorbier.example. |
mail.sorbier.example. | mail.sorbier.example. |
mail.sorbier.example (point oublié) | mail.sorbier.example.sorbier.example. |
CNAME : trois règles à connaître
Un CNAME dit « ce nom est un alias de cet autre nom » : le résolveur reprend alors la résolution avec le nom cible. C'est pratique pour donner un nom de service (intranet) à une machine (srv-intranet) : si le service change de machine, tu modifies une seule ligne.
- Un nom qui porte un CNAME ne porte rien d'autre. Pas de MX, pas de TXT, pas de A à côté (RFC 1034). Conséquence : l'apex d'une zone (
sorbier.examplelui-même) ne peut jamais être un CNAME, puisqu'il porte déjà le SOA et les NS. - Un MX ou un NS ne pointe jamais vers un CNAME (RFC 2181) : il doit désigner un nom qui a directement un A ou un AAAA.
- Évite les chaînes d'alias : chaque CNAME ajoute une étape à la résolution.
MX : la préférence et le repli
Un domaine peut avoir plusieurs MX. Le serveur qui envoie un courriel essaie d'abord celui de plus petite préférence, puis les suivants s'il ne répond pas. À préférence égale, il en choisit un au hasard, ce qui répartit la charge.
@ IN MX 10 mail.sorbier.example.
@ IN MX 20 mail-secours.messagerie.example.
Le chiffre n'a pas d'autre sens que l'ordre : 10 et 20, ou 0 et 5, donnent le même résultat. Le chapitre 10 explique le trajet complet d'un courriel.
SRV : trouver un service
Un enregistrement SRV permet à un client de trouver quel serveur, sur quel port, rend un service. Son nom suit la forme _service._protocole.domaine, et sa donnée contient quatre champs : priorité (le plus petit d'abord), poids (répartition entre serveurs de même priorité), port et cible.
_ldap._tcp.dc._msdcs IN SRV 0 100 389 srv-ad.ad.sorbier.example.
_ldap._tcp.dc._msdcs IN SRV 0 100 389 srv-ad2.ad.sorbier.example.
_kerberos._tcp IN SRV 0 100 88 srv-ad.ad.sorbier.example.
Active Directory repose entièrement sur les SRV : c'est ainsi qu'un poste trouve un contrôleur de domaine pour ouvrir une session. Ils sont créés automatiquement par le service Netlogon de chaque contrôleur ; tu ne les écris jamais à la main (cours Windows Server). D'autres services s'en servent : SIP pour la téléphonie (_sip._udp), la configuration automatique des clients de messagerie (_imaps._tcp, _submission._tcp).
Le SOA, champ par champ
Le SOA (Start Of Authority) ouvre chaque zone. Il dit quel serveur est le primaire, qui contacter, et comment les serveurs secondaires doivent se synchroniser.
@ IN SOA ns1.sorbier.example. hostmaster.sorbier.example. (
2026110301 ; numéro de série
7200 ; refresh : 2 h
3600 ; retry : 1 h
1209600 ; expire : 14 jours
3600 ) ; TTL négatif : 1 h
| Champ | Exemple | Rôle |
|---|---|---|
| MNAME | ns1.sorbier.example. | Serveur primaire de la zone |
| RNAME | hostmaster.sorbier.example. | Adresse du responsable, avec un point à la place du @ : ici hostmaster@sorbier.example |
| Serial | 2026110301 | Numéro de version de la zone. Le format conseillé est AAAAMMJJnn : la date, puis un compteur de 01 à 99 pour les modifications du jour |
| Refresh | 7200 | Toutes les 2 heures, le secondaire vérifie si le serial du primaire a augmenté |
| Retry | 3600 | Si le primaire ne répond pas, le secondaire réessaie toutes les heures |
| Expire | 1209600 | Sans nouvelles du primaire pendant 14 jours, le secondaire cesse de répondre pour la zone : mieux vaut aucune réponse qu'une réponse périmée |
| Minimum | 3600 | Aujourd'hui, la durée de cache des réponses négatives (NXDOMAIN) |
Zones inverses et enregistrements PTR
La résolution inverse répond à « quel nom porte l'adresse 192.168.10.178 ? ». Elle sert aux journaux (qui affichent des noms), à la supervision, au dépannage (tracert qui affiche des noms) et à la messagerie : beaucoup de serveurs de courriel refusent un expéditeur dont l'adresse publique n'a pas de PTR cohérent.
Les adresses sont rangées dans le domaine spécial in-addr.arpa (IPv4) et ip6.arpa (IPv6), octets à l'envers, parce que le DNS lit de droite à gauche du plus général au plus précis, alors qu'une adresse IP se lit dans l'autre sens.
| Adresse | Zone inverse (réseau en /24) | Nom de l'enregistrement PTR |
|---|---|---|
192.168.10.178 | 10.168.192.in-addr.arpa | 178 (soit 178.10.168.192.in-addr.arpa.) |
192.168.10.225 | 10.168.192.in-addr.arpa | 225 |
10.30.1.161 (agence de Marseille, en /16) | 30.10.in-addr.arpa | 161.1 (soit 161.1.30.10.in-addr.arpa.) |
Les zones inverses se découpent sur les frontières d'octet : /8, /16 ou /24. Chez Sorbier, tous les VLAN sont découpés dans 192.168.10.0/24 : une seule zone, 10.168.192.in-addr.arpa, couvre les postes (/26), les serveurs (/28), l'entrepôt (/27) et la DMZ (/28).
Serveurs primaires et secondaires : le transfert de zone
Une zone doit être servie par au moins deux serveurs, de préférence sur des réseaux différents, pour qu'une panne ne rende pas tout le domaine introuvable. Hors Active Directory, un seul serveur détient la version modifiable :
- le serveur primaire (primary, anciennement « maître ») porte le fichier de zone que l'administrateur modifie ;
- les serveurs secondaires (secondary, anciennement « esclaves ») en obtiennent une copie en lecture seule par transfert de zone.
| Mécanisme | Ce qu'il fait |
|---|---|
| NOTIFY | Le primaire prévient ses secondaires dès qu'une zone change, sans attendre le délai refresh |
| AXFR | Transfert complet de la zone, en TCP 53 |
| IXFR | Transfert incrémental : seulement les modifications depuis le serial que possède le secondaire |
| TSIG | Signature des transferts par une clé partagée : le primaire ne transfère qu'aux serveurs qui la connaissent |
Les zones intégrées à Active Directory n'ont pas de primaire unique : la zone est stockée dans l'annuaire, chaque contrôleur DNS peut la modifier, et la copie se fait par la réplication de l'annuaire, sans transfert de zone. C'est un fonctionnement multimaître.
Une zone complète
Voici la zone publique de Sorbier telle qu'elle est publiée par son serveur primaire. Toutes les adresses publiques sont celles de la documentation.
$TTL 3600
$ORIGIN sorbier.example.
@ IN SOA ns1.sorbier.example. hostmaster.sorbier.example. (
2026110301 7200 3600 1209600 3600 )
IN NS ns1.sorbier.example.
IN NS dns2.hebergeur.example.
IN MX 10 mail.sorbier.example.
IN A 203.0.113.17
IN TXT "v=spf1 mx -all"
IN CAA 0 issue "letsencrypt.org"
ns1 IN A 203.0.113.17
www IN A 203.0.113.17
suivi IN A 203.0.113.17
mail IN A 198.51.100.25
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@sorbier.example"
Lis-la ligne par ligne :
$TTL 3600fixe le TTL par défaut,$ORIGINle nom ajouté aux noms relatifs ;- les lignes qui commencent par un espace ou une tabulation reprennent le nom de la ligne précédente : les NS, le MX, le A et le TXT concernent tous
@; ns1,wwwetsuivipointent vers l'adresse publique du pare-feu, qui publie les services de la DMZ (chapitre 9) ;mailest le serveur de messagerie, hébergé chez un prestataire à l'adresse198.51.100.25;dns2.hebergeur.exampleest un serveur secondaire chez l'hébergeur : il copie la zone depuisns1.
Exercices
Exercice 1 sur 4 Choisir l'enregistrement Réussi À revoir
Quel type d'enregistrement crées-tu, et dans quelle zone, pour que :
intranet.ad.sorbier.examplemène àsrv-intranet.ad.sorbier.example, quelle que soit son adresse ?- les courriels adressés à
@sorbier.examplearrivent surmail.sorbier.example? - l'adresse
192.168.10.180s'affichesrv-journaux.ad.sorbier.exampledans les journaux ? - seule l'autorité Let's Encrypt puisse émettre un certificat pour
sorbier.example? - les clients VoIP trouvent le serveur SIP en UDP 5060 ?
Voir la réponseMasquer la réponse de l'exercice 1
- Un CNAME dans la zone
ad.sorbier.example:intranet IN CNAME srv-intranet.ad.sorbier.example. - Un MX à l'apex de la zone
sorbier.example:@ IN MX 10 mail.sorbier.example., avec un A pourmail(pas un CNAME). - Un PTR dans la zone inverse
10.168.192.in-addr.arpa:180 IN PTR srv-journaux.ad.sorbier.example. - Un CAA à l'apex de
sorbier.example:@ IN CAA 0 issue "letsencrypt.org". - Un SRV :
_sip._udp IN SRV 10 100 5060 <nom du serveur SIP>.dans la zone du domaine des téléphones.
Tu avais trouvé ?
Exercice 2 sur 4 Trouver les erreurs Réussi À revoir
Un stagiaire a écrit cette zone. Trouve les quatre erreurs et corrige-les.
$TTL 3600
$ORIGIN sorbier.example.
@ IN SOA ns1.sorbier.example. hostmaster@sorbier.example. (
2026110301 7200 3600 1209600 3600 )
IN NS ns1.sorbier.example.
IN MX 10 courrier
courrier IN CNAME mail.sorbier.example.
mail IN A 198.51.100.25
www IN CNAME sorbier.example
@ IN CNAME suivi.sorbier.example.
Voir la réponseMasquer la réponse de l'exercice 2
- RNAME :
hostmaster@sorbier.example.contient un@. Le champ s'écrithostmaster.sorbier.example. - MX vers un CNAME :
courrierest un alias, interdit comme cible d'un MX. ÉcrisIN MX 10 mail.sorbier.example.et supprime l'alias s'il ne sert à rien d'autre. - Point final oublié :
www IN CNAME sorbier.exampledevientsorbier.example.sorbier.example.Écrissorbier.example. - CNAME à l'apex :
@porte déjà le SOA, les NS et le MX, il ne peut pas être un alias. Mets un A :@ IN A 203.0.113.17.
Il manque aussi un second NS sur un autre serveur, et le A de ns1 : sans lui, le serveur primaire annoncé est introuvable.
Tu avais trouvé ?
Exercice 3 sur 4 Les zones inverses Réussi À revoir
Donne la zone inverse et le nom du PTR pour chaque adresse :
192.168.10.225(srv-web, DMZ), sachant que tout le site est dans192.168.10.0/24.10.40.0.12, au dépôt de Saint-Priest (10.40.0.0/24).10.30.1.161, à l'agence de Marseille, dont la zone inverse couvre10.30.0.0/16.
Voir la réponseMasquer la réponse de l'exercice 3
- Zone
10.168.192.in-addr.arpa, PTR225. - Zone
0.40.10.in-addr.arpa, PTR12. - Zone
30.10.in-addr.arpa, PTR161.1(nom complet :161.1.30.10.in-addr.arpa.).
La méthode : retourne les octets du réseau pour la zone, ceux de l'hôte pour le nom de l'enregistrement.
Tu avais trouvé ?
Exercice 4 sur 4 Le serial Réussi À revoir
Lundi 2 novembre 2026, la zone a le serial 2026110201. Tu fais trois modifications le mardi 3 novembre.
- Quels serials successifs écris-tu ?
- Le secondaire a
refresh = 7200. Sans NOTIFY, combien de temps au plus avant qu'il voie ta première modification ? - Le primaire tombe le 3 novembre à 10 h, et
expire = 1209600. Jusqu'à quand le secondaire répond-il pour la zone ?
Voir la réponseMasquer la réponse de l'exercice 4
2026110301,2026110302,2026110303. Le serial doit seulement augmenter ; le format date + compteur le rend lisible.- 2 heures au plus (le délai refresh), plus le temps du transfert. Avec NOTIFY, c'est quasi immédiat.
- 1 209 600 s = 14 jours, à compter de la dernière synchronisation réussie. Si elle date du 3 novembre à 10 h, il répond jusqu'au 17 novembre vers 10 h, puis cesse de répondre pour la zone.
Tu avais trouvé ?