Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


unbound sur Raspberry Pi : un serveur DNS sur votre réseau local

Pré-requis

Disposer :

  • d'un réseau local :-).
  • et d'une connexion à Internet active pour les tests.

Première étape

Placez-vous sur le RPI (connectez-vous au RPI via ssh).

Installez les paquets unbound et dnsutils en ligne de commande :

  • sudo apt-get install -y unbound dnsutils
    sudo systemctl enable unbound

Le paquet dnsutils comporte l'utilitaire dig avec lequel nous ferons les tests.

Autres étapes

Configuration

Pour ne pas toucher au fichier /etc/unbound/unbound.conf, les fichiers de configuration sont placés dans le répertoire /etc/unbound/unbound.d.

Nous allons donc créer le fichier /etc/unbound/unbound.d/local.conf.

/etc/unbound/unbound.d/local.conf
server:
#   Adresse du serveur DNS Unbound : toutes les interfaces
    interface: 0.0.0.0

#   autoriser le réseau local
    access-control: 192.168.0.0/16 allow

    local-zone: "monlan." static
    local-data: "box.monlan. IN A 192.168.0.254"
    local-data-ptr: "192.168.0.254 box.monlan"
interface: 0.0.0.0
Accessible sur toutes les interfaces
access-control: 192.168.0.0/16 allow
Accessible depuis le réseau local
local-zone: / local-data:
Domaines et sous-domaines

Nous avons créé sur le réseau local un nouveau pseudo-domaine monlan, et la box est accessible par box.monlan.

Pour vérifier, utilisons l'utilitaire dig :

  • dig freebox.monlan

    retourne l'adresse IP 192.168.0.254

Pou vérifier l'adresse IP :

  • dig -x 192.168.0.254

    retourne freebox.monlan

Un autre exemple de config : https://blog.zenithar.org/post/2015/08/11/installer-resolveur-dns-raspberry-pi/

Création d'un pseudo-domaine statique

Pour créer le domaine mondomaine, ajouter la ligne :

    local-zone: "mondomaine." static

et les lignes précisant les machines correspondantes :

    local-data: "box.mondomaine. IN A 192.168.0.254"
    local-data-ptr: "192.168.0.254 box.mondomaine"
    local-data: "machine1.mondomaine. IN A 192.168.0.1"
    local-data-ptr: "192.168.0.1 machine1.mondomaine"
    local-data: "machine2.mondomaine. IN A 192.168.0.2"
    local-data-ptr: "192.168.0.2 machine2.mondomaine"
    etc.

Création d'un pseudo-domaine dynamique

Ici, nous créons un domaine dyndom et tous ses sous-domaines *.dyndom : site1.dyndom, site2.dyndom, etc.

Ajoutez les lignes :

    local-zone: "dyndom." redirect
    local-data: "dyndom. A 192.168.0.1"
    local-data-ptr: "192.168.0.1 dyndom."

Dans cet exemple, le domaine dyndom et tous ses sous-domaines renvoient sur le serveur d'adresse IP 192.168.0.1.

local-zone: <zone> <type>
Configure une zone locale.
Le type détermine la réponse à donner s'il n'y a pas de local-data correspondant. Les types utiles sont :
static
S'il y a correspondance avec des données locales, une réponse est donnée.
redirect
réponse à partir des local-data pour la zone. Cela répond à des requêtes pour la zone, et tous les sous-domaines de la zone ayant des local-data pour la zone.
Par défaut, les zones sont de classe IN
local-data: “<resource record string>”
Fournit une correspondance exacte sauf si la zone est configurée en redirect.
local-data-ptr: “IPaddr name”
Correspondance inverse IP → nom

Utilisation du serveur DNS depuis une machine du réseau

Placez-vous sur la machine à configurer. Nous supposons que l'adresse IP de notre RPI est 192.168.0.31.

Premmier cas : sous Linux

Cliquez en haut sur l'icône du réseau :

Le menu s'ouvre :

Choisissez Modification des connexions :

  1. Sélectionnez la connexion à régler
  2. Cliquez sur le bouton Modifier

  1. Onglet Paramètres IPv4
  2. Méthode : Adresses automatiques uniquement (DHCP)
  3. Serveurs DNS : 192.168.0.31 (l'adresse de notre RPI)
  4. et bouton Enregistrer

Redémarrez votre réseau :

  1. Cliquez en haut sur l'icône du réseau :
  2. Déconnectez-vous :
  3. et reconnectez-vous :

Sous Windows

Si vous êtes sous Windows, allez dans Panneau de configuration / Configuration Réseau / Réseaux TCP/IP et paramétrez les résolveurs DNS primaire et secondaire.

Test du serveur DNS depuis une machine du réseau

Placez-vous sur la machine à configurer.

Installez le paquet dnsutils, ou en ligne de commande :

  • sudo apt-get install -y dnsutils

Nous supposons que l'adresse IP de notre RPI est 192.168.0.31.

Pour tester la résolution de nom, lancez :

  • dig machine1.mondomaine

qui retourne l'adresse IP 192.168.0.1 et montre que le serveur DNS utilisé est bien 192.168.0.31

Pour tester la résolution d'IP, lancez :

  • dig -x 192.168.0.1

qui retourne le nom machine1.mondomaine et montre que le serveur DNS utilisé est bien 192.168.0.31

Test complet avec namebench

Installez le(s) paquet(s) namebench, ou en ligne de commande :

  • sudo apt-get install -y namebench

Lancez-le :

  • namebench

Renseignez les DNS à tester et voyez le résultat.

Conclusion

Problèmes connus

Voir aussi