{"id":2765,"date":"2016-02-27T08:01:23","date_gmt":"2016-02-27T06:01:23","guid":{"rendered":"https:\/\/www.azurs.net\/carnet\/?p=2765"},"modified":"2025-10-22T11:46:23","modified_gmt":"2025-10-22T09:46:23","slug":"serveur-dns-local-sur-raspberry-pi-sous-arch-linux-arm","status":"publish","type":"post","link":"https:\/\/www.azurs.net\/carnet\/2016\/02\/serveur-dns-local-sur-raspberry-pi-sous-arch-linux-arm\/","title":{"rendered":"Un serveur DNS local sur Raspberry Pi"},"content":{"rendered":"<p>Il est possible de transformer tr\u00e8s simplement une carte Raspberry Pi en serveur DNS local en installant et en configurant unbound sur cette machine.<\/p>\n<p>Avec la configuration ad\u00e9quate, la carte Raspberry Pi peut servir de serveur DNS aux machines install\u00e9es dans le r\u00e9seau local, et remplacer par exemple le serveur DNS par d\u00e9faut d&rsquo;un fournisseur d&rsquo;acc\u00e8s \u00e0 l&rsquo;internet. La r\u00e9solution d&rsquo;un nom par un h\u00f4te peut dans certains cas \u00eatre plus rapide en utilisant ce serveur DNS local et fluidifier la navigation sur le Web. L&rsquo;installation d&rsquo;un serveur DNS local permet aussi de <a href=\"https:\/\/www.azurs.net\/carnet\/2016\/04\/sus-a-la-publicite-avec-unbound\/\">bloquer certaines publicit\u00e9s<\/a> intrusives ou d&rsquo;affecter facilement un nom de domaine \u00e0 une ou plusieurs machines du r\u00e9seau local, sans avoir \u00e0 intervenir sur chacune des machines du r\u00e9seau. Elle permet enfin de contourner le blocage de certains sites Web mis en place par certains fournisseurs pour de bonnes ou de mauvaises raisons.<br \/>\n<figure id=\"attachment_2774\" aria-describedby=\"caption-attachment-2774\" style=\"width: 225px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/bateau-a-vapeur-225x300.jpeg\" alt=\"Gravure color\u00e9e repr\u00e9sentant un bateau \u00e0 vapeur.\" width=\"225\" height=\"300\" class=\"size-medium wp-image-2774\" srcset=\"https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/bateau-a-vapeur-225x300.jpeg 225w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/bateau-a-vapeur-768x1023.jpeg 768w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/bateau-a-vapeur-563x750.jpeg 563w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/bateau-a-vapeur-624x831.jpeg 624w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/bateau-a-vapeur.jpeg 961w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><figcaption id=\"caption-attachment-2774\" class=\"wp-caption-text\">Avant l&rsquo;invention du serveur DNS, on raconte que certains tent\u00e8rent d&rsquo;utiliser des machines plus volumineuses et moins rapides pour naviguer de serveur en serveur sur l&rsquo;oc\u00e9an du Web.<\/figcaption><\/figure><br \/>\nPour r\u00e9f\u00e9rence, voici les \u00e9tapes suivies pour installer et configurer un serveur local sur une carte Raspberry Pi tournant sous Arch Linux ARM en utilisant unbound et les modifications compl\u00e9mentaires de la configuration du r\u00e9seau local pour que les machines connect\u00e9es au r\u00e9seau utilisent le serveur DNS local plut\u00f4t qu&rsquo;un autre serveur.<!--more--><\/p>\n<h2>Pr\u00e9requis<\/h2>\n<p>La proc\u00e9dure d\u00e9crite ici a \u00e9t\u00e9 test\u00e9e sur une carte Raspberry Pi 1 mod\u00e8le B tournant sous Arch Linux ARM, mais elle devrait \u00eatre semblable sur une carte Raspberry Pi 2 mod\u00e8le B ou sous toute autre machine semblable tournant sous Arch Linux ARM. La carte est connect\u00e9e \u00e0 un routeur Wifi lui-m\u00eame connect\u00e9 \u00e0 la Box ADSL d&rsquo;un fournisseur d&rsquo;acc\u00e8s. Les autres machines du r\u00e9seau sont \u00e9galement connect\u00e9es au routeur Wifi et acc\u00e8dent \u00e0 l&rsquo;internet via ce routeur. Le routeur en question permet de choisir les serveur DNS primaire et secondaire qu&rsquo;il utilise, \u00e0 la diff\u00e9rence de la Box ADSL du FAI qui ne permet pas de modifier les serveurs DNS qu&rsquo;elle interroge pour r\u00e9soudre les noms de domaine.<\/p>\n<p>L&rsquo;installation est effectu\u00e9e en ligne de commande en se connectant \u00e0 distance \u00e0 la carte Raspberry Pi via SSH en tant qu&rsquo;administrateur.<\/p>\n<h2>Installation d&rsquo;unbound sur la carte Raspberry Pi<\/h2>\n<h3>Mise \u00e0 jour des paquets install\u00e9s et de la distribution Arch Linux ARM<\/h3>\n<p>Avant d&rsquo;installer unbound et ses d\u00e9pendances, on met \u00e0 jour les paquets de la distribution Arch Linux ARM install\u00e9e sur la carte Raspberry Pi :<\/p>\n<p><code># pacman -Syu<\/code><\/p>\n<h3>Installation d&rsquo;unbound<\/h3>\n<p>On installe unbound et ses d\u00e9pendances obligatoires, ainsi qu&rsquo;expat, d\u00e9pendance optionnelle :<\/p>\n<p><code># pacman -S unbound expat<\/code><\/p>\n<h3>Configuration d&rsquo;unbound<\/h3>\n<p>Unbound r\u00e9sente le double avantage de ne pas n\u00e9cessiter de configuration complexe et pouss\u00e9e pour fonctionner de mani\u00e8re tr\u00e8s satisfaisante mais de permettre si n\u00e9cessaire d&rsquo;ajuster au mieux la configuration pour am\u00e9liorer les performances. Le fichier de configuration se trouve \u00e0 :<br \/>\n<code>\/etc\/unbound\/unbound.conf<\/code><br \/>\nIl y a, dans le m\u00eame r\u00e9pertoire, un mod\u00e8le de configuration abondamment comment\u00e9 pour aller plus loin. Pour l&rsquo;adapter \u00e0 l&rsquo;oranisation du r\u00e9seau local et \u00e0 ce que l&rsquo;on attend du serveur DNS, le plus simple est probablement de renommer unbound.conf pour le pr\u00e9server, et de copier le fichier unbound.conf.example vers unbound.conf, puis de d\u00e9commenter et de modifier les param\u00e8tres essentiels, avant de v\u00e9rifier que tout fonctionne.<\/p>\n<p>Il y a pour l&rsquo;essentiel trois param\u00e8tres \u00e0 v\u00e9rifier dans le fichier de configuration de base :<\/p>\n<h4>\u00ab&nbsp;<strong>interface: <\/strong>&nbsp;\u00bb<\/h4>\n<p>L&rsquo;adresse IP du serveur DNS unbound correspondant \u00e0 l&rsquo;interface sur laquelle unbound re\u00e7oit les requ\u00eates de r\u00e9solution de noms de domaine. Par d\u00e9faut, unbound ne r\u00e9pond quelorsqu&rsquo;il est interrog\u00e9 sur localhost. Par exemple, si l&rsquo;interface sur laquelle le serveur \u00e9coute les requ\u00eates de r\u00e9solution de nom est \u00e0 l&rsquo;adresse 192.168.0.1, il faut ajouter une ligne dans le fichier de configuration avec cette adresse :<br \/>\n<code>interface: 192.168.0.1<\/code><br \/>\nPour qu&rsquo;unbound \u00e9coute sur toutes les interfaces, il suffit d&rsquo;indiquer l&rsquo;adresse 0.0.0.0 :<br \/>\n<code>interface: 0.0.0.0<\/code><\/p>\n<h4>\u00ab&nbsp;<strong>port: <\/strong>&nbsp;\u00bb<\/h4>\n<p>Le port sur lequel le serveur unbound r\u00e9pond aux requ\u00eates 53 par d\u00e9faut &#8211; il faut v\u00e9rifier que ce port n&rsquo;est pas utilis\u00e9 par une autre application sur la machine h\u00e9bergeant le serveur :<br \/>\n<code>port: 53<\/code><\/p>\n<h4>\u00ab&nbsp;<strong>access-control: <\/strong>&nbsp;\u00bb<\/h4>\n<p>Il faut sp\u00e9cifier la\/les adresses IP des machines autoris\u00e9es \u00e0 interroger le serveur :<br \/>\nPar exemple, pour autoriser la plage d&rsquo;adresses IP de 192.168.0.0 \u00e0 192.168.0.254<br \/>\n<code>access-control: 192.168.0.0\/24 allow<\/code><br \/>\nPour une seule adresse IP :<br \/>\n<code>access-control: 192.168.1.2 allow<\/code><\/p>\n<h2>Configuration des machines du r\u00e9seau local pour qu&rsquo;elles utilisent le serveur DNS local pour la r\u00e9solution de noms de domaines<\/h2>\n<p>Pour que les machines du r\u00e9seau local utilisent le serveur DNS unbound, il faut indiquer en tant que serveur DNS l&rsquo;adresse IP de la machine sur laquelle est install\u00e9 le serveur (dans notre cas, il s&rsquo;agit de la carte Raspberry Pi).<\/p>\n<p>Si l&rsquo;adressage sur le r\u00e9seau local est dynamique via l&rsquo;interrogation d&rsquo;un serveur DHCP, c&rsquo;est le serveur DHCP qui transmet aux clients l&rsquo;adresse du serveur DNS \u00e0 utiliser. C&rsquo;est alors encore plus simple, car il suffit de configurer le serveur DHCP en lui fournissant l&rsquo;adresse de la machine h\u00e9bergeant le serveur DNS local qu&rsquo;il transmettra \u00e0 toutes les machines qui sollicitent l&rsquo;attribution d&rsquo;une adresse IP.<\/p>\n<p>Le serveur DHCP est g\u00e9n\u00e9ralement h\u00e9berg\u00e9 sur un routeur, ou sur la box du fournisseur d&rsquo;acc\u00e8s qui est en m\u00eame temps le modem.<\/p>\n<h2>D\u00e9finition de noms de domaine pour certaines machines connect\u00e9es au r\u00e9seau local<\/h2>\n<p>Pour faire pointer machine1.local vers 192.168.0.100, ajouter les lignes suivantes :<\/p>\n<p><code>local-zone: \"local.\" static<br \/>\nlocal-data: \"machine1.local.\tIN A 192.168.0.100\"<br \/>\nlocal-data-ptr: \"192.168.0.100 machine1.local\"<\/code><\/p>\n<figure id=\"attachment_2781\" aria-describedby=\"caption-attachment-2781\" style=\"width: 276px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/clovis-vase-de-soissons-276x300.jpg\" alt=\"Clovis et le DNS de Soissons\" width=\"276\" height=\"300\" class=\"size-medium wp-image-2781\" srcset=\"https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/clovis-vase-de-soissons-276x300.jpg 276w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/clovis-vase-de-soissons-768x835.jpg 768w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/clovis-vase-de-soissons-690x750.jpg 690w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/clovis-vase-de-soissons-624x678.jpg 624w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2016\/02\/clovis-vase-de-soissons.jpg 1138w\" sizes=\"auto, (max-width: 276px) 100vw, 276px\" \/><figcaption id=\"caption-attachment-2781\" class=\"wp-caption-text\">Clovis Ier, roi des francs comptait bien rendre \u00e0 l&rsquo;\u00e9v\u00eaque R\u00e9mi le serveur DNS que ses soldats avaient emprunt\u00e9 en pillant Soissons, mais un soldat plus cupide et aussi impie que ses camarades ne l&rsquo;entend pas de cette oreille et brise sans pr\u00e9venir l&rsquo;objet que ch\u00e9rit tant le pontife, pour faire savoir au preux souverain qu&rsquo;il entend bien recevoir la part du butin qui lui revient, comme c&rsquo;est la coutume chez les francs. <em>C&rsquo;est lui qui l&rsquo;a cass\u00e9, c&rsquo;est lui qu&rsquo;il est puni<\/em>, dira plus tard Clovis (qui ne ma\u00eetrise pas plus le latin que le fran\u00e7ais, qui au passage n&rsquo;existe pas encore) en rendant \u00e0 R\u00e9mi d\u00e9pit\u00e9 la chose d\u00e9sormais aussi caboss\u00e9e que le cr\u00e2ne du soudard qu&rsquo;il vient d&rsquo;occire d&rsquo;un seul coup bien plac\u00e9 de royale francisque. Il ne r\u00e9sout plus rien du tout, se lamentera l&rsquo;\u00e9v\u00eaque effondr\u00e9 en contemplant le vase sacr\u00e9 d\u00e9sormais hors d&rsquo;usage. Tant pis, je t&rsquo;ach\u00e8terai un Raspberry Pi, mon petit, lui dit Clovis, qui s&rsquo;enfuit.<\/figcaption><\/figure>\n<h2>Sources et r\u00e9f\u00e9rences<\/h2>\n<p>Sur la notion de DNS :<br \/>\n&#8211; Article <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Domain_Name_System\">Domain Name System<\/a> sur Wikip\u00e9dia.<br \/>\nSur l&rsquo;installation d&rsquo;unbound :<br \/>\n&#8211; Principes et introduction \u00e0 l&rsquo;utilisation d&rsquo;unbound : <a href=\"http:\/\/korben.info\/installer-serveur-dns-unbound.html\">Comment installer son serveur DNS en local quand on n&rsquo;est pas un gros barbu (Korben)<\/a>, <a href=\"https:\/\/doc.ubuntu-fr.org\/unbound\">page consacr\u00e9e \u00e0 unbound dans la documentation de la distribution Ubuntu<\/a>, \u00ab&nbsp;<a href=\"http:\/\/homeserver-diy.net\/wiki\/index.php?title=Installer_et_configurer_son_serveur_DNS_connect%C3%A9_aux_serveurs_root_avec_Unbound\">Installer et configurer son serveur DNS connect\u00e9 aux serveurs root avec Unbound<\/a>&nbsp;\u00bb.<br \/>\n&#8211; <a href=\"https:\/\/wiki.archlinux.org\/index.php\/Unbound\">Informations sp\u00e9cifiques sur l&rsquo;installation d&rsquo;unbound sous Arch Linux<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Explique comment mettre en place un serveur DNS local sur une carte Raspberry Pi en installant unbound sous Arch Linux ARM.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[395],"tags":[249,457,206,246,305,304],"class_list":["post-2765","post","type-post","status-publish","format-standard","hentry","category-bidouillages","tag-archlinux","tag-dns","tag-linux","tag-raspberry-pi-2","tag-reseau","tag-serveur"],"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/2765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/comments?post=2765"}],"version-history":[{"count":24,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/2765\/revisions"}],"predecessor-version":[{"id":3569,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/2765\/revisions\/3569"}],"wp:attachment":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/media?parent=2765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/categories?post=2765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/tags?post=2765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}