Mesurez et raccourcissez la propagation DNS dans Active Directory avec une approche rigoureuse : supervision en temps réel, scripts de mesure, analyse d’événements, réglages AD/DNS et optimisations réseau. Ce guide fournit des méthodes concrètes et reproductibles.
Pourquoi les délais de propagation DNS surviennent dans Active Directory
Dans un environnement Active Directory (AD), les zones DNS intégrées à l’annuaire (AD‑integrated) sont répliquées via les mécanismes de réplication AD. On parle de « propagation » lorsqu’un enregistrement créé/modifié sur un contrôleur de domaine (DC) devient visible sur les autres serveurs DNS du domaine/forêt. Plusieurs facteurs influencent ce délai :
- Topologie AD : liens de sites, planification et coûts influencent la réplication des partitions
DomainDNSZones
etForestDNSZones
. - Charge et santé des DC : backlogs de réplication, horloge non synchronisée (NTP), files NTDS, pression CPU/IO.
- Qualité réseau : latence, pertes, MTU/fragmentation, goulots d’étranglement WAN, pare‑feu.
- Paramètres DNS/AD : TTL d’enregistrements, aging/scavenging, notifications et intervalles de réplication.
- Rôles spécifiques : RODC (contrôleur de domaine en lecture seule), serveurs secondaires, stub, forwarders conditionnels.
Métriques clés et objectifs de service (SLO)
Avant de modifier quoi que ce soit, alignez les équipes sur des objectifs mesurables. Exemple d’objectifs par défaut (à adapter selon vos sites et SLA internes) :
Métrique | Définition | Objectif réaliste | Seuil d’alerte |
---|---|---|---|
Propagation intra‑site | Temps pour qu’un A/AAAA créé sur un DC devienne résolu identiquement par tous les DC du même site | < 5–10 min | > 15 min |
Propagation inter‑sites | Temps pour visibilité uniforme de l’enregistrement à travers plusieurs sites AD | < 30–45 min | > 60 min |
Backlog de réplication AD | Objets en attente par partenaire | < 100 | > 500 de façon soutenue |
Latence inter‑sites | Aller‑retour réseau moyen entre DC partenaires | < 80–100 ms | > 120 ms |
Échecs de résolution | Pourcentage de requêtes NXDOMAIN/Timeout depuis chaque DC | < 0,1 % | > 1 % |
Supervision en temps réel et détection d’écarts
La meilleure alarme est une mesure « boîte noire » qui valide ce que voient les clients : interrogez, à intervalles réguliers, un même nom depuis chaque DC et comparez le jeu de réponses.
- Principe : surveiller la résolution d’un enregistrement de référence (ou éphémère) via
nslookup
/Resolve-DnsName
en ciblant explicitement l’adresse IP DNS de chaque DC. - Outils : PRTG, Nagios, Zabbix, SolarWinds, ou un orchestrateur de scripts PowerShell planifiés (Task Scheduler, runner CI/CD, solution d’observabilité).
- Règle d’alerte : déclencher si l’IP retournée diffère entre DC, si le TTL diverge fortement, ou si le temps de réponse dépasse x secondes.
Script de mesure de propagation (PowerShell)
Le script ci‑dessous crée un enregistrement A temporaire sur un DC source, puis sonde tous les DC pour mesurer le temps de propagation effectif. Adaptez $ZoneName
, $DcSource
, et l’adresse IP à vos besoins.
$ErrorActionPreference = 'Stop'
# Paramètres
$ZoneName = 'contoso.com'
$RecordHost = 'probe-' + (Get-Date -Format 'yyyyMMddHHmmss')
$RecordFqdn = "$RecordHost.$ZoneName"
$ProbeIp = '192.0.2.123' # Adresse de test non utilisée
$Ttl = New-TimeSpan -Minutes 5
$DcSource = (Get-ADDomainController -Filter * | Where-Object {$_.IsWritable} | Get-Random).HostName
$AllDcs = (Get-ADDomainController -Filter *).HostName
Write-Host "Création de $RecordFqdn sur $DcSource"
# Création de l'enregistrement sur le DC source
Add-DnsServerResourceRecordA -ComputerName $DcSource ` -Name $RecordHost -ZoneName $ZoneName -AllowUpdateAny`
-IPv4Address $ProbeIp -TimeToLive $Ttl | Out-Null
$start = Get-Date
$remaining = @($AllDcs)
$result = @()
while ($remaining.Count -gt 0 -and (New-TimeSpan -Start $start -End (Get-Date)).TotalMinutes -lt 90) {
foreach ($dc in @($remaining)) {
try {
$res = Resolve-DnsName -Server $dc -Name $RecordFqdn -Type A -ErrorAction Stop
$ip = ($res | Where-Object {$*.Type -eq 'A'}).IPAddress
if ($ip -eq $ProbeIp) {
$elapsed = New-TimeSpan -Start $start -End (Get-Date)
$result += [pscustomobject]@{
DC = $dc
Seconds = [math]::Round($elapsed.TotalSeconds,2)
Status = 'OK'
IP = $ip
TTL = ($res | Select-Object -First 1).Section # indicatif
}
$remaining = $remaining | Where-Object {$* -ne $dc}
}
} catch {
# ignore, réessaiera
}
}
Start-Sleep -Seconds 5
}
# Sortie lisible + code de retour
$result | Sort-Object Seconds | Format-Table -AutoSize
# Nettoyage (facultatif)
try {
Remove-DnsServerResourceRecord -ComputerName $DcSource -ZoneName $ZoneName `
-RRType 'A' -Name $RecordHost -RecordData $ProbeIp -Force | Out-Null
} catch {}
Interprétation : si la plupart des DC intra‑site convergent en quelques minutes mais qu’un site distant reste en retard, vérifiez le lien de site AD, la planification de réplication, la latence et les pare‑feu. Si aucun DC ne converge, suspectez un problème de réplication global (voir section « Diagnostics »).
Analyse des journaux DNS et corrélation
Activez le journal « DNS Server » et auditez les événements caractéristiques :
- 4013 : le service DNS attend qu’AD soit prêt pour charger la zone intégrée.
- 4015 : erreur critique venant d’AD (souvent permissions ou base NTDS).
- 4515 : duplication/ambiguïté de zone (copie concurrente ignorée).
- 4521 : échec de chargement de zone depuis AD.
Complétez avec les journaux « Active Directory Domain Services » (erreurs de réplication), et, en cas d’incident, basculez temporairement le journal analytique DNS en mode détaillé pour capturer les transferts/notifications (attention au volume).
Vérifications santé AD : commandes et automatisation
Planifiez des contrôles quotidiens et après chaque changement DNS :
:: Résumé réplication
repadmin /replsummary
:: Détails par partenaire + latence
repadmin /showrepl * /csv > showrepl.csv
:: État DNS et SRV d'infrastructure
dcdiag /test:dns /s:NomDuDC /v
:: Forcer une réplication (usage incident)
repadmin /syncall /AeD
:: Vérifier l'heure
w32tm /query /status
w32tm /query /configuration
Astuce : intégrez ces commandes dans une tâche qui génère un rapport HTML (ou CSV) archivé. Déclenchez une alerte si la « pending queue » dépasse un seuil ou si repadmin retourne des erreurs non‑transitoires.
Optimisations réseau et topologie AD
Les liens de site, leurs coûts et leurs fenêtres de réplication déterminent la vitesse de convergence inter‑sites. Assurez‑vous que le réseau n’est pas l’entrave.
Composant | Recommandations |
---|---|
Pare‑feu | Autoriser : RPC 135/TCP, ports dynamiques RPC (49152–65535/TCP par défaut), LDAP 389/636, GC 3268/3269, Kerberos 88/TCP‑UDP, SMB 445, DNS 53/TCP‑UDP, NTP 123/UDP, ADWS 9389/TCP. |
Latence | < 100 ms entre partenaires de réplication. Ajuster la planification si latence plus élevée ou liens coûteux. |
MTU/Fragmentation | Éviter la fragmentation sur tunnels/VPN. Valider PMTUD, DF‑bit, MSS clamping si nécessaire. |
QoS | Prioriser RPC/LDAP/Kerberos sur les liens saturés. Surveillance active des files WAN. |
Bonnes pratiques topologie : laissez le KCC/ISTG gérer la plupart des liaisons, mais vérifiez les objets de connexion orphelins ou des overrides manuels historiques. Harmonisez les coûts de site avec la réalité des liens WAN.
Paramétrage des zones et de la réplication DNS
- Zones intégrées AD : utilisez « réplication vers tous les DC du domaine » pour
DomainDNSZones
(ou « de la forêt » si nécessaire pour la visibilité globale). Évitez des zones primaires standards sur un DC si vous avez l’option intégrée. - Notification de modification AD (intra‑site) : par défaut, un DC notifie rapidement ses partenaires (délai initial puis rafales). Les paramètres NTDS « Replicator notify pause after modify » et « Replicator notify pause between DSAs » (registre) contrôlent ces délais. Ne les réduisez que prudemment et uniquement si la charge et le réseau le permettent.
- Inter‑sites : la réplication suit la planification et l’intervalle du site link (par défaut, 180 min). Raccourcir l’intervalle sur les liens critiques ou créer un site intermédiaire dédié aux DC DNS fortement sollicités.
- Serveurs secondaires/Notify : pour des sites très lents ou des environnements hybrides, hébergez une zone secondaire locale et activez DNS Notify sur la zone primaire pour accélérer l’arrivée des deltas. Utile lorsque certains résolveurs locaux ne participent pas à la réplication AD.
- RODC : un RODC peut servir DNS en lecture seule pour les zones intégrées. Les mises à jour dynamiques sont relayées vers un DC inscriptible. Prévoyez au moins un DC inscriptible atteint avec une latence stable.
TTL, cache, aging et scavenging
Ne confondez pas réplication AD et TTL des enregistrements. La réplication contrôle la présence des enregistrements sur les serveurs ; le TTL contrôle la durée de mise en cache côté résolveurs/clients.
Type d’enregistrement | TTL recommandé (générique) | Remarques |
---|---|---|
SRV (DC/GC/Kerberos) | 10–30 min | Trop bas => charge accrue ; trop haut => convergence lente lors d’un incident. |
A/AAAA serveurs d’app | 5–30 min | Réduire temporairement avant un basculement planifié. |
CNAME | 5–15 min | Utile pour basculements fréquents. |
Enregistrements rarement modifiés | 1–24 h | Ex. imprimantes statiques. |
Aging/Scavenging : activez le nettoyage automatique pour purger les enregistrements obsolètes. Valeurs courantes : No‑Refresh 7 jours, Refresh 7–14 jours. Après un changement critique, exécutez ipconfig /flushdns
sur les clients concernés et purgez le cache serveur.
# Côté serveur DNS (à exécuter sur chaque DC DNS)
Clear-DnsServerCache -ComputerName NomDuDC -Force
# Côté client
ipconfig /flushdns
Diagnostics pas‑à‑pas (runbook)
- Le test échoue ? Vérifiez la visibilité de l’enregistrement depuis le DC source (
Resolve-DnsName -Server DcSource
). - Réplication AD :
repadmin /replsummary
&repadmin /showrepl
(cherchez backlogs, erreurs permanentes). - Journal DNS : événements 4013/4015/4515/4521 et avertissements corrélés.
- Réseau : latence et pare‑feu (ports listés plus haut). Test
Test-NetConnection
outnc
PowerShell. - Topologie : liens de site, coûts/plans, objets de connexion non désirés.
- Caches : purger caches serveur/clients si un enregistrement récent paraît « absent » mais est bien répliqué.
- Contournement temporaire :
repadmin /syncall /AeD
pour accélérer la convergence (usage incident/PR).
Tableau des compteurs de performance utiles
Catégorie | Compteur | Interprétation |
---|---|---|
NTDS | DRA Inbound/Outbound Bytes Total/sec, DRA Pending Replication Synchronizations | Backlog ou débit de réplication anormal => suspectez réseau ou charge DC. |
DNS | Dynamic Updates/sec, Secure Update Failures, Zone Transfer Requests/sec | Pics d’updates, échecs d’updates sécurisés, transferts anormaux. |
Réseau | Interface: Output Queue Length, Packets Outbound Errors | Congestion ou erreurs interface. |
CPU/Disque | % Processor Time, Disk sec/Read/Write (NTDS/LOG) | IO en souffrance impacte NTDS et donc la réplication. |
Jeu d’outils de ligne de commande
En complément des outils graphiques, conservez ce « kit » prêt à l’emploi :
:: Inventaire des DC et de leur rôle DNS
Get-ADDomainController -Filter * | Select HostName,Site,IsReadOnly,IsGlobalCatalog
:: Vérifier les enregistrements DNS essentiels (ex. _ldap._tcp.dc._msdcs)
dcdiag /test:dns /dnsbasic /e
:: Enumérer les enregistrements suspects
dnscmd /enumrecords contoso.com @ /type A /additional
dnscmd /zoneinfo contoso.com
Exemple de pipeline « boîte noire »
Cette architecture simple détecte les écarts de propagation sans dépendre des journaux :
- Un job planifié crée toutes les 2 heures un enregistrement A éphémère (
probe-<timestamp>
) avec TTL 5–10 min. - Un jeu de sondes (
Resolve-DnsName -Server <DCIP>
) interroge chaque DC pendant 60 minutes et consigne les temps de première visibilité. - Le pipeline consolide les résultats (CSV/TSDB) et produit un graphique « temps de propagation par site ».
- Alertes : si >15 min (intra‑site) ou >60 min (inter‑sites) pour 2 probes consécutives.
- Rétention des mesures sur 90 jours pour corréler avec changements réseau/GPO.
Réduire effectivement les délais : leviers concrets
Axe | Action | Impact | Risques/Notes |
---|---|---|---|
Topologie AD | Diminuer l’intervalle des site links critiques (ex. 180 → 60 min) | Convergence inter‑sites plus rapide | Augmente le trafic RPC ; valider la capacité WAN |
Intra‑site | Optimiser la notification NTDS (garder valeurs proches du défaut) | Propagation plus réactive | Éviter de trop abaisser au risque de rafales et surcharge DC |
DNS secondaire | Déployer un secondaire + Notify localement pour sites très lents | Arrivée des deltas plus rapide qu’attendre la réplication AD | Gestion séparée des ACL de transfert ; cohérence à surveiller |
TTL | Abaisser temporairement avant changements applicatifs | Moins d’effet de cache lors du basculement | Charge accrue pendant la période ; remonter ensuite |
Scavenging | Activer aging/scavenging avec No‑Refresh/Refresh adaptés | Réduit les collisions d’updates et la « pollution » | Tester d’abord en lecture seule (simulation) si possible |
Réseau | Ouvrir les ports RPC dynamiques et DNS, corriger MTU/QoS | Réduit timeouts/fragmentation, réplication plus fluide | Documenter et auditer des règles pare‑feu/GPO |
Pièges fréquents
- DC multi‑homés enregistrant des IP de gestion : désactivez l’enregistrement DNS sur les interfaces non‑production.
- RODC isolé sans relais stable vers un DC inscriptible : les updates clients se bloquent.
- Snapshots de DC restaurés : risque d’USN rollback et incohérences majeures (éviter). Utilisez des sauvegardes « aware ».
- Échéance de certificats LDAPS ou Kerberos cassé : incidents de réplication secondaires mais sévères.
- IPS/IDS/GPO trop stricts sur SMB‑signing/RPC : latences artificielles et timeouts.
Playbook de reprise rapide
- Isoler : identifier le périmètre (sites/DC affectés) via le script de propagation.
- Stabiliser :
repadmin /replsummary
, purger caches, forcer unesyncall
sur les partitions DNS uniquement si nécessaire. - Corriger : pare‑feu/ports, horloge NTP, espace disque NTDS, services stoppés.
- Valider : relancer le script de mesure, comparer aux SLO.
- Documenter : temps de rétablissement, causes racines, actions préventives.
Modèles d’alerting pragmatiques
Type d’alerte | Condition | Seuil | Action |
---|---|---|---|
Incohérence de résolution | Le même FQDN retourne des IP différentes selon les DC (hors Round‑Robin prévu) | > 5 min d’écart | Créer un incident P2, lancer runbook DNS |
Propagation lente | Probe éphémère non visible sur tous les DC du site | > 15 min intra‑site | Vérifier repadmin, réseau et caches |
Backlog AD | DRA Pending Replication Synchronizations élevé | > 500 sur 30 min | Analyser la topologie, santé DC et réseau |
Événements critiques DNS | 4013/4015/4515/4521 | ≥ 1 événement | Escalade immédiate (P1/P2) |
Automatiser la validation après changement
Intégrez dans vos procédures de change un test de propagation. Exemple de pipeline Post‑Change :
- Abaisser le TTL de l’enregistrement cible 24–48 h avant (si applicable).
- Effectuer la modification (A/CNAME/SRV).
- Lancer le script de mesure (ci‑dessus), capturer le temps max par DC/site.
- Forcer, si nécessaire, une réplication ciblée de la partition DNS (
repadmin /syncall /AdeP
avec précaution). - Remonter le TTL à sa valeur nominale.
FAQ express
Réduire l’intervalle des liens de site à 15 minutes partout ? Évitez le « one‑size‑fits‑all ». Appliquez‑le seulement sur les liens critiques avec de la bande passante disponible.
DNS Notify remplace‑t‑il la réplication AD ? Non. Notify accélère la mise à jour des secondaires, tandis que les zones intégrées AD se répliquent via AD. Les deux approches se complètent.
TTL très bas = meilleure propagation ? Non. Le TTL ne joue que sur le cache des résolveurs/clients. Il n’accélère ni n’empêche la réplication AD.
Checklist opérationnelle
Étape | À faire | Valider |
---|---|---|
Avant | Confirmer topologie et ports ouverts, synchronisation NTP, SLA de propagation | w32tm , audit pare‑feu, revue des site links |
Pendant | Créer probe, surveiller résolutions depuis chaque DC | Script de mesure + logs |
Après | Purger caches si nécessaire, relever les temps, déclencher repadmin /syncall en cas d’incident | Comparer aux SLO, rapporter |
Conclusion
La cohérence DNS dans Active Directory repose sur un trépied : mesurer la réalité (probes & scripts), surveiller la santé (journaux, compteurs, latence réseau), et optimiser avec parcimonie (topologie AD, caches, TTL, secondaires/Notify). En industrialisant ces pratiques, vous raccourcissez les délais de propagation, détectez rapidement toute dérive et améliorez la disponibilité des services dépendants du DNS sur l’ensemble de votre infrastructure.