Comment exécuter votre propre serveur DNS sur votre réseau local - CloudSavvy IT
Agence web » Actualités du digital » Comment exécuter votre propre serveur DNS sur votre réseau local

Comment exécuter votre propre serveur DNS sur votre réseau local

L’exécution de votre propre serveur DNS est un excellent moyen d’accélérer la réactivité de votre réseau, de réduire votre dépendance à l’infrastructure publique et de bénéficier de fonctionnalités supplémentaires telles que le routage de nom d’hôte. Voici comment configurer un serveur DNS sur une machine Linux à l’aide de Dnsmasq.

Qu’est-ce que le DNS ?

DNS est le système qui traduit un nom de domaine comme example.com à l’adresse IP numérique de son serveur. Cela pourrait ressembler 127.0.0.1. Chaque fois que vous effectuez une demande de réseau en utilisant un nom de domaine, votre système effectue une recherche DNS pour déterminer l’adresse du serveur qu’il doit contacter.

Cela ajoute une surcharge à chaque demande que vous faites. Bien que votre appareil mette en cache les réponses DNS, les visites vers de nouveaux domaines entraîneront un aller-retour DNS avant le début de la demande réelle. Cela se produit au niveau de la pile réseau du système d’exploitation, invisible pour vous en tant qu’utilisateur.

Les FAI exécutent généralement des serveurs DNS. Vous comptez probablement sur le serveur de votre FAI si vous utilisez les paramètres par défaut sur votre routeur et vos appareils. D’autres serveurs DNS publics sont disponibles auprès de fournisseurs tels que Cloudflare et Google.

Pourquoi exécuter votre propre DNS ?

L’exécution de votre propre serveur DNS vous donne plus de contrôle sur votre réseau. Une motivation commune est de pouvoir configurer des mappages de domaine au niveau du réseau, tels que web-server à 192.168.0.101. La configuration de votre routeur pour utiliser votre DNS permettrait à n’importe lequel de vos appareils connectés d’accéder 192.168.0.101 passant par http://web-server.

Avoir votre propre serveur DNS vous permet de centraliser les paramètres dans un seul emplacement au lieu de les appliquer individuellement dans /etc/hosts sur chaque appareil. Ils s’appliqueront à tout ce que vous connectez à votre réseau, y compris le matériel embarqué qui ne fournit aucun autre moyen de personnaliser sa pile de routage.

Un serveur DNS interne peut également améliorer les performances et fournir une couche supplémentaire de résilience. Les pannes DNS à grande échelle ne sont pas inconnues ; l’utilisation d’un serveur personnalisé avec un cache de longue durée pour les services critiques avec lesquels vous interagissez peut vous aider à éviter les temps d’arrêt chez votre fournisseur en amont sélectionné.

DNS avec Dnsmasq

Dnsmasq est un serveur DNS léger qui est inclus avec la plupart des distributions Linux. Il est également d’une simplicité rafraîchissante à configurer.

Avant de commencer, il vaut la peine de réfléchir aux fonctionnalités que vous devez fournir à votre serveur DNS. Dans ce guide, nous examinerons la configuration de Dnsmasq avec la mise en cache locale, certaines routes de domaine personnalisées et Google 8.8.8.8 comme notre fournisseur DNS en amont.

Le flux de routage ressemblera à ceci :

  • Le routeur réseau reçoit une requête de l’un de vos appareils connectés. Le routeur sera configuré pour utiliser l’hôte Dnsmasq comme serveur DNS.
  • Dnsmasq vérifiera s’il a une route définie pour le nom de domaine, telle que web-server à 192.168.0.101. Si la demande concernait http://web-server/example-page, il enverra 192.168.0.101 retour au routeur.
  • Lorsque Dnsmasq n’a pas de route correspondante, il transmet la requête DNS à Google 8.8.8.8, permettant la résolution sur l’Internet public. Cela garantit que vous pouvez toujours accéder au Web plus large lorsque vous utilisez votre propre DNS.

Vous n’aurez pas besoin de modifier la configuration de vos appareils clients. Tout ce qui se trouve derrière votre routeur finira par effectuer des requêtes DNS via Dnsmasq. Cependant, il convient de noter que tous les systèmes d’exploitation de bureau et mobiles populaires prennent en charge la configuration d’un serveur DNS, vous pouvez donc configurer des appareils individuels pour utiliser Dnsmasq sans l’activer au niveau du routeur.

Commencer

Nous supposerons que vous avez déjà une machine Linux fonctionnelle prête à héberger Dnsmasq. Dnsmasq n’est pas particulièrement gourmand en ressources – si vous avez peu de périphériques clients, il fonctionnera facilement sur un Raspberry Pi.

Votre hôte doit avoir une adresse IP statique attribuée. A partir de là, l’IP 192.168.0.1 fait référence au serveur Dnsmasq.

Assurez-vous que Dnsmasq est installé :

# Assuming a Debian system
apt update
apt install dnsmasq

Le fichier de configuration de Dnsmasq se trouve généralement à /etc/dnsmasq.conf. Celui-ci est pré-rempli avec les paramètres initiaux. Certaines modifications doivent être apportées pour que Dnsmasq fonctionne efficacement dans un scénario de réseau local. Courir sudo nano /etc/dnsmasq.conf pour ouvrir le fichier, puis utilisez le raccourci clavier Ctrl+W pour rechercher et décommenter les lignes suivantes :

#domain-needed
#bogus-priv

Retirer le # caractère à partir du début de chaque ligne. Voici ce que ces paramètres permettent :

  • domain-needed – Cela empêche Dnsmasq de transférer les noms locaux sans partie de domaine vers le serveur DNS en amont. Dans notre installation, cela signifie example.com seront éligibles pour une résolution via Google mais example ou web-server Ne fera pas. Il réserve des noms sans point pour votre réseau local.
  • bogus-priv – Empêche le transfert des requêtes de recherche inversée DNS vers le serveur DNS en amont. Cela signifie des IP internes comme 192.168.0.101 ne sera jamais exposé à Google. Ne pas activer cela pourrait involontairement divulguer l’architecture de votre réseau interne à votre fournisseur en amont.

Pour définir votre serveur DNS en amont, ajoutez une nouvelle ligne à votre fichier de configuration :

server=8.8.8.8
server=4.4.4.4

Cela indique à Dnsmasq de transmettre les requêtes non résolues à 8.8.8.8. Si ce serveur n’est pas disponible, 4.4.4.4 sera utilisé à la place. Ces adresses sont les résolveurs principaux et secondaires du service DNS de Google.

Ajustez ensuite la taille du cache. La valeur par défaut est une valeur relativement faible de 150 requêtes mises en cache. Augmenter cela permettra à Dnsmasq de servir plus de recherches à partir du cache, réduisant ainsi la latence du réseau. Trouvez le cache-size ligne, décommentez-la et modifiez sa valeur :

cache-size=1000

Enregistrez et fermez le fichier maintenant.

Mappage des noms d’hôtes aux IP

Il existe différentes manières de mapper les noms d’hôtes à leurs adresses IP. Le plus simple est d’ajouter des entrées à votre serveur existant /etc/hosts déposer. Dnsmasq charge automatiquement les règles de ce fichier dans le cadre de sa configuration par défaut.

Ouvert /etc/hosts et ajoutez vos itinéraires au bas du fichier. L’adresse IP vient en premier, suivie du nom à attribuer :

192.168.0.101 web-server
192.168.0.105 gateway.lan

Ces lignes signifient toute demande de http://web-server sera dirigé vers 192.168.0.101 tandis que http://gateway.lan finira à 192.168.0.5. Enregistrez et fermez le fichier lorsque vous avez terminé de mapper vos appareils.

Tester votre serveur

Redémarrez Dnsmasq pour appliquer toutes vos modifications :

sudo service dnsmasq restart

Vérifiez que le serveur fonctionne correctement :

sudo service dnsmasq status

Tu devrais voir active (running) affiché en vert. Si vous ne le faites pas, vérifiez les lignes de journal au bas des informations d’état pour déterminer ce qui ne va pas.

Vous êtes maintenant prêt à tester votre serveur. Vous pouvez effectuer des tentatives de recherche DNS manuelles avec le dig outil. Vous devrez peut-être installer le dnsutils paquet d’abord.

dig google.com @localhost
dig gateway.lan @localhost

Ces deux commandes doivent afficher une adresse IP dans le ANSWER SECTION. Dans le cas d gateway.lan, le résultat doit être 192.168.0.5 selon la règle de routage définie dans /etc/hosts. Les @localhost une partie des commandes indique dig pour interroger votre serveur DNS local.

Configuration de votre réseau

La dernière étape consiste à configurer votre routeur réseau pour effectuer des recherches DNS via votre serveur Dnsmasq. Les étapes pour cela varient en fonction de l’équipement de routage que vous utilisez.

Une fois que vous avez trouvé la bonne page de paramètres, définissez l’adresse IP de votre serveur (192.168.0.1 dans ce guide) en tant que serveur DNS principal du routeur. C’est une bonne idée de configurer un fournisseur DNS public, tel que celui de Google 8.8.8.8, en tant que serveur secondaire. Cela garantit que vous aurez toujours accès à Internet si votre serveur DNS tombe en panne et se déconnecte.

Désormais, tous les appareils connectés à votre routeur effectueront des requêtes DNS via votre instance Dnsmasq. Ils seront en mesure d’atteindre vos appareils par leurs noms attribués, tels que web-server et gateway.lan, et bénéficiez de la mise en cache DNS au niveau du réseau.

Conclusion

Le DNS est un sujet complexe, mais Dnsmasq facilite la mise en service d’un serveur de base. Il existe de nombreux autres paramètres que vous pouvez explorer une fois que les fonctionnalités de base fonctionnent. Ceux-ci vous permettent de filtrer les requêtes, de gérer les relais et les proxys, d’exécuter des scripts lorsque des événements se produisent et de configurer d’autres types d’enregistrement DNS tels que les résultats MX pour les serveurs de messagerie.

Dnsmasq n’a généralement pas besoin de beaucoup d’intervention manuelle une fois qu’il est en ligne. Vous pouvez surveiller les journaux en utilisant service dnsmasq status ou systemctl status dnsmasq. Vous êtes maintenant prêt à profiter de votre serveur DNS auto-hébergé, en maximisant les performances et en vous permettant d’utiliser des noms de domaine internes pour atteindre les périphériques du réseau local.

★★★★★