# 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.

## 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. Le recommandation du RIPE NCC 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 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.

## 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 3 mars 2017). Cette méthode est recommandée dans la RFC 1912, 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

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 :
Sous Linux, on peut également utiliser deux autres utilitaires host et dig incluses dans le paquet bind-utils :