Qu'est-ce qu'un résolveur DNS ?
Un résolveur DNS (également appelé résolveur récursif ou serveur DNS récursif) est un serveur qui reçoit les requêtes DNS des appareils clients et effectue le travail de suivi de l'adresse IP d'un nom de domaine. Les résolveurs agissent comme intermédiaires entre les clients et la hiérarchie DNS, en gérant la récursion à travers les serveurs racine, TLD et faisant autorité.
Comment fonctionnent les résolveurs DNS
Le processus de résolution
Lorsque vous tapez « example.com » dans votre navigateur :
1. Client → Resolver: "What's the IP for example.com?"
2. Resolver checks cache
→ Cache hit: Return cached result
→ Cache miss: Begin recursion
3. Resolver → Root Server: "Where's .com?"
Root → Resolver: "Ask these .com nameservers"
4. Resolver → .com TLD: "Where's example.com?"
.com → Resolver: "Ask these nameservers"
5. Resolver → Authoritative NS: "What's example.com's IP?"
Auth NS → Resolver: "203.0.113.50"
6. Resolver → Client: "203.0.113.50"
(Also caches result based on TTL)
Requêtes récursives vs itératives
Requête récursive (Client → Résolveur) :Client: "Give me the final answer for example.com"
Resolver: "Here's the IP: 203.0.113.50"
(Resolver does all the work)
Requête itérative (Résolveur → Serveurs de noms) :
Resolver: "What's example.com?"
Root: "I don't know, ask .com servers"
Resolver: "What's example.com?"
.com: "I don't know, ask ns1.example.com"
Resolver: "What's example.com?"
ns1: "203.0.113.50"
Types de résolveurs
Résolveur stub
Intégré dans les systèmes d'exploitation et les applications :
- Transmet les requêtes aux serveurs DNS configurés
- Logique minimale
- N'effectue pas de récursion
Résolveur récursif
Serveurs à fonctionnalités complètes qui effectuent la résolution DNS complète :
- Cache les résultats
- Suit les références
- Implémente les fonctionnalités de sécurité
Résolveur de transfert
Transmet les requêtes à un autre résolveur au lieu d'effectuer la récursion :
- Commun dans les réseaux d'entreprise
- Application centrale de la politique
- Réduction des requêtes externes
Client → Corporate Resolver (forwarding) → ISP Resolver (recursive) → Internet
Résolveurs publics populaires
| Fournisseur | IPv4 | IPv6 | Caractéristiques |
|---|---|---|---|
| Cloudflare | 1.1.1.1, 1.0.0.1 | 2606:4700:4700::1111 | Rapide, respectueux de la vie privée, pas d'enregistrement |
| 8.8.8.8, 8.8.4.4 | 2001:4860:4860::8888 | Fiable, anycast global | |
| Quad9 | 9.9.9.9 | 2620:fe::fe | Filtrage de sécurité, blocage des menaces |
| OpenDNS | 208.67.222.222 | 2620:119:35::35 | Filtrage de contenu, protection contre le phishing |
Changer votre résolveur
Windows :Control Panel → Network → Adapter Settings
→ Properties → IPv4 → Use these DNS servers:
Preferred: 1.1.1.1
Alternate: 8.8.8.8
macOS :
System Preferences → Network → Advanced → DNS
→ Add: 1.1.1.1, 8.8.8.8
Linux (/etc/resolv.conf) :
nameserver 1.1.1.1
nameserver 8.8.8.8
Fonctionnalités du résolveur
Mise en cache
Les résolveurs mettent en cache les réponses DNS basées sur TTL :
First query: example.com
→ Full recursion (50ms)
→ Cached for 300s (TTL)
Subsequent queries: example.com
→ Cache hit (1ms)
→ Served until TTL expires
Les statistiques de cache montrent que les taux de succès dépassent souvent 80-90%.
Mise en cache négatif
Les résolveurs mettent également en cache les réponses négatives (NXDOMAIN) :
Query: nonexistent.example.com
Response: NXDOMAIN
Cached: Based on SOA minimum TTL
Cela empêche les requêtes répétées pour les domaines inexistants.
Minimisation des requêtes
Les résolveurs modernes minimisent la divulgation d'informations :
Traditionnel :Query to .com: "What's www.blog.example.com?"
→ Exposes full subdomain structure
Minimisation des requêtes (RFC 7816) :
Query to .com: "What's example.com?"
Query to example.com NS: "What's blog.example.com?"
Query to blog.example.com NS: "What's www.blog.example.com?"
→ Reveals only necessary information at each level
Validation DNSSEC
Les résolveurs conscients de la sécurité valident les signatures DNSSEC :
Query: example.com (DNSSEC-signed)
→ Resolver validates signatures
→ Returns AD (Authentic Data) flag if valid
→ Returns SERVFAIL if signatures invalid
Fonctionnalités de sécurité du résolveur
DNS via HTTPS (DoH)
Chiffre les requêtes DNS via HTTPS :
Traditional DNS:
Client → Resolver (UDP port 53, plaintext)
DNS over HTTPS:
Client → Resolver (TCP port 443, encrypted)
Fournisseurs : Cloudflare (https://cloudflare-dns.com/dns-query), Google
DNS via TLS (DoT)
Chiffre les requêtes DNS via TLS :
Client → Resolver (TCP port 853, encrypted)
Bénéfice : Les FAI ne peuvent pas voir ou modifier les requêtes DNS
Filtrage malveillance/hameçonnage
Certains résolveurs bloquent les domaines malveillants connus :
Quad9 (9.9.9.9) : Bloque les domaines associés aux malveillances, hameçonnage Cloudflare for Families : Bloque les malveillances (1.1.1.2) ou malveillances+contenu pour adultes (1.1.1.3)Limitation de débit
Protège contre les attaques par amplification DNS :
If source IP sends > threshold queries/second:
→ Temporarily rate limit or block
Vérification de votre résolveur actuel
Windows :ipconfig /all | findstr "DNS Servers"
macOS/Linux :
cat /etc/resolv.conf
Outils en ligne : browserleaks.com/dns affiche quel résolveur votre navigateur utilise
Test de résolution :
dig example.com
# Look at "SERVER:" in output
Performance du résolveur
La latence compte
Le temps de réponse du résolveur impacte les performances web :
| Résolveur | Latence moyenne | Impact |
|---|---|---|
| FAI local | 10-30ms | Rapide, mais varie |
| Cloudflare | 10-20ms | Consistemment rapide (anycast) |
| 20-40ms | Fiable, global | |
| Résolveur lent | 100-200ms | Délai de chargement de page notable |
Routage anycast
Les résolveurs majeurs utilisent anycast pour une latence faible :
1.1.1.1 anycast IP
→ Routed to nearest Cloudflare datacenter
→ New York query → New York datacenter
→ London query → London datacenter
→ Result: Global low-latency resolution
Mesure des performances du résolveur
Utiliser Namebench (test automatisé) :# Tests multiple resolvers with your actual query patterns
namebench
Test manuel :
# Test Cloudflare
time dig @1.1.1.1 example.com
# Test Google
time dig @8.8.8.8 example.com
# Test ISP (current)
time dig example.com
Problèmes courants du résolveur
Empoisonnement DNS
Les attaquants injectent de faux registres dans le cache du résolveur :
Atténuation :- Utiliser des résolveurs avec validation DNSSEC
- Activer la randomisation du port source
- Utiliser DoH/DoT pour empêcher les attaques de l'homme du milieu
Détournement du résolveur
Les FAI ou les malveillances redirigent les requêtes DNS :
Symptôme : Les recherches affichent les publicités FAI, redirections inattendues Solution :- Changer vers un résolveur public (1.1.1.1, 8.8.8.8)
- Utiliser DoH/DoT pour empêcher l'interférence du FAI
- Vérifier les malveillances
Cache périmé
Le cache du résolveur contient des registres obsolètes :
Symptôme : Les changements DNS ne se reflètent pas Solution :- Attendre l'expiration du TTL
- Utiliser un résolveur différent temporairement
- Vider le cache local
Blocage du résolveur
Certains réseaux bloquent les résolveurs externes :
Symptôme : Impossible d'atteindre 8.8.8.8, 1.1.1.1 Solution :- Utiliser DoH DNS (plus difficile à bloquer)
- Utiliser le point de terminaison DoH du résolveur
Configuration d'un résolveur local
Utiliser Unbound
# Install Unbound (Linux)
sudo apt install unbound
# Basic config (/etc/unbound/unbound.conf)
server:
interface: 127.0.0.1
do-ip4: yes
do-udp: yes
do-tcp: yes
# Enable DNSSEC
auto-trust-anchor-file: "/var/lib/unbound/root.key"
# Privacy (query minimization)
qname-minimisation: yes
# Start service
sudo systemctl start unbound
sudo systemctl enable unbound
Utiliser Pi-hole
Résolveur DNS ad-blocking au niveau du réseau :
# Install Pi-hole
curl -sSL https://install.pi-hole.net | bash
# Configure devices to use Pi-hole as resolver
# Set router DHCP to provide Pi-hole IP as DNS
Meilleures pratiques
1. Utiliser des résolveurs publics réputés : Cloudflare, Google ou Quad9 pour la fiabilité
2. Activer DoH/DoT : Chiffrer les requêtes pour la vie privée et la sécurité
3. Considérer les fonctionnalités du résolveur : Choisir en fonction de la vie privée, la vitesse ou les besoins de sécurité
4. Surveiller les performances du résolveur : Tester la latence périodiquement
5. Avoir des résolveurs de sauvegarde : Configurer les DNS secondaires pour la redondance
6. Utiliser les résolveurs validant DNSSEC : Protéger contre l'empoisonnement du cache
7. Comprendre les politiques de votre résolveur : Certains filtrent le contenu, certains enregistrent les requêtes
8. Tester après les changements : Vérifier que la résolution DNS fonctionne correctement
9. Documenter le choix du résolveur : Noter pourquoi vous avez choisi un résolveur particulier
10. Mettre à jour resolv.conf avec soin : Une configuration incorrecte casse complètement DNS
Résolveur vs serveur de noms faisant autorité
| Fonctionnalité | Résolveur | NS faisant autorité |
|---|---|---|
| Rôle | Répond aux requêtes des clients | Contient les registres DNS réels |
| Récursion | Oui, interroge les autres serveurs | Non, répond uniquement pour ses propres zones |
| Mise en cache | Oui, met en cache les réponses | Non (données faisant autorité) |
| Utilisé par | Clients, utilisateurs finaux | Résolveurs pendant la récursion |
| Exemples | 8.8.8.8, 1.1.1.1 | ns1.example.com |
Les résolveurs DNS sont les chevaux de labour du système DNS. Choisir un résolveur rapide, sécurisé et respectueux de la vie privée améliore significativement votre expérience de navigation et votre sécurité en ligne.