Aller au contenu principal

DNS et résolution de noms

Google IT Support — Réseaux informatiques

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)

  1. Client demande www.example.com à son résolveur configuré (DNS du FAI, 8.8.8.8, 1.1.1.1)
  2. Résolveur vérifie son cache → si trouvé, répond immédiatement
  3. Sinon : interroge serveur racine (.) → obtient NS pour .com
  4. Interroge serveur .com → obtient NS pour example.com
  5. Interroge serveur autoritatif example.com → obtient enregistrement A
  6. 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é