Unbound : résolution/délégation noms locaux non qualifiés ?

Salut,

J’utilise Unbound comme serveur DNS récursif.
À côté de ça, le serveur DHCP de ma box renseigne automatiquement les noms locaux récupérés via DHCP dans son propre serveur DNS, qui lui n’est pas configurable (il sert forcément de forwarder pour les DNS merdiques de mon FAI).

Le problème est multiple :

  1. il est hors de question que j’utilise les DNS de mon FAI
  2. j’ai besoin de l’intégration DHCP/DNS sur la box car c’est elle qui gère le WLAN, je ne peux pas utiliser un autre serveur DHCP car je veux pouvoir résoudre le nom des machines connectées en Wifi
  3. j’en ai plus que marre de mettre à jour mes fichiers hosts sur 3 machines physiques et un nombre incalculable de VMs

Je voudrais donc que lorsque Unbound voit passer une requête locale (nom non qualifié) et uniquement une requête locale, il la délègue au DNS de ma box pour que la résolution puisse se faire grâce à l’intégration avec le DHCP.
Problème : je n’arrive pas à configurer Unbound dans ce sens.

J’ai essayé avec stub-zone et forward-zone (la distinction n’est pas très claire pour moi, mais passons) : si je mets une zone vide (ce qui me semblait logique pour les noms non qualifiés) Unbound ne démarre même pas, et si j’utilise la zone racine (".") c’est évidemment toutes les requêtes qui sont forwardées sans distinction. :013

Une idée ? Sachant que je voudrais éviter d’utiliser un suffixe LAN (.local / .lan / …) car ça m’obligerait à reconfigurer trop de services, et j’ai aussi peur que ça pose problème sur mon netbook (nomade, forcément) lorsqu’il est sur un autre réseau…
(oui, je sais, ça fait beaucoup de contraintes tout ça :unamused:)

En fait je pense que la question peut se résumer à : comment indiquer une zone DNS qui ne correspond qu’aux noms non qualifiés et à rien d’autre ? (désolé de l’explication aussi longue pour en arriver seulement à ça :blush: mais je préfère exposer le problème dans le détail des fois que j’aurais raté un truc)

Je sais pas si tu trouvera ton bonheur là ( surtout la dernière partie ) : calomel.org/unbound_dns.html

Très très bon blog au demeurant :033

+1 pour calomel! Ça m’a bien aidé pour avoir un truc sécurisé avec unbound et nginx. Et en plus, c’est cool de parler de l’électrode au Hg2Cl2 :slightly_smiling:

Par contre, désolé syam, mais ce que tu demandes, ça me dépasse…

C’est précisément le document qui m’a servi de base pour monter mon Unbound. :mrgreen:
Malheureusement tous les exemples qu’ils donnent pour les noms locaux utilisent un suffixe DNS qui d’une part me forcerait à reconfigurer plein de services sur mes VM (argh :confused:), et d’autre part je sais pas comment ça se comportera si mon netbook va sur un autre réseau (je suis pas très pointu concernant les DNS hein, je connais juste les bases). C’est pour ces deux raisons que je préférerais rester avec des noms non qualifiés si c’est possible, au moins je comprends toutes les implications du truc (et le fait que ça me demande moins de boulot ne gâche rien non plus :eusa-whistle:).

Cela dit la technique du “split horizon” dont ils parlent semble assez intéressante surtout avec l’arrivée d’IPv6 mais tout ça est encore très lointain pour moi, faudrait déjà que je me décide à me renseigner sur IPv6 pour comprendre précisément comment ça marche. :mrgreen: La priorité pour le moment c’est de pouvoir me débarrasser des mises à jour manuelles des fichiers hosts, c’est infernal ! (déjà que la mise à jour manuelle des baux statiques DHCP me casse bien les c…, mais ça j’ai bien peur que ça soit inévitable)

+1, énormément d’articles intéressants. :wink:

Renseignements pris il semblerait que ça ne soit tout simplement pas possible de forwarder les noms non qualifiés (tout au moins en respectant les standards) : une zone DNS est forcément complètement qualifiée.
J’ai plus qu’à utiliser un suffixe de recherche DNS…

On va encore me dire que je suis obstiné, mais bon… :laughing:

Puisque unbound ne sait pas forwarder les noms non qualifiés, qu’à cela ne tienne : dnsmasq sait le faire. :mrgreen:
Résultat des courses, j’ai 3 serveurs DNS sur mon réseau… :open_mouth:

  • la box internet qui sert aussi de DHCP (obligé pour le WLAN)
  • mon serveur unbound récursif
  • un nouveau serveur dnsmasq (sur la même machine que unbound) qui ne sert que de proxy

J’ai simplement changé l’interface et le port d’unbound (127.0.0.1:PORT_UNBOUND au lieu de 0.0.0.0:53).
dnsmasq prend sa place sur le port 53 sans rien mettre en cache, il ne fait que forwarder les requêtes non-qualifiées à ma box et tout le reste à unbound.

Configuration de dnsmasq :

[code]$ cat /etc/dnsmasq.conf

Listen on this specific port instead

port=53

If you don’t want dnsmasq to read /etc/resolv.conf or any other

file, getting its servers from this file instead (see below), then

uncomment this.

no-resolv

If you don’t want dnsmasq to poll /etc/resolv.conf or other resolv

files for changes and re-read them then uncomment this.

no-poll

Add other name servers here, with domain specs if they are for

non-public domains.

server=127.0.0.1#PORT_UNBOUND
server=//IP_BOX#53
server=/X.X.X.in-addr.arpa/IP_BOX#53

disable caching

cache-size=0
no-negcache[/code]

On vérifie que ça marche…
Les noms non qualifiés sont bien résolus (par la box, forcément, j’ai testé avec une adresse DHCP dynamique sur le WLAN), et le reverse-DNS fonctionne aussi pour ces adresses (entrée …in-addr.arpa dans dnsmasq.conf).
Les requêtes normales passent bien par dnsmasq puis unbound (les statistiques d’unbound le prouvent) :

[code]# unbound-control flush_stats ; nslookup debian-fr.org ; unbound-control stats | grep ‘^total.num.queries’
ok
Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:
Name: debian-fr.org
Address: 91.121.50.62

total.num.queries=1[/code]
Non mais oh ! C’est quand même pas une machine qui allait avoir raison quand même ! :066
Bon d’accord, dnsmasq me prend 1Mo de RAM juste pour ça, mais c’est pas non plus la fin du monde quand il s’agit d’avoir raison. :mrgreen: