L'enregistrement DNS de type SOA contient des informations importantes sur un nom de domaine et sur la zone DNS à laquelle il se rapporte.
Qu'est-ce qu'un enregistrement DNS SOA ?
L'enregistrement SOA (SOA - Start Of Authority, ou en français, Début de l’autorité), correspond au premier enregistrement d’une zone DNS, il indique le serveur de nom principal (master) ayant autorité sur la zone et détermine comment la zone se propage aux serveurs de noms secondaires (transfert de zone).
Il est généralement la première section d'un fichier de zone, située à l'apex, c'est-à-dire dans la partie supérieure de la zone.
Il contient des données pour contrôler le transfert de zone : c'est le numéro de série et différents compteurs. Le SOA-Record est spécifié dans la RFC 1035.
Il contient également l'adresse e-mail de l'administrateur de la zone DNS (hostmaster), le nom du serveur principal (master ou primary server), la date de la dernière mise à jour du domaine, et le temps que le serveur doit attendre entre les rafraîchissements / mises à jour.
Toutes les zones DNS ont besoin d'un enregistrement SOA afin de fonctionner correctement et de se conformer aux normes IETF. Une zone sans enregistrement SOA ne respecte pas la norme, et n'est donc pas transférable.
Si les serveurs DNS associés à un nom de domaine changent, les champs SOA seront automatiquement mis à jour avec le nouveau serveur autoritaire (master). Ces serveurs DNS (primaires et secondaires) correspondent aux serveurs qui hébergent le fichier de zone.
Important : Les enregistrements et les champs SOA ne peuvent pas être supprimés d’une zone DNS sans quoi la zone n’est plus conforme ni transférable.
Voici un exemple de SOA :
exemple.com. 33200 SOA ns.master.fr. admin.mail.fr. 2023032221 28800 14400 3600000 33200
Nom | exemple.com |
Type d’enregistrement | SOA |
MNAME | ns.master.fr |
RNAME | admin.mail.fr |
Serial | 2023032221 |
REFRESH | 28800 |
RETRY | 14400 |
EXPIRE | 3600000 |
TTL | 33200 |
NB : La valeur du champ « RNAME » correspond à l'adresse e-mail de l'administrateur (hostmaster), mais dans un enregistrement SOA, le signe @ est remplacé par un "." : admin@mail.fr devient donc admin.mail.fr.
Pour connaître les informations du SOA d'un nom de domaine, il est possible d'utiliser la commande nslookup.
Quelle est la structure d'un enregistrement SOA ?
• NOM : Nom de la zone, correspond généralement au nom de domaine. Une zone peut comprendre un seul nom de domaine (un domaine et ses sous-domaines), ou plusieurs noms de domaine. Habituellement, la « zone » est équivalent à « domaine », mais ce n'est pas toujours vrai.
• IN : Zone (IN pour Internet).
• SOA : Type de l'enregistrement, abréviation pour Start of Authority.
• MNAME ou Serveur Primaire : Il s'agit du nom du serveur DNS principal, autrement appelé serveur de noms maître (master NS) ou primaire (primary server) de la zone. Les serveurs secondaires qui stockent des copies des enregistrements DNS de la zone reçoivent les mises à jour dynamiques de la zone principale envoyées par ce serveur maître.
• RNAME ou EMAIL : Adresse email de l'administrateur de la zone DNS. Le @ est remplacé par un .
.
• SERIAL : Numéro de série de la zone. Le numéro de série d'une zone est un numéro de version de l'enregistrement SOA. Il augmente à chaque modification de la zone. Convention commune : YYYYMMDDVV ; indique le moment où la zone a été mise à jour pour la dernière fois. Lorsque le numéro de série change dans un fichier de zone, les serveurs de noms secondaires sont avertis qu'ils doivent mettre à jour leurs copies du fichier de zone via un transfert de zone.
• REFRESH : La durée (en secondes) avant la prochaine demande de mise à jour (refresh, ou en français « rafraîchissement »). Passé ce délai, les serveurs secondaires doivent demander l'enregistrement SOA au serveur principal, afin de voir le numéro de série, et ainsi détecter les changements de zone pour effectuer la mise à jour des enregistrements.
• RETRY : La durée (en secondes) qu'un serveur de noms secondaires doit attendre avant de re-demander une mise à jour (refresh) à un serveur de noms principal qui ne répond pas. Cette durée doit être inférieure au temps de Refresh.
• EXPIRE : La durée (en secondes) après laquelle un serveur secondaire doit cesser de répondre aux requêtes DNS concernant cette zone s'il ne reçoit pas de réponse du serveur primaire pendant ce laps de temps. Cette valeur doit être supérieure à la somme de Refresh et de Retry.
• TTL : Le « Time to live » ou durée de vie de l'enregistrement pour la mise en cache négatif.
Qu'est-ce qu'un transfert de zone ?
Un transfert de zone DNS, également connu sous le type de requête DNS AXFR, est un type de transaction DNS. C’est l’un des nombreux mécanismes permettant de répliquer les fichiers de zone DNS sur un ensemble de serveurs DNS (entre un serveur de noms primaire et serveurs secondaires).
Ce système de synchronisation entre serveurs utilise 2 principaux protocoles d’échange : le Transfert et la Notification.
Le transfert de zone DNS correspond au processus d'envoi de données d'enregistrements DNS d'un serveur de noms principal à un serveur de noms secondaire. L'enregistrement SOA est transféré en premier. Le numéro de série indique au serveur secondaire si sa version doit être mise à jour. Les transferts de zone s'effectuent via le protocole TCP (Transmission Control Protocol) pour le transport des données et prend la forme d’une transaction client-serveur. Le client demandant un transfert de zone est généralement un serveur esclave, ou secondaire, qui demandent des données à un serveur maître, également appelé serveur principal ou Master. La partie de la base de données répliquée est une zone DNS.