Sommaire :
Tu connais cette sensation ? Ton serveur DNS ressemble à un placard qu’on n’a jamais rangé : plein d’anciens enregistrements qui traînent depuis des mois. Le DNS Scavenging, c’est Marie Kondo pour ton serveur DNS.

Introduction : pourquoi ton DNS mérite un bon ménage
Spoiler : si tu administres un réseau Windows avec DHCP, ton serveur DNS accumule probablement des enregistrements obsolètes. Résultat ? Des conflits de noms, des résolutions foireuses et des utilisateurs qui viennent te voir avec des mines d’enterrement.
Le DNS Scavenging est cette fonctionnalité magique qui fait le ménage automatiquement. Et contrairement à ton bureau, ça marche vraiment.
🧩 Comment fonctionne le DNS Scavenging ?
Le processus repose sur deux concepts principaux :
- No-Refresh Interval : Période pendant laquelle les mises à jour d’un enregistrement DNS ne sont pas acceptées pour éviter une charge excessive sur le serveur.
- Refresh Interval : Période pendant laquelle l’enregistrement doit être mis à jour avant d’être marqué comme obsolète.
Une fois ces deux périodes écoulées, l’enregistrement devient éligible au Scavenging et peut être supprimé automatiquement par le serveur DNS.
En gros : si un enregistrement n’a pas donné signe de vie pendant No-Refresh + Refresh
, il dégage.
🛡️ Les avantages du DNS Scavenging
- ✅ Nettoyage automatique des anciens enregistrements
- ✅ Réduction des erreurs de résolution dues aux enregistrements obsolètes
- ✅ Optimisation des performances du serveur DNS
- ✅ Moins de galères pour toi (et ça, c’est le plus important)
⚙️ Configuration du DNS Scavenging
Prérequis avant de commencer
⚠️ IMPORTANT : Assure-toi que tes serveurs DHCP et DNS sont correctement synchronisés. Sinon, tu risques de supprimer des enregistrements encore actifs.
Configuration via PowerShell (la méthode de pro)
# Activer le scavenging sur le serveur
Set-DnsServerScavenging -ScavengingState $true
# Définir les intervalles (en jours)
Set-DnsServerZoneAging -Name "cafe.local" -NoRefreshInterval 7.00:00:00 -RefreshInterval 7.00:00:00
# Démarrer immédiatement le processus de scavenging
Start-DnsServerScavenging
Configuration via l’interface graphique
Pour ceux qui préfèrent les clics aux lignes de commande :
- Ouvre la console DNS Manager
- Clic droit sur ton serveur DNS →
Propriétés
- Onglet « Avancé » → Coche
Activer le nettoyage automatique des enregistrements obsolètes
- Définis l’intervalle de nettoyage (recommandé : 7 jours)
Configuration par zone DNS
# Pour activer le scavenging sur une zone spécifique
Set-DnsServerZoneAging -Name "tondomaine.local" -Aging $true
# Vérifier la configuration
Get-DnsServerZoneAging -Name "tondomaine.local"
🔧 Configuration avancée : les réglages fins
Pour les environnements complexes avec plusieurs contrôleurs de domaine, assure-toi de bien maîtriser la gestion des rôles FSMO avant de déployer le scavenging.
Synchronisation avec DHCP
Si tu utilises DHCP (et tu devrais), synchronise les durées :
# Durée de bail DHCP : 8 jours
# No-Refresh Interval : 7 jours
# Refresh Interval : 7 jours
# Total avant suppression : 14 jours
Set-DnsServerZoneAging -Name "tondomaine.local" -NoRefreshInterval 7.00:00:00 -RefreshInterval 7.00:00:00
Surveillance et logs
# Activer les logs détaillés
Set-DnsServerDiagnostics -SaveLogsToPersistentStorage $true -EnableLogFileRollover $true
# Vérifier les enregistrements éligibles au scavenging
Get-DnsServerResourceRecord -ZoneName "tondomaine.local" | Where-Object {$_.TimeStamp -lt (Get-Date).AddDays(-14)}
🚨 Pièges à éviter (ou comment ne pas tout casser)
❌ Erreur n°1 : Activer sans tester
Le piège : Activer le scavenging sur toutes les zones d’un coup. La solution : Teste d’abord sur une zone de dev ou non-critique.
❌ Erreur n°2 : Mauvaise synchronisation DHCP
Le piège : Intervalles DNS plus courts que les baux DHCP. La solution : Durée DHCP = No-Refresh + Refresh + marge de sécurité
.
❌ Erreur n°3 : Pas de sauvegarde
Le piège : « Ça va bien se passer… » La solution : Sauvegarde ta zone DNS avant d’activer le scavenging.
# Export de sauvegarde
dnscmd /zoneexport tondomaine.local tondomaine_backup.txt
📊 Surveillance et maintenance
Vérification périodique
# Vérifier l'état du scavenging
Get-DnsServerScavenging
# Voir les dernières suppressions
Get-WinEvent -FilterHashtable @{LogName='DNS Server'; ID=1541}
# Statistiques de la zone
Get-DnsServerStatistics
Script de monitoring
# Script à lancer en tâche planifiée
$ZoneName = "tondomaine.local"
$Records = Get-DnsServerResourceRecord -ZoneName $ZoneName
$StaleRecords = $Records | Where-Object {$_.TimeStamp -lt (Get-Date).AddDays(-30)}
if ($StaleRecords.Count -gt 100) {
# Envoyer une alerte
Write-EventLog -LogName "Application" -Source "DNS Monitoring" -EventId 1001 -Message "Trop d'enregistrements obsolètes détectés : $($StaleRecords.Count)"
}
🎯 Bonnes pratiques
Configuration recommandée pour un environnement standard
- No-Refresh Interval : 7 jours
- Refresh Interval : 7 jours
- Durée bail DHCP : 8 jours minimum
- Fréquence de scavenging : Toutes les 24h
Pour les environnements critiques
- No-Refresh Interval : 14 jours
- Refresh Interval : 14 jours
- Durée bail DHCP : 30 jours
- Tests préalables obligatoires
🔗 Intégration avec l’écosystème Windows
Le DNS Scavenging fonctionne parfaitement avec :
- Active Directory (évidemment)
- DHCP dynamique
- Réplication DNS multi-sites
Si tu gères des environnements mixtes Linux/Windows, consulte mon guide sur comment connecter Ubuntu à Active Directory pour optimiser la configuration DNS.
Conclusion : DNS propre, admin heureux

Avec le DNS Scavenging correctement configuré, ton serveur DNS reste propre automatiquement. Plus besoin de faire le ménage manuellement tous les mois.
Prochaine étape ? Pense à automatiser la surveillance avec des scripts PowerShell et des alertes. Ton futur toi te remerciera.
Et si ça se casse ? Tu as fait une sauvegarde avant d’activer le scavenging… hein ? HEIN ?