SOA Resource Record

Un article de Wikipédia, l'encyclopédie libre.

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[modifier | modifier le code]

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 du 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 | modifier le code]

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. Le recommandation du RIPE NCC pour les zones petites et stables est de 86400 ≙ 24 heures[2].
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[3].

Exemple d'enregistrement SOA dans BIND[modifier | modifier le code]

@   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[modifier | modifier le code]

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 RFC 1912[4], 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[modifier | modifier le code]

Pour 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 | modifier le code]

  1. (en) Request for comments no 1035
  2. « Recommendations for DNS SOA Values » : « These recommendations are aimed at small and stable DNS zones. »
  3. (en) M. Andrews, « Negative Caching of DNS Queries (DNS NCACHE) », Request for comments no 2308,
  4. (en) Request for comments no 1912