DNS et résolution de noms
Définition
Le DNS (Domain Name System) est un système distribué et hiérarchique qui traduit les noms de domaine lisibles par l'humain (ex: www.example.com) en adresses IP routables par les machines. C'est l'annuaire d'Internet.
Hiérarchie DNS
. (racine, 13 serveurs racines A-M)
├── com, org, net, fr, be, ca... (TLD - Top Level Domains)
│ ├── example.com (domaine de second niveau)
│ │ ├── www.example.com (sous-domaine / hôte)
│ │ ├── mail.example.com
│ │ └── api.example.com
│ └── google.com
└── gov, edu, mil, int...
- FQDN (Fully Qualified Domain Name) : nom complet terminé par un point final (ex:
www.example.com.) - Zone : portion de l'espace de noms gérée de façon autonome (fichier de zone)
- Délégation : serveur parent pointe vers serveurs autoritatifs du sous-domaine (enregistrements NS)
Types d'enregistrements (Resource Records) courants
| Type | Rôle | Exemple |
|---|---|---|
| A | IPv4 d'un hôte | www 3600 IN A 93.184.216.34 |
| AAAA | IPv6 d'un hôte | www 3600 IN AAAA 2606:2800:220:1:248:1893:25c8:1946 |
| CNAME | Alias (canonical name) | web 3600 IN CNAME www.example.com. |
| MX | Serveur mail (priorité) | @ 3600 IN MX 10 mail.example.com. |
| TXT | Texte libre (SPF, DKIM, DMARC, vérification) | @ 3600 IN TXT "v=spf1 include:_spf.google.com ~all" |
| NS | Serveurs autoritatifs de la zone | @ 3600 IN NS ns1.example.com. |
| SOA | Start of Authority (métadonnées zone) | @ 3600 IN SOA ns1 hostmaster 2024010101 7200 3600 1209600 3600 |
| PTR | Reverse DNS (IP → nom) | 34.216.184.93.in-addr.arpa. IN PTR www.example.com. |
| SRV | Service (port, priorité, poids) | _sip._tcp 3600 IN SRV 10 5 5060 sip.example.com. |
| CAA | Certification Authority Authorization | @ 3600 IN CAA 0 issue "letsencrypt.org" |
Processus de résolution (récursive vs itérative)
Résolution récursive (client → résolveur)
- Client demande
www.example.comà son résolveur configuré (DNS du FAI, 8.8.8.8, 1.1.1.1) - Résolveur vérifie son cache → si trouvé, répond immédiatement
- Sinon : interroge serveur racine (.) → obtient NS pour
.com - Interroge serveur
.com→ obtient NS pourexample.com - Interroge serveur autoritatif
example.com→ obtient enregistrement A - Répond au client, met en cache (TTL)
Résolution itérative (résolveur → serveurs)
Le résolveur fait les requêtes successives lui-même ; chaque serveur répond avec la meilleure info qu'il a (référence au niveau suivant).
Cache et TTL
- TTL (Time To Live) : durée de validité en secondes dans le cache
- Cache client (OS, navigateur) + cache résolveur
ipconfig /flushdns(Windows),systemd-resolve --flush-caches(Linux),dscacheutil -flushcache(macOS)- Propagation : modification DNS visible après expiration TTL (souvent 300-3600s, jusqu'à 48h pour NS)
Outils de diagnostic
nslookup: interactif, simple (nslookup www.example.com,nslookup -type=MX example.com)dig: détaillé, standard Unix (dig www.example.com,dig +short A www.example.com,dig @8.8.8.8 example.com AXFR)host: concis (host www.example.com)resolvectl: systemd-resolved (resolvectl query www.example.com)- En ligne : DNSChecker, MXToolbox, DNSViz, Google Admin Toolbox
Sécurité DNS
- DNSSEC : signatures cryptographiques (RRSIG, DNSKEY, DS, NSEC/NSEC3) — authentifie l'origine et l'intégrité
- DoH (DNS over HTTPS) : RFC 8484, port 443, chiffré, contourne filtrage local
- DoT (DNS over TLS) : RFC 7858, port 853, chiffré
- DNSCrypt : protocole ancien, port 443/53
- Split-horizon DNS : réponses différentes selon source (interne vs externe)
- DNS hijacking / poisoning : réponses falsifiées, cache empoisonné
Configuration client
/etc/resolv.conf(Linux) :nameserver 1.1.1.1,search example.com- Interface réseau (Windows) : IPv4 → Propriétés → DNS
- DHCP option 6 (serveurs DNS) + option 15 (suffixe DNS)
- Ordre de recherche : cache local → hosts (
/etc/hosts,C:\Windows\System32\drivers\etc\hosts) → résolveur configuré