Kennisbank › Dns › serveur de noms
dns starter 10 October 2026

serveur de noms

Un serveur de noms, aussi appelé serveur DNS, est un composant essentiel de l'internet tel que nous le connaissons aujourd'hui. C'est un système chargé de

Un serveur de noms, aussi appelé serveur DNS, est un composant essentiel de l'internet tel que nous le connaissons aujourd'hui. C'est un système chargé de traduire les noms de domaine conviviaux pour l'humain — comme pixzo.nl ou google.com — en adresses IP lisibles par machine, comme 192.0.2.1 (IPv4) ou 2001:db8::1 (IPv6). Sans serveurs de noms, chaque utilisateur de l'internet devrait connaître par cœur l'adresse de chaque site web sous forme de chiffres et de deux-points, ce qui serait peu pratique et source d'erreurs. Le serveur de noms constitue donc l'interface entre le monde humain du langage et le monde technique des réseaux.

Le Domain Name System (DNS) est un système hiérarchique et distribué. Les serveurs de noms sont les serveurs qui, au sein de ce système, stockent et fournissent les informations sur les noms de domaine et leurs adresses IP associées. Chaque fois qu'un utilisateur saisit un nom de domaine dans un navigateur, une requête DNS est lancée. Cette requête commence par une question à un serveur de noms — le plus souvent celui du fournisseur d'accès internet ou un résolveur public comme Google DNS (8.8.8.8) ou Cloudflare (1.1.1.1). Le serveur de noms cherche ensuite dans son cache s'il connaît déjà la réponse. Si ce n'est pas le cas, il entame une chaîne de requêtes auprès d'autres serveurs de noms, en commençant par les serveurs racine, puis les serveurs de domaine de premier niveau (TLD) (comme .com ou .nl), et enfin le serveur de noms faisant autorité responsable du domaine concerné.

Les serveurs de noms peuvent être répartis en deux catégories principales : récursifs et faisant autorité. Un serveur de noms récursif agit comme intermédiaire pour le client. Il reçoit la requête d'un utilisateur ou d'un appareil et part lui-même à la recherche de la réponse en contactant éventuellement plusieurs autres serveurs. Ce serveur met les résultats en cache afin de pouvoir répondre plus rapidement aux requêtes futures pour le même domaine. De nombreux fournisseurs d'accès internet et grandes entreprises technologiques proposent des serveurs de noms récursifs. Citons par exemple systemd-resolved, qui fait partie du système Linux et agit comme résolveur stub local, et dirmngr, qui, bien que principalement axé sur GnuPG et la gestion des clés, entretient aussi des connexions réseau pouvant être utilisées en lien avec des opérations liées au DNS.

De l'autre côté se trouve le serveur de noms faisant autorité. Ce serveur contient les informations définitives et correctes sur un domaine ou une zone donnée. Lorsqu'un domaine est enregistré, on configure généralement deux serveurs de noms faisant autorité ou plus (comme ns1.example.com et ns2.example.com). Ces serveurs sont configurés par l'administrateur du domaine et contiennent les zones DNS — des fichiers avec des enregistrements tels que A (IPv4), AAAA (IPv6), MX (e-mail), CNAME (alias) et TXT (informations textuelles). Des outils comme ldns-testns peuvent être utilisés pour mettre en place un serveur de noms simple et factice à des fins de test. Cet outil est destiné aux développeurs qui souhaitent simuler la manière dont un vrai serveur de noms réagirait à certaines requêtes, y compris des réponses invalides ou illisibles, ce qui est utile pour déboguer des clients DNS.

L'interrogation d'un serveur de noms pour obtenir des informations peut se faire de différentes manières, selon l'outil utilisé. L'une des commandes les plus connues pour cela est `dig` (« domain information groper »). Avec `dig`, un utilisateur peut envoyer directement une requête à un serveur de noms spécifique et consulter les réponses DNS brutes. La commande est très flexible et prend en charge diverses options, comme la spécification de types d'enregistrements (A, MX, TXT), de classes (comme IN pour Internet), et le choix d'un serveur spécifique à interroger. Un outil similaire est `drill`, conçu spécifiquement pour prendre en charge DNSSEC (DNS Security Extensions). Le nom est un jeu de mots sur `dig`, mais la fonctionnalité est comparable, avec l'accent mis sur un traitement DNS sécurisé.

Un autre outil mentionné dans le matériel source est `nslookup`. Ce programme offre des modes interactif et non interactif pour interroger des informations DNS. En mode interactif, l'utilisateur peut exécuter plusieurs requêtes sans devoir redémarrer le programme à chaque fois. Bien que `nslookup` soit utilisé depuis longtemps, il est aujourd'hui souvent déconseillé au profit de `dig` ou `drill`, parce qu'il est moins transparent sur la communication DNS sous-jacente et peut parfois donner des résultats déroutants.

Pour les systèmes qui utilisent systemd, `systemd-resolved` joue un rôle central. Il s'agit d'un service système qui agit comme résolveur DNS local. Il offre un résolveur stub avec mise en cache et validation qui prend en charge tant DNS, DNSSEC, LLMNR (Link-Local Multicast Name Resolution) que MulticastDNS. Les applications du système peuvent soumettre des requêtes via une interface D-Bus, un fichier socket spécial ou un port DNS local (généralement 127.0.0.53). `systemd-resolved` communique alors avec des serveurs de noms récursifs externes et assure des réponses rapides, sûres et mises en cache. L'utilitaire `resolvectl` sert à communiquer avec ce service : les utilisateurs peuvent y résoudre des noms de domaine, vérifier l'état ou adapter la configuration. Ce n'est donc pas le serveur de noms lui-même, mais une interface vers le résolveur qui gère la communication avec les serveurs de noms.

Un aspect important des serveurs de noms est leur fiabilité et leur sécurité. Les serveurs de noms peuvent être la cible de différentes attaques, comme l'usurpation DNS, l'empoisonnement de cache ou les attaques DDoS. C'est pourquoi il est crucial que les serveurs de noms soient correctement gérés et sécurisés. Des outils comme `rndc` (« remote name daemon control ») sont utilisés pour gérer un serveur de noms à distance, par exemple pour vider le cache, recharger des configurations ou arrêter le service. `rndc` communique via une connexion TCP sécurisée et utilise des signatures numériques pour l'authentification, ce qui empêche des personnes non autorisées de manipuler le serveur.

La configuration du résolveur sur un système Linux se fait souvent via le fichier `resolv.conf`. Ce fichier contient une liste de serveurs de noms que le système peut consulter. Il contient typiquement des lignes comme `nameserver 8.8.8.8` ou `nameserver 1.1.1.1`. Bien que ce fichier soit lisible par l'humain, il est aujourd'hui souvent géré automatiquement par des systèmes comme `systemd-resolved` ou `NetworkManager`, afin d'éviter les conflits. Il est considéré comme une source fiable d'informations DNS, mais doit être manipulé avec précaution, car des paramètres incorrects peuvent entraîner des problèmes réseau.

En résumé, un serveur de noms est une force invisible mais indispensable au fonctionnement de l'internet. Il traduit des noms en adresses, prend en charge l'e-mail, la sécurité via DNSSEC, et rend les réseaux complexes accessibles à tous. Des outils comme `dig`, `drill`, `nslookup`, `resolvectl` et `rndc` donnent aux administrateurs et aux développeurs la possibilité de tester, gérer et déboguer des serveurs de noms. Des systèmes comme `systemd-resolved` intègrent cette fonctionnalité de manière moderne et efficace dans le système d'exploitation. Sans serveurs de noms, l'internet sous sa forme actuelle ne pourrait pas exister — c'est la machine à traduire qui fait que nous ne devons pas travailler avec des suites de chiffres, mais avec des noms que nous comprenons.

← Terug naar kennisbank
← Terug naar kennisbank