Aller au contenu principal

DNS et résolution de noms

Google IT SupportRé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é