SOA Resource Record
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 RFC 1035[1].
Arrière-plan
modifierNormalement, 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[2] 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
modifier- 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 valeurjohn\.doe.example.com
pour l'adresse mailjohn.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. Le recommandation du RIPE NCC pour les zones petites et stables est de 86400 ≙ 24 heures[3].
- 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 RIPE NCC 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 RIPE NCC 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 RIPE NCC 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 RFC 2308[4].
@ 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
modifierPlusieurs 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 RFC 1912[5], paragraphe 2.2.
- Utiliser un numéro de série contenant l'heure Unix de la dernière modification de la zone.
Connaître le SOA d'un nom de domaine
modifierPour connaître les informations du SOA d'un nom de domaine (wikipedia.org dans l'exemple ci-dessous), on peut utiliser entre autres la commande nslookup disponible sous les systèmes d'exploitation Linux (paquet bind-utils) et sous Windows, à partir de leurs interpréteurs de commandes respectifs :
C:\>nslookup -query=soa wikipedia.org Serveur : localhost Address: ::1 Réponse ne faisant pas autorité : wikipedia.org primary name server = ns0.wikimedia.org responsible mail addr = hostmaster.wikimedia.org serial = 2022030414 refresh = 43200 (12 hours) retry = 7200 (2 hours) expire = 1209600 (14 days) default TTL = 3600 (1 hour)
Sous Linux, on peut également utiliser deux autres utilitaires host et dig incluses dans le paquet bind-utils :
host -t soa wikipedia.org dig soa wikipedia.org
Références
modifier- (en) Request for comments no 1035
- 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). »
- « Recommendations for DNS SOA Values » : « These recommendations are aimed at small and stable DNS zones. »
- (en) M. Andrews, « Negative Caching of DNS Queries (DNS NCACHE) », Request for comments no 2308,
- (en) Request for comments no 1912