Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bind9 sous Debian : un ping ne fonctionne pas

23 réponses
Avatar
Francois
Bonjour à tous,

Je suis en train d'apprendre à faire un petit serveur DNS simplement en
"mode cache" (le DNS ne fait que renvoyer la balle au DNS de mon FAI)
sous une debian 5.0 version stable et j'ai du mal. Je vais essayé d'être
complet, désolé pour la longueur du message.

a) Je "suis derrière" ma freebox dont le dhcp n'est pas activé.

b) J'ai une distribution ubuntu qui me sert de client DNS dont les
paramètres sont :
IP = 192.168.0.1 avec le masque 255.255.255.0
Passerelle par défaut = 192.168.0.254 (IP de la freebox)
DNS = 192.168.0.2 (IP de la debian, le serveur DNS)

c) Sur Ubuntu j'ai installé en OS virtuel une debian donc, que j'essaye
de transformer en serveur DNS. Voici ses paramètres :
IP = 192.168.0.2 avec le masque 255.255.255.0
Passerelle par défaut = 192.168.0.254 (IP de la freebox)
Le domaine qu'elle est censée gérer s'appelle "dom" et le PC-serveur DNS
s'appelle "debian".

Voici certains fichiers sur le serveur DNS (debian) que j'ai
laborieusement essayé d'éditer correctement (sachant que j'ai installé
le paquet bind9 dessus) :

----------------
# /etc/host.conf
order hosts, bind
----------------

----------------
# /etc/hosts
127.0.0.1 localhost.dom localhost
192.168.0.2 debian.dom debian

# et des trucs qui étaient là au départ
# semble-t-il pour gérer l'IP6...
----------------

----------------
# /etc/resolv.conf
nameserver 127.0.0.1
domain dom
----------------

----------------
# /etc/bind/named.conf qui modulo des include donne ceci :

acl "dom" { 127.0.0.0/8; 192.168.0.0/24; };

options {
directory "/var/cache/bind";
allow-query { "dom"; };
forward first;
forwarders {
212.27.40.241; // DNS de free
212.27.40.240; // DNS de free
};
}

zone "." {
type hint;
file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
----------------


Voilà pour la configuration. Et bien le DNS fonctionne un peu dans le
sens où pour aller chercher des hôtes sur le net (je parle du client
ubuntu), ça fonctionne. Et quand je tue le processus "named" (c'est bien
le processus du DNS ???) sur ma debian et bien là plus de navigation
possible sur Internet avec le client (Ubuntu) il n'arrive plus à
résoudre les noms. Par contre, pour avec le terminal d'ubuntu, un simple :

$ ping debian.dom

me renvoie un :

ping: unknown host debian.dom

Donc le DNS ne fait pas bien son travail et je ne vois absolument pas
pourquoi ? Si vous avez des idées... J'y est passé du temps et je
commence à m'embrouiller.

Au passage, je croyais que les deamons étaient tous répertoriés dans
/etc/init.d/. Or je ne vois pas de "named" dans ce répertoire, mais je
vois un "bind9". C'est normal ça ? On lance le deamom comment ? Avec la
commande "named" ou en lançant le script /etc/init.d/bind9 ? Est-ce
équivalent ? Dans mon esprit, ça me complique les choses, déjà que je
trouve ça compliqué...

Merci de m'avoir lu jusqu'au bout (et bravo ;-)).


À bientôt.



--
François Lafont

10 réponses

1 2 3
Avatar
Pascal Hambourg
Salut,

Francois a écrit :

$ ping debian.dom

me renvoie un :

ping: unknown host debian.dom



Mauvais intitulé : ce n'est pas le ping qui ne marche pas mais la
résolution de nom préalable. Sauf erreur de ma part, la raison est qu'il
n'y a pas de zone "dom" définie dans named.conf.

Au passage, je croyais que les deamons étaient tous répertoriés dans
/etc/init.d/. Or je ne vois pas de "named" dans ce répertoire, mais je
vois un "bind9". C'est normal ça ?



Le script s'appelle bind9 probablement parce que c'est le nom du paquetage.

On lance le deamom comment ? Avec la commande "named"

Je suppose qu'on peut, mais cela nécessite de saisir toutes les options
éventuelles à la main.

ou en lançant le script /etc/init.d/bind9 ?



Ou avec la commande "invoke-rc.d bind9 start", si on est dans un
runlevel compatible.
Avatar
La Bete des Vosges (Francis Chartier)
Le Tue, 21 Apr 2009 14:48:27 +0200, Francois a écrit :

Bonjour à tous,



'lut


----------------
# /etc/resolv.conf
nameserver 127.0.0.1
domain dom
----------------




$ ping debian.dom

me renvoie un :

ping: unknown host debian.dom

Donc le DNS ne fait pas bien son travail et je ne vois absolument pas
pourquoi ? Si vous avez des idées... J'y est passé du temps et je
commence à m'embrouiller.



Je ne vois nulle part dans ta config de déclaration pour le domaine "dom"
auquel tu fais référence dans ton resolf.conf, et dont tu dois faire
normalement partie j'imagine ?

Sur une debian tu as normalement à la fin du named.conf la ligne

include "/etc/bind/named.conf.local";

qui te permettra d'inclure la déclaration de tes zones

Qu'as tu dans ton named.conf.local ?

Tu devrais normalement avoir un truc du genre :

zone "dom" {
type master;
file "/etc/bind/db.dom";
};

ou (ma préférence)

zone "dom" {
type master;
file "/var/cache/bind/db.dom";
};

Et le ficher db.dom en question doit contenir les définitions pour la
zone.

Se reporter par exemple à :

http://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux/
Le_serveur_de_noms_Bind#.2Fetc.2Fbind.2Fnamed.conf.local

Au passage, je croyais que les deamons étaient tous répertoriés dans
/etc/init.d/. Or je ne vois pas de "named" dans ce répertoire, mais je
vois un "bind9". C'est normal ça ? On lance le deamom comment ? Avec la
commande "named" ou en lançant le script /etc/init.d/bind9 ? Est-ce
équivalent ? Dans mon esprit, ça me complique les choses, déjà que je
trouve ça compliqué...



les daemons sont lancés ou arrêtés grâce aux liens symboliques dans

/etc/rc<runlevel>.d

Les liens nécessaires sont normalement créés automatiquement lors de
l'installation du paquet.

Pour plus de détails :

man update-rc.d

Bon courage.

--
La Bête des Vosges
Avatar
Francois
Pascal Hambourg a écrit :

$ ping debian.dom

me renvoie un :

ping: unknown host debian.dom



Mauvais intitulé : ce n'est pas le ping qui ne marche pas mais la
résolution de nom préalable.



C'est exact (d'ailleurs le ping avec l'IP ad hoc marche). Mais, n'étant
pas très calé dans sur ces questions, la seul test que je suis capable
de faire en ligne de commande, c'est un ping.

Sauf erreur de ma part, la raison est qu'il
n'y a pas de zone "dom" définie dans named.conf.



Oui, c'est conforté dans le message suivant. J'y répondrai dans mon
prochain message.

Merci pour votre réponse.


--
François Lafont
Avatar
Francois
La Bete des Vosges (Francis Chartier) a écrit :

Je ne vois nulle part dans ta config de déclaration pour le domaine "dom"
auquel tu fais référence dans ton resolf.conf, et dont tu dois faire
normalement partie j'imagine ?



Oui, c'est sûrement ça. Mais il y a une chose que je ne comprends pas.
Dans le fichier /etc/host.conf du DNS, j'ai fais en sorte que d'abord le
DNS utilise /etc/hosts pour la résolution des noms, puis *ensuite* fait
appel au processus named (bind). Or dans le /etc/hosts du DNS, le nom
debian y figure bien avec l'IP qui va bien, donc ça devrait marcher mon
ping. Où est mon erreur ? (Quelque chose m'échappe.)


Sur une debian tu as normalement à la fin du named.conf la ligne

include "/etc/bind/named.conf.local";

qui te permettra d'inclure la déclaration de tes zones

Qu'as tu dans ton named.conf.local ?



Ça :

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are note used
// in your organization
// include "/etc/bind/zones.rfc1918";

et /etc/bind/zones.rfc1918 contient une vingtaine de lignes du genre :

zone "<n>.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };

C'est un peu du chinois pour moi.


Tu devrais normalement avoir un truc du genre :

zone "dom" {
type master;
file "/etc/bind/db.dom";
};

ou (ma préférence)

zone "dom" {
type master;
file "/var/cache/bind/db.dom";
};

Et le ficher db.dom en question doit contenir les définitions pour la
zone.



C'est à moi d'éditer ce fichier à la main ? Parce que, quand j'ai jeté
un oeil sur ce type du fichier, ça m'a paru vraiment obscur. Ah, c'est
pas facile linux.


Se reporter par exemple à :

http://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux/
Le_serveur_de_noms_Bind#.2Fetc.2Fbind.2Fnamed.conf.local



Merci pour le lien.


Au passage, je croyais que les deamons étaient tous répertoriés dans
/etc/init.d/. Or je ne vois pas de "named" dans ce répertoire, mais je
vois un "bind9". C'est normal ça ? On lance le deamom comment ? Avec la
commande "named" ou en lançant le script /etc/init.d/bind9 ? Est-ce
équivalent ? Dans mon esprit, ça me complique les choses, déjà que je
trouve ça compliqué...



les daemons sont lancés ou arrêtés grâce aux liens symboliques dans

/etc/rc<runlevel>.d



Et ces liens symboliques pointent vers des "vrais" fichiers qui sont
tous dans /etc/init.d/, c'est ça ?


Les liens nécessaires sont normalement créés automatiquement lors de
l'installation du paquet.



Ok. Par exemple le runlevel de mon DNS-debian est 2. Quand je démarre
normalement l'ordinateur (en runlevel 2 donc) après avoir installé
bind9, j'ai la garantie que le contenu de /etc.rc2.d/ a été modifié pour
que le deamon bind-names soit activé juste après le démarrage, c'est ça ?


Au passage, si je modifie la configuration de names, en changeant
/etc/bind/named.conf, suis-je obligé de redémarrer l'ordinateur ?
Dois-je au moins tuer le processus named et le relancer ? Si oui, est-ce
que ceci :

$ kill <PID du processus named>
$ named

est une manière propre de faire ? Peut-être qu'il faut des arguments
particulier à named ?


Bon courage.



Merci, je vais en avoir besoin. ;-)
Mer pour votre aide.



--
François Lafont
Avatar
Fabien LE LEZ
On Tue, 21 Apr 2009 17:48:11 +0200, Francois :

Dans le fichier /etc/host.conf du DNS,



Les fichiers de config de BIND sont dans /etc/bind/.
Avatar
Francois
Fabien LE LEZ a écrit :

Dans le fichier /etc/host.conf du DNS,



Les fichiers de config de BIND sont dans /etc/bind/.



Je me suis mal exprimé. Par "le fichier /etc/host.conf du DNS", je
voulais dire "le fichier /etc/host.conf qui se trouve dans l'ordinateur
jouant le rôle du DNS".


--
François Lafont
Avatar
Fabien LE LEZ
On Tue, 21 Apr 2009 18:03:15 +0200, Francois :

"le fichier /etc/host.conf qui se trouve dans l'ordinateur
jouant le rôle du DNS".



Qui n'a, si je ne m'abuse, aucune influence sur le PC client.

Il ne faut pas confondre le système de résolution de noms sur une
machine donnée, qui sert pour les besoins des applications qui
tournent sur cette machine, et BIND, qui donne des informations aux
machines qui l'interrogent via le port 53.
Avatar
La Bete des Vosges (Francis Chartier)
Le Tue, 21 Apr 2009 17:48:11 +0200, Francois a écrit :


Qu'as tu dans ton named.conf.local ?



Ça :

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are note used // in your
organization
// include "/etc/bind/zones.rfc1918";



Donc pas de référence à un fichier de définition pour ta zone.
Normal que ça ne marche pas.


Tu devrais normalement avoir un truc du genre :

zone "dom" {
type master;
file "/etc/bind/db.dom";
};

Et le ficher db.dom en question doit contenir les définitions pour la
zone.



C'est à moi d'éditer ce fichier à la main ?



Ben oui : c'est ta zone, c'est à toi de renseigner.

Parce que, quand j'ai jeté
un oeil sur ce type du fichier, ça m'a paru vraiment obscur. Ah, c'est
pas facile linux.



Soyons clairs : la mise en oeuvre d'un serveur DNS est normalement un
boulot d'administrateur plus que de simple utilisateur et ça demande de
bonnes notions réseau si on veut que ça fonctionne correctement.
C'est souvent une resource qu'on met en place parce que ça va améliorer
le fonctionnement d'autres serveurs sur son propre réseau.

Il me paraît délicat de se lancer là dedans sans sérieusement étudier la
doc abondante disponible.

Et cette démarche n'est pas propre à linux, mais valable quel que soit le
système utilisé. Enfin, c'est à espérer. :)

Ok. Par exemple le runlevel de mon DNS-debian est 2. Quand je démarre
normalement l'ordinateur (en runlevel 2 donc) après avoir installé
bind9, j'ai la garantie que le contenu de /etc.rc2.d/ a été modifié pour
que le deamon bind-names soit activé juste après le démarrage, c'est ça
?



Normalement, il est même lancé après l'installation.
Il y a généralement peu de raisons qui nécessitent un redémarrage d'un
serveur, à part l'installation d'un nouveau noyau ou d'une nouvelle
version d'une bibliothèque fondamentale du système.

Un ps -ax | grep named vous en dira plus, ainsi que la lecture des logs.

Si oui, est-ce
que ceci :

$ kill <PID du processus named>
$ named

est une manière propre de faire ? Peut-être qu'il faut des arguments
particulier à named ?



Non, c'est sale. :)

La plupart des daemons lancés via les liens dans rc<x>.d prennent reload
ou restart comme argument, c'est notamment le cas pour /etc/init.d/bind9

--
La Bête des Vosges
Avatar
Kevin Denis
Le 22-04-2009, Francois a écrit :
Bref faire un DNS c'est pas simple. Il semble que faire un serveur DHCP
soit bien plus simple par exemple.



Si tu souhaites mettre en place un couple DNS/DHCP tu peux t'orienter
vers le programme dnsmasq.
Il fait tout en un, et fonctionne bien.

Ceci dit, ce n'est peut être pas forcément ce que tu cherches, mais tu
peux jeter un coup d'oeil.
--
Kevin
Avatar
Fabien LE LEZ
On Wed, 22 Apr 2009 10:32:13 +0000 (UTC), "La Bete des Vosges (Francis
Chartier)" <francis+:

Et cette démarche n'est pas propre à linux, mais valable quel que soit le
système utilisé.



À un détail près : BIND est nettement plus chiant à installer sous
Windows que sous Linux.
1 2 3