Enregistrement SOA — Start of Authority

Le SOA est la carte d’identité d’une zone DNS. Unique par zone, il définit le serveur primaire, l’email de l’administrateur et tous les paramètres de synchronisation entre serveurs DNS primaire et secondaires.

Voir Enregistrements DNS pour la liste complète des types.
Tu n’as généralement pas à créer ce record manuellement — il est généré automatiquement par ton fournisseur DNS.


Structure d’un SOA

monentreprise.fr.  86400  IN  SOA  ns1.monentreprise.fr.  admin.monentreprise.fr. (
    2024040502   ; Serial
    3600         ; Refresh
    900          ; Retry
    604800       ; Expire
    300          ; TTL négatif
)
ChampValeur exempleCe que ça signifie concrètement
MNAMEns1.monentreprise.fr.Serveur DNS primaire — c’est là que tu fais tes modifications
RNAMEadmin.monentreprise.fr.Email de l’admin : le . remplace le @admin@monentreprise.fr
Serial2024040502Numéro de version de la zone. Doit augmenter à chaque modification
Refresh3600 (1h)Les secondaires vérifient le SOA toutes les X secondes
Retry900 (15min)Si le primaire ne répond pas, réessaye dans X secondes
Expire604800 (7j)Si le primaire est injoignable depuis X secondes, les secondaires cessent de répondre
TTL négatif300 (5min)Durée de cache d’une réponse NXDOMAIN (“ce sous-domaine n’existe pas”)

Lire le SOA d’un domaine réel

dig github.com SOA
github.com.  900  IN  SOA
  ns-1707.awsdns-21.co.uk.        ; MNAME  : serveur primaire (Route 53)
  awsdns-hostmaster.amazon.com.   ; RNAME  : awsdns-hostmaster@amazon.com
  (
    1         ; Serial  : AWS gère automatiquement
    7200      ; Refresh : secondaires vérifient toutes les 2h
    900       ; Retry   : 15min si primaire KO
    1209600   ; Expire  : 14 jours avant que les secondaires abandonnent
    60        ; TTL négatif : NXDOMAIN caché 60s
  )

Comment la synchronisation primaire/secondaire fonctionne

Tu ajoutes un enregistrement A sur ns1 (primaire)
  → Le Serial passe de 2024040501 à 2024040502
        │
        │  (toutes les "Refresh" secondes)
        ▼
ns2 (secondaire) interroge le SOA de ns1
  → "Son Serial est 2024040502, le mien est 2024040501 → je suis en retard"
  → Déclenche un transfert de zone (AXFR) pour récupérer les nouveaux enregistrements

ns3 (secondaire) interroge le SOA de ns1
  → "Serial identique (2024040501) → rien à faire"

Le piège du Serial

Problème fréquent : tu modifies un enregistrement mais oublies d’incrémenter le Serial.

Avant modification : Serial = 2024040501
Tu modifies l'enregistrement A de api.monentreprise.fr
Tu oublies de changer le Serial → toujours 2024040501

→ ns2 vérifie : "Serial = 2024040501, pareil que moi → rien à synchroniser"
→ ns2 continue à servir l'ANCIEN enregistrement ❌
→ Les clients qui tombent sur ns2 reçoivent la mauvaise IP

Convention de nommage du Serial : AAAAMMJJNN (date + numéro d’incrément du jour)

2024040501  → 5 avril 2024, première modification du jour
2024040502  → 5 avril 2024, deuxième modification
2024040601  → 6 avril 2024, première modification

TTL négatif — cache des NXDOMAIN

Si quelqu’un cherche inexistant.monentreprise.fr et que la réponse est NXDOMAIN (domaine inexistant), cette réponse négative est mise en cache pendant le TTL négatif (5e champ du SOA).

dig inexistant.monentreprise.fr
# → Status: NXDOMAIN
# → Cette réponse sera cachée 300 secondes (valeur TTL négatif)

Un TTL négatif trop long peut poser problème si tu crées le sous-domaine juste après — les clients qui avaient reçu le NXDOMAIN devront attendre l’expiration du cache.


En relation avec

  • Enregistrements DNS — hub des types d’enregistrements
  • DNS - NS — les NS et le SOA forment ensemble l’autorité d’une zone
  • DNS — fonctionnement de la résolution DNS