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… :-)

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

  1. Placez-vous sur le Raspberry Pi (connectez-vous au Raspberry Pi via ssh).
  2. 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.

  1. Créez avec les droits d'administration 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.
  2. Pour vérifier, utilisons l'utilitaire dig :

    ...@...:~ $ dig freebox.monlan

    retourne l'adresse IP 192.168.0.254

  3. Pour vérifier l'adresse IP :

    ...@...:~ $ dig -x 192.168.0.254

    retourne freebox.monlan

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 Raspberry Pi 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 Raspberry Pi)
  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 Raspberry Pi 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