Gestion DNS avec NSD et Unbound

Répondre
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par Zedoune »

Bonjour,

Petit tuto (fait avec le couteau sous la gorge :P ) sur mon infrastructure DNS avec les logiciels NSD et Unbound.

NSD c'est quoi ?

Déjà, NSD c'est un jeu de mot tout pourris puisque ce sont les lettres DNS dans le désordre :P
NSD est un serveur DNS autoritaire. C'est-à-dire que son rôle est d'avoir des fichiers des zones de vos domaines dans sa configuration, et de répondre à tout internet quelles sont les IP derrière vos domaines et sous-domaines. C'est donc ce qu'on appelle grossièrement, un serveur DNS. On lui colle un fichier par domaine avec toutes les infos du domaine, on le déclare en serveur GLUE chez vos registrar et il répond aux requêtes des gens.
Ce serveur ne peut répondre QUE aux requêtes des domaines pour lesquels il a les fichiers de zone !!!



Unbound c'est quoi ?

Unbound, un jeu de mot pourris avec Bind qui est un homologue, (parce que bind = attaché et unbound = détaché [:tinostar] ), est un serveur DNS récursif. Son boulot, c'est qu'on lui demande "c'est quoi le MX de truc.com ?", et lui il se démerde pour aller contacter un DNS qui va te dire le MX de truc.com et te renvoyer le résultat. Le DNS de votre FAI, 8.8.8.8 de Google, OpenDNS etc... sont des serveurs récursifs, ils répondent à vos requêtes DNS.
À moins d'avoir une bonne raison Unbound ne doit pas être accessible sur le web, car n'importe qui pourrait s'amuser à faire des requêtes vers n'importe qui ! (un peu comme un serveur SMTP ouvert en relais à tout le monde)
Unbound est très simple à configurer, puisqu'il s'agit globalement de lui dire quels DNS utiliser pour ces recherches, comment gérer le cache, les adresses autorisées à lui faire des requêtes etc..

Au boulot, pour de la facilité, j'ai 3 serveurs sur qui NSD est greffé dessus, et 3 autres serveurs avec Unbound dessus, et UN serveur avec NSD et Unbound. Avoir les deux sur la même machine impose une chose => avoir une ip par service.

Les 2 services utilisent le port 53 (TCP et UDP), sur votre machine avec les 2 services, unbound seul ne répondrait pas aux clients extérieurs les infos de vos zones, et NSD seul ne permettrait pas aux machines de votre réseau local de résoudre des adresses DNS. Il faut donc une ip pour NSD qui sera joignable par le web, et une ip pour unbound qui restera accessible en lan uniquement.


Exemple de fichier nsd.conf
server:
	ip-transparent: no
	hide-version: yes
	ip4-only: yes
	ip6-only: no
	database: "/var/db/nsd/nsd.db"
	identity: "*** DNS SERVER"
	server-count: 1
	port: 53
	username: nsd
	ip-address: 192.168.0.40
	zonesdir: "/usr/local/etc/nsd/zones/"
zone:
	name: "machin.com"
	zonefile: "machin.com.zone"
zone:
	name: "truc.com"
	zonefile: "truc.com.zone"

Exemple de fichier unbound.conf
server:
	verbosity: 1
        interface: 192.168.0.41
	port: 53
	do-ip4: yes
	do-ip6: no
	do-udp: yes
	do-tcp: yes
	do-daemonize: yes
	access-control: 192.168.0.0/16 allow
	chroot: "/usr/local/etc/unbound"
	username: "unbound"
	directory: "/usr/local/etc/unbound"
	use-syslog: yes 
	log-time-ascii: yes
	root-hints: "root.hints"
	do-not-query-localhost: no
python:
remote-control:
	control-enable: yes
forward-zone:
	name: "machin.com" 
	forward-addr: 192.168.0.40
forward-zone:
	name: "truc.com" 
	forward-addr: 192.168.0.40 
J'ai mis des forward-zone dans unbound pour éviter que pour MES domaines il aille les chercher via internet alors qu'on les as en local ! ^^


La grosse différence avec BIND, c'est que lui fais tout cela, mais que c'est autorisé ou non selon des règles d'ip, et que globalement BIND c'est incompréhensible :o
gizmo78
Messages : 20569
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par gizmo78 »

Merci :jap:

et bind spa incompréhensible, c'est juste pour les vrai quoi stout :o

blague à part, effectivement bind est un peu complexe à prendre en main pour avoir un truc super carré, mais une fois pigé ca va tout seul!

du coup, si je veux avoir un serveur dns secondaire, unbound serait pas un bon choix?
gizmo78
Messages : 20569
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par gizmo78 »

à oui et tite question: quid de la gestion du dnssec?
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par Zedoune »

Merci :jap:

et bind spa incompréhensible, c'est juste pour les vrai quoi stout :o

blague à part, effectivement bind est un peu complexe à prendre en main pour avoir un truc super carré, mais une fois pigé ca va tout seul!

du coup, si je veux avoir un serveur dns secondaire, unbound serait pas un bon choix?
pour un serveur qui va répondre aux requêtes concernant tes domaines, c'est NSD qu'il faut utiliser, pas unbound :)
DNSSEC est géré par les deux il me semble mais j'ai jamais regardé.

D'ailleurs, je n'utilise même plus les fonctions master/slave, tout est configuré via SALT, ils sont tous autonomes.
gizmo78
Messages : 20569
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par gizmo78 »

okay merci :)

ce que je veux c'est un dns secondaire, si le premier tombe ca reprend, chose que j'ai en place avec bind.
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par Zedoune »

Il faut savoir aussi que BIND sait faire du "split-horizon", c'est à dire fournir des réponses DNS différentes selon l'adresse IP. Ça sert souvent quand on a un réseau en interne, les adresses IP on veut pas forcément utiliser les publiques mais les LAN, du coup faut 2 fichiers DNS, et bind ça utiliser l'un ou l'autre selon le client.

Cette pratique, c'est comme le "goto" en programmation, c'est possible, ça rend service, mais c'est pas très recommandé.


si t'as 2 NS déclarés dans le domaine, ils sont en load-balancing, pas en failover.
gizmo78
Messages : 20569
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par gizmo78 »

mon deuxième est en forward et j'ai pas configuré de fichier de zone dessus à la main, il est en slave par rapport au premier donc bien en failover.
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par Zedoune »

mon deuxième est en forward et j'ai pas configuré de fichier de zone dessus à la main, il est en slave par rapport au premier donc bien en failover.
normalement si tu fais des requêtes DNS sur ton domaine, tu devrais voir les serveurs répondre chacun leur tour.
Il est en slave, pas en failover, ça veut dire qu'il attend les données et mises à jour du serveur maître, mais pas qu'il prend le relais en cas de panne !! Il est fonctionnel en permanence.
gizmo78
Messages : 20569
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par gizmo78 »

[cpp]Un serveur esclave est utilisé en complément à un serveur maître, en servant de copie à la ou les zones configurées sur le serveur principal. Les serveurs secondaires sont recommandés sur des gros réseaux. Ceux-ci assurent la disponibilité de la zone DNS, même si le serveur maître est hors ligne. [/cpp]

donc pour moi, failover
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par Zedoune »

[cpp]Un serveur esclave est utilisé en complément à un serveur maître, en servant de copie à la ou les zones configurées sur le serveur principal. Les serveurs secondaires sont recommandés sur des gros réseaux. Ceux-ci assurent la disponibilité de la zone DNS, même si le serveur maître est hors ligne. [/cpp]

donc pour moi, failover
Ceux-ci assurent la disponibilité de la zone DNS, même si le serveur maître est hors ligne.
Pour moi, cela signifie qu'ils fonctionnent 24/24.
Je peux avoir le nom du domaine pour voir ? :o
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par Zedoune »

Si tu veux voir ce que répond ton serveur DNS, utilise "dnstop"

dnstop -l 3 [interface]
et dedans tu fais shift+2 ou shift+3 pour afficher des noms de domaines à 2 ou 3 niveaux, tu verras les statistiques des trucs renvoyés

Si tu veux vérifier que dnstop marche bien,
fais un "dig machin.bidule @tondns"

machin.bidule devrait apparaître dans la liste ! :)
gizmo78
Messages : 20569
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par gizmo78 »

thanks :jap:

je test ce soir, j'ai plus de linux sous la main :cry:
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par Zedoune »

gizmo78
Messages : 20569
Inscription : ven. 12 janv. 2018 17:44

Gestion DNS avec NSD et Unbound

Message par gizmo78 »

classe :D

merci \o/
Répondre