Comment utiliser votre Raspberry Pi comme serveur DNS local ?
Aujourd’hui, vous allez installer un nouveau service sur votre Raspberry Pi : un serveur DNS.
Il vous aidera à accélérer votre navigation Web, à sécuriser vos requêtes et à en apprendre plus sur le fonctionnement du service DNS.
Il existe plusieurs options, mais aujourd’hui, je vais faire simple et vous expliquer comment installer DNSMasq.
DNSMasq est un service DNS qui peut être installé sur Raspberry Pi pour répondre aux requêtes du réseau local.
Il faudra ensuite configurer les ordinateurs du réseau pour utiliser ce serveur DNS plutôt que celui attribué automatiquement par le DHCP.
C’est parti !
Je vais commencer par un petit rappel théorique des serveurs DNS, ensuite nous en installerons un sur votre Raspberry Pi.
Si vous débutez avec Raspberry Pi ou Linux, j’ai quelque chose qui peut vous aider !
Téléchargez ma fiche mémo des commandes Linux gratuitement – c’est un guide de référence rapide avec toutes les commandes essentielles dont vous aurez besoin utiliser votre Raspberry Pi. Cliquez ici pour l’obtenir gratuitement !
Rappel rapide
Si vous êtes ici, vous connaissez probablement les bases des services DNS.
Mais c’est une bonne idée de lire ce paragraphe pour vous assurer de tout comprendre pendant le processus d’installation.
Qu’est-ce qu’un DNS ?
DNS signifie « Domain Name System ».
C’est un service très important sur Internet.
Son rôle est de traduire les noms de domaines en adresses IP.
Sur un réseau, les appareils ne se parlent qu’avec des adresses IP et ont besoin d’un serveur DNS pour convertir les noms d’hôte en adresses IP.
Par exemple, une requête DNS peut être :
- Votre ordinateur demande : quelle est l’adresse IP de raspberrytips.fr?
- Le serveur DNS répond : vous pouvez utiliser 35.180.0.215
Ce type de demande se produit en permanence sur un réseau local et sur Internet.
Comment ça fonctionne ?
Votre serveur DNS est membre d’une hiérarchie.
Lorsque vous envoyez une demande, il existe deux cas :
- Le serveur DNS connaît la réponse : vous obtenez l’adresse IP directement
- Le serveur DNS ne connaît pas l’adresse IP correspondante : le serveur envoie la même requête à son propre serveur DNS et vous renvoie la réponse
Si son propre serveur DNS n’a pas non plus la réponse, il demandera au serveur supérieur, etc …
Dans ce schéma, votre Raspberry Pi sera au bas de l’arbre, chaque cercle est un autre serveur DNS.
On appelle le nœud le plus haut un serveur racine, il a la réponse à toutes les demandes sur les noms de domaines existants.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Chaque requête commence en bas et grimpe à la branche suivante dans l’arbre chaque fois qu’un serveur DNS n’a pas la réponse.
Pourquoi avez-vous besoin d’installer un serveur DNS sur votre réseau local ?
Il peut y avoir quatre raisons pour lesquelles vous avez besoin d’un serveur DNS dans votre réseau :
- Accélérez votre navigation Internet : dans l’arborescence ci-dessus, chaque fois que la requête est envoyée au serveur DNS supérieur, cela ajoute un temps de latence supplémentaire. Avec un serveur DNS dans votre réseau et en utilisant un système de mise en cache, la plupart des requêtes peuvent être traitées directement.
- Protégez votre navigation : lorsque vous utilisez les serveurs DNS de votre fournisseur, ou ceux de Google, vous leur permettez de connaître tous les sites Web que vous visitez sur Internet. En gardant le contrôle sur le service DNS, vous gardez cela privé (la plupart du temps).
Un autre piste pour cela est d’installer Cloudflared (lien vers mon tuto), mais ce n’est pas le sujet du jour. - Stabilité : même en utilisant des serveurs DNS bien connus, vous pouvez perdre votre connexion Internet si les serveurs que vous utilisez sont en panne ou trop lents. En ayant un serveur DNS sur votre réseau, vous gardez également le contrôle sur la stabilité.
- Entrées personnalisées : Avec un serveur DNS chez vous, vous pouvez créer vos propres entrées. Par exemple, si je veux rediriger kodi.me.local vers l’adresse IP de mon centre multimédia Raspberry Pi, c’est possible.
Il y a probablement d’autres avantages, et peut-être quelques inconvénients.
Mais si vous êtes un expert Linux, vous pourrez gérer cela facilement 🙂
Installer un serveur DNS sur un Raspberry Pi
Le choix du logiciel
La première chose à faire est de choisir le logiciel que vous utiliserez pour votre service DNS.
Je vous ai déjà donné mon choix, mais en gros, vous en avez deux :
- Bind : le service DNS le plus utilisé sous Linux, puissant mais compliqué à mettre en place
- DNSMasq : un serveur DNS léger et facile à utiliser
Pour ce projet, vous utiliserez probablement votre Raspberry Pi chez vous dans un petit réseau.
DNSMasq est la meilleure option, il ne prendra pas beaucoup de ressources et sera facile à configurer.
Installez Raspberry Pi OS
J’ai déjà écrit un article entier sur la façon d’installer Raspberry Pi OS sur un Raspberry Pi, je vous laisse le consulter si besoin plutôt que de me répéter. Cliquez sur le lien pour lire le tutoriel étape par étape.
La version Lite sera parfaite pour cela.
Activez le réseau, le service SSH et passez au paragraphe suivant.
Installez DNSMasq sur votre Raspberry Pi
Le processus d’installation de DNSMasq est simple :
- Connectez-vous à votre Raspberry Pi via SSH (ou tapez directement les commandes ci-dessous dans le terminal du Raspberry Pi)
- Mettez à jour votre système
sudo apt update
sudo apt upgrade - Installez le paquet DNSMasq
sudo apt install dnsmasq
Ça y est, DNSMasq est maintenant installé !
Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !
Configuration DNSMasq
Le fichier de configuration DNSMasq est /etc/dnsmasq.conf.
Je vais vous montrer une configuration basique, mais chaque paramètre est bien commenté, vous permettant de trouver facilement celui que vous cherchez.
- Ouvrez le fichier de configuration avec nano
sudo nano /etc/dnsmasq.conf
- Dé-commentez ces trois lignes :
domain-needed bogus-priv expand-hosts
La ligne « domain-needed » permet d’envoyer des requêtes DNS au serveur DNS principal uniquement pour des noms de domaine.
« bogus-priv » évite d’envoyer des requêtes DNS au serveur DNS principal s’il s’agit d’une adresse IP locale.
Et enfin, « expand-hosts » sera utile plus tard pour ajouter un faux nom de domaine à nos appareils locaux. - Ajoutez ensuite cette ligne :
domain=me.local
Pour ce nom, vous pouvez définir tout ce que vous voulez
Dans mon cas, me.local sera mon nom de domaine local
Si j’ai un hôte nommé « kodi », je pourrais y accéder avec « kodi.me.local »
Mais on verra ça plus tard - Enregistrez et quittez (CTRL+O, CTRL+X)
- Redémarrez DNSMasq pour appliquer les modifications :
sudo service dnsmasq restart
Ajouter un hôte local
Pour créer un hôte local (comme kodi.me.local), vous devez l’ajouter dans le fichier hosts
- Ouvrez le fichier hosts avec nano
sudo nano/etc/hosts
- Ajoutez une ligne comme celle-ci à la fin
192.168.1.17 kodi
Cette ligne permet au Raspberry Pi d’utiliser « kodi » comme nom pour atteindre 192.168.1.17.
Après l’enregistrement, vous pouvez envoyer un ping à kodi à partir du Raspberry Pi. - Enregistrez et quittez (CTRL+O, CTRL+X)
Le Raspberry Pi peut désormais utiliser kodi comme nom d’hôte
Et tout ordinateur utilisant le Raspberry Pi comme serveur DNS peut utiliser kodi.me.local
Tests
Avant de modifier la configuration de l’ordinateur, nous devons nous assurer que le serveur DNS fonctionne correctement.
Vous pouvez utiliser nslookup pour effectuer des requêtes DNS.
C’est un outil gratuit disponible sur n’importe quel système d’exploitation.
- Ouvez un terminal sur votre ordinateur (interface en lignes de commande sous Windows)
- Lancez nslookup:
nslookup
- Par défaut, nslookup utilise votre serveur DNS actuel.
Vous devez le changer comme ceci :server A.B.C.D
Remplacez A.B.C.D par l’adresse IP du Raspberry Pi.
Si vous ne la connaissez pas, vous pouvez lire mon article sur la façon d’obtenir l’adresse IP du Raspberry Pi - Entrez ensuite n’importe quel nom de domaine pour vérifier que le Raspberry Pi résout correctement les noms :
raspberrytips.fr
- Il vous montrera une adresse IP correspondant au nom de domaine.
Votre serveur DNS fonctionne.
Vous pouvez également essayer de résoudre un hôte local (ex : kodi.local.me) pour vérifier que cela fonctionne aussi.
Configuration d’un ordinateur
La dernière étape consiste à configurer votre ordinateur pour utiliser le Raspberry Pi comme serveur DNS.
Pour ce faire, vous avez deux options.
Configuration manuelle
La première méthode consiste à configurer manuellement le serveur DNS sur votre ordinateur.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
En fonction de votre système d’exploitation, vous devez accéder à vos paramètres réseau et définir le serveur DNS principal sur l’adresse IP du Raspberry Pi.
Sous Windows, c’est dans le Panneau de configuration> Réseau et Internet> Centre Réseau et partage> Modifier les paramètres de l’adaptateur.
Cliquez avec le bouton droit sur l’interface réseau que vous utilisez et allez dans Propriétés.
Double-cliquez sur Protocole Internet Version 4 et définissez le serveur DNS préféré avec l’adresse IP du Raspberry Pi.
Sur Ubuntu/Debian, vous pouvez le modifier directement dans le fichier /etc/resolv.conf ou dans le gestionnaire réseau si vous avez un bureau graphique.
Configuration DHCP
L’autre option consiste à changer le serveur DNS de votre serveur DHCP.
Dans la configuration DHCP, vous pouvez choisir la plage IP et le serveur DNS envoyés aux clients.
Si vous y avez accès, c’est probablement la meilleure option.
Cela fonctionnera directement avec tous vos appareils, y compris les smartphones.
Si vous choisissez cette option, n’oubliez pas de définir manuellement un serveur DNS externe sur votre Raspberry Pi.
Questions liées
Comment activer la mise en cache des demandes sur DNSMasq? DNSMasq utilise la mise en cache par défaut. Si nécessaire, vous pouvez augmenter la valeur de la taille du cache dans le fichier /etc/dnsmasq.conf. Pour un petit réseau, une valeur de 3000 devrait suffir.
Comment mesurer la vitesse réelle d’Internet avec DNSMasq? La meilleure option consiste à utiliser la commande dig à partir de votre ordinateur. Avec une requête dig (dig google.com), vous obtenez l’adresse IP correspondante, mais aussi le temps écoulé pour traiter la requête. En utilisant un serveur DNS d’Internet, la durée de la requête sera d’au moins 30 ms en moyenne. Avec un serveur local, la première requête prendra 30 ms, mais toutes les suivantes, moins 5 ms.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Vous voulez discuter avec d'autres passionnés de Raspberry Pi ? Rejoignez la communauté, partagez vos projets en cours et posez vos questions sur le forum (en anglais).
Conclusion
Ça y est, vous savez maintenant comment installer un serveur DNS sur Raspberry Pi, et comment le configurer.
Le but de ce tutoriel était de vous montrer les bases d’un service DNS
Si vous souhaitez aller plus loin, je vous recommande de lire le site officiel pour plus de détails et d’options.
Je n’ai pas parlé de la fonction DHCP ici, car ce n’était pas le but de cet article, mais vous pouvez également utiliser DNSMasq comme serveur DHCP.
Pour utiliser votre Raspberry Pi en tant que serveur réseau tout-en-un, vous pouvez également consulter mon article sur la façon de l’utiliser comme point d’accès sans fil, routeur et pare-feu
La combinaison des deux tutoriels devrait être parfaite 🙂
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Ressources supplémentaires pour votre Raspberry Pi
Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant
Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici
Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets où je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant
Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources