SOA (Start of Authority) est une section importante de la définition de zone dans le système DNS. Elle contient d'importantes informations concernant la zone DNS à laquelle elle se rapporte, notamment concernant le transfert de zone. L'enregistrement SOA est spécifié dans la RFC1035.
Arrière-plan
Normalement, les serveurs de noms DNS sont mis en place dans des clusters. La base de données au sein de ces clusters est synchronisée par le biais de transfert de zones. L'enregistrement SOA dans le fichier de zone contient des données pour contrôler le transfert, telles que le numéro de série et différents compteurs.
Il contient également les adresses e-mail de la personne responsable pour cette zone, ainsi que le nom d'un serveur primaire.
Habituellement, l'enregistrement SOA est situé dans la partie supérieure de la zone. Une zone sans enregistrement SOA ne respecte pas la norme et n'est donc pas transférable.
Structure
Nom
Nom de la zone.
IN
Classe de la zone (habituellement IN pour Internet).
SOA
Abréviation pour Start of Authority.
Primaire
Serveur primaire pour cette zone.
Indique à quel serveur les mises à jour dynamiques doivent être envoyées.
Adresse mail
Mail du responsable de cette zone. Le @ est remplacé par un . et les points avant les @ sont remplacés par \. . On utilisera par exemple la valeur john\.doe.example.com pour l'adresse mail john.doe@example.com.
Numéro de série
Il est augmenté à chaque modification de la zone. Une convention usuelle est d'utiliser le format YYYYMMDDVV en indiquant la date de dernière mise à jour de la zone, suivie d'un compteur VV sur deux chiffres.
Refresh
Durée en secondes après laquelle les serveurs secondaires doivent demander le numéro de série du serveur primaire, afin de détecter les éventuels changements de zone. La recommandation du RIPENCC pour les zones petites et stables est de 86400 ≙ 24 heures.
Retry
Durée en secondes après laquelle les serveurs de noms secondaires doivent réessayer de demander le numéro de série du serveur primaire si le primaire n'a pas répondu. Il doit être inférieur à la valeur Refresh. La recommandation du RIPENCC pour les zones petites et stables est de 7200 ≙ 2 heures.
Expire
Durée en secondes après laquelle les serveurs de noms secondaires doivent arrêter de répondre à une demande pour cette zone si le serveur primaire ne répond pas. Cette valeur doit être supérieure à la somme de Refresh et de Retry. La recommandation du RIPENCC pour les zones petites et stables est de 3600000 ≙ 1000 heures.
TTL
Le « Time to live» pour la mise en cache négative. La recommandation du RIPENCC pour les zones petites et stables est de 172800 ≙ 2 jours.
À l'origine ce champ avait pour but de donner un TTL minimum pour toutes les ressources de la zone et il était utilisé si un enregistrement n'avait pas de TTL spécifié. Cela a été rendu obsolète par la RFC2308.
@ IN SOA master.example.com. hostmaster.example.com. (
2017030301 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
600 ) ; ttl
Changements de numéro de série
Plusieurs méthodes existent:
Mettre le premier numéro de série à 1 et incrémenter ce numéro à chaque changement de la zone.
Utiliser un numéro de série contenant l'année, le mois et le jour de la dernière modification, suivis par un compteur sur deux chiffres (par exemple 2017030301 correspond à la première version du ). Cette méthode est recommandée dans la RFC1912, paragraphe 2.2.
Utiliser un numéro de série contenant l'heure Unix de la dernière modification de la zone.
↑Stéphane Bortzmeyer, «Blog Stéphane Bortzmeyer: RFC 9499: DNS Terminology», sur www.bortzmeyer.org (consulté le ) : «Attention, il peut y avoir plusieurs serveurs primaires (autrefois, ce n'était pas clair et beaucoup de gens croient qu'il y a un serveur primaire, et qu'il est indiqué dans l'enregistrement SOA).»