Problème bind9

Bonjour à tous, je viens vous demander votre aide pour un petit soucis réseau / bind.

Avant de commencer je signale que tout la configuration est en local

DOnc voila j’ai un serveur DNS-principal qui possède une interface pour communiquer vers internet et une en 10.1.1.x avec un netmask 255.255.255.0 pour communiquer en local. Ensuite j’ai un routeur avec une interface en 10.1.1.x et une en 10.5.5.x ( donc 2 réseaux différents ), puis un dns de sous-zone en 10.5.5.x et un client derrière en 10.5.5.x . J’ai fait toute ma configuration bind, resolv.conf ,etc… Les fichiers marchent nickel et sans erreurs. Seulement voila, lorsque je test la commande "dig client."ma-souzone.“zone-principal” depuis mon client, cela me retourne une erreur :

QUERY, status: NOERROR QUERY:1 , ANSWER:0, AUTHORITY:1, ADDITIONAL: 0 Warning: recursion requested but not available

Après plusieurs recherche sur le net j’ai pu trouvé qu’en fait il ne trouve pas le fichier de record ou qu’il n’existe pas.

source : en.gentoo-wiki.com/wiki/BIND

Pourtant si je fais cette même commande depuis mon serveur dns principal, aucun problème tout fonctionne, mais si je test la commande sur le serveur dns sous zone même erreur.
Donc je ne vois pas trop où est le problème …

Merci d’avance pour votre aide

Ça aiderait d’avoir la configuration des serveurs, le contenu des zones et les réponses complètes de dig dans les deux cas.

Alors pour le serveur principal

named.conf.local

zone "serveur-ludovic.no-ip.org" { type master; file "/var/cache/bind/db.domainep"; };

named.conf.options

Rien n’a été modifié

Fichier RR

[code]$TTL 3600
@ IN SOA dns-principal.serveur-ludovic.no-ip.org. root.serveur-ludovic.no-ip.org. (
2010101601
36000
600
86400
600 )
@ IN NS dns-principal.serveur-ludovic.no-ip.org.
conception IN NS deleg-zone.conception.serveur-ludovic.no-ip.org.

deleg-zone.conception IN A 10.5.5.2
dns-principal IN A 10.1.1.1 [/code]

Resolv.conf

nameserver 10.1.1.1 domain serveur-ludovic.no-ip.org search serveur-ludovic.no-ip.org

Serveur DNS sous-zone

fichier RR

[code]$TTL 3600
@ IN SOA deleg-zone.conception.serveur-ludovic.no-ip.org. root.conception.serveur-ludovic.no-ip.org. (
2010101601
36000
600
86400
600 )
@ IN NS deleg-zone.conception.serveur-ludovic.no-ip.org.

deleg-zone IN A 10.5.5.2
client-dns IN A 10.5.5.3
[/code]

named.conf.local

[code]zone “conception.serveur-ludovic.no-ip.org
{
type master;
file “/var/cache/bind/db.sszone”;

};
[/code]

named.conf.options

Rien n’a été modifié

Resolv.conf

nameserver 10.1.1.1 domain serveur-ludovic.no-ip.org search serveur-ludovic.no-ip.org

CLient

resolv.conf

domain conception.serveur-ludovic.no-ip.org search conception.serveur-ludovic.no-ip.org nameserver 10.1.1.1

Au niveau de l’erreur qui m’est retourné aussi bien dans le serveur de sous-zone que dans le client

dig client-dns.conception.serveur-ludovic.no-ip.org

Résultat :

[code]global options: +cmd
Got answer:
->>HEader<<- opcode: Query, status:NOERROR, id:12519
flags: qr rd; QUERY:1; ANSWER:0, AUTHORITY:1, ADDITIONAL:1
Warning: recursion requested but not avalaible

Question SECTION:
client-dns.conception.serveur-ludovic.no-ip.org. IN A

AUTHORITY SECTION
conception.serveur-ludovic.no-ip.org. 30 IN NS deleg-zone.conception.serveur-ludovic.no-ip.org.

ADDITIONAL SECTION
deleg-zone.conception.serveur-ludovic.no-ip.org. 30 IN 10.5.5.2

Query time: 53msec
SERVER: 10.1.1.1#53 (10.1.1.1)
WHEN: MON Nov 22 03:50:09 2010
MSG SIZE rcvd: 103
[/code]

Si je test cette commande avec le dns de la sous-zone cela me renvoi la même erreur mais si je fait un dig “client-dns.conception.serveur-ludovic.no-ip.org.” dans mon dns principal cela marche nickel et me renvoi pas d’erreur ni rien.

Résultat :

[code]global options: +cmd
Got answer:
->>HEader<<- opcode: Query, status:NOERROR, id:12519
flags: qr rd; QUERY:1; ANSWER:1, AUTHORITY:1, ADDITIONAL:1

Question SECTION:
client-dns.conception.serveur-ludovic.no-ip.org. IN A

ANSWER SECTION
client-dns.conception.serveur-ludovic.no-ip.org 30 IN A 10.5.5.3

AUTHORITY SECTION
conception.serveur-ludovic.no-ip.org. 30 IN NS deleg-zone.conception.serveur-ludovic.no-ip.org.

ADDITIONAL SECTION
deleg-zone.conception.serveur-ludovic.no-ip.org. 30 IN 10.5.5.2

Query time: 53msec
SERVER: 10.1.1.1#53 (10.1.1.1)
WHEN: MON Nov 22 03:50:09 2010
MSG SIZE rcvd: 103
[/code]

Incohérences :

  1. Les adresses de deleg-zone dans les zones parente et fille ne correspondent pas (10.5.5.1 et 10.5.5.2).
  2. Dans named.conf.local du serveur secondaire, le nom de la zone fille n’est pas le bon, c’est le nom de la zone parente qui apparaît.

Dsl une erreur de frappe en recopiant mais fichiers de conf, les zone étaient bien déclarées comme il faut, ainsi que les ip, le problème ne vient pas de la.

Sérieusement, tu recopies tout à la main au lieu de faire des copier/coller ?
Est-ce que tu ne trafiquerais pas les réponses de dig aussi, parce que j’observe des similitudes troublantes entre les deux (même ID, même temps de réponse à la milliseconde près, même date, même taille alors que leur contenu diffère) ?

Bah oui, je recopie à la main les requêtes car je n’ai pas trouvé comment faire un copier collé d’un dig sur une machine virtuelle en mode console.
Je ne vois pas quel serait mon intérêt à modifier les réponses mais ça doit être surement encore une erreur de copie, je vais relancer un test et le poster ici

Sur le dns principal :

[code]global options: +cmd
Got answer:
->>HEader<<- opcode: Query, status:NOERROR, id:63205
flags: qr rd; QUERY:1; ANSWER:1, AUTHORITY:1, ADDITIONAL:1

Question SECTION:
client-dns.conception.serveur-ludovic.no-ip.org. IN A

ANSWER SECTION
client-dns.conception.serveur-ludovic.no-ip.org 30 IN A 10.5.5.3

AUTHORITY SECTION
conception.serveur-ludovic.no-ip.org. 30 IN NS deleg-zone.conception.serveur-ludovic.no-ip.org.

ADDITIONAL SECTION
deleg-zone.conception.serveur-ludovic.no-ip.org. 30 IN 10.5.5.2

Query time: 11 msec
SERVER: 10.1.1.1#53 (10.1.1.1)
WHEN: MON Nov 22 04:18:55 2010
MSG SIZE rcvd: 119[/code]

Sur le client :

[code]global options: +cmd
Got answer:
->>HEader<<- opcode: Query, status:NOERROR, id:19216
flags: qr rd; QUERY:1; ANSWER:0, AUTHORITY:1, ADDITIONAL:1
Warning: recursion requested but not avalaible

Question SECTION:
client-dns.conception.serveur-ludovic.no-ip.org. IN A

AUTHORITY SECTION
conception.serveur-ludovic.no-ip.org. 30 IN NS deleg-zone.conception.serveur-ludovic.no-ip.org.

ADDITIONAL SECTION
deleg-zone.conception.serveur-ludovic.no-ip.org. 30 IN 10.5.5.2

Query time: 73msec
SERVER: 10.1.1.1#53 (10.1.1.1)
WHEN: MON Nov 22 04:30:36 2010
MSG SIZE rcvd: 103[/code]

Tu ne peux pas ouvrir un shell à distance (ssh, telnet…) pour et faire des copier/coller depuis ? Voire transférer des fichiers ?

Mon impression est que le serveur principal n’est récursif que pour lui-même.
Je suppose que tu obtiens la réponse si tu interroges directement le serveur secondaire ?

Je n’y avais pas pensé.

Si je fais interroger le client vers le serveur de sous-zone sans passer par le serveur principal si j’ai bien compris ?
Dans ces cas-la oui aucun soucis le serveur sous-zone se répond bien et le client aussi obtient une réponse positive

Regarde bien les options de récursion sur le serveur principal.

si j’ai bien compris dans le name.conf.options je rajoute une ligne de type allow-recursion avec le réseau de mon serv dns sous-zone c’est bien cela ?

Pas seulement le sous-réseau du serveur secondaire et du client mais toutes les adresses qui doivent pouvoir faire des requêtes récursives, y compris le serveur primaire lui-même et son propre sous-réseau.

D’après le manuel de BIND 9.6, la version actuelle dans Debian lenny, l’actuelle stable, la valeur par défaut de l’option allow-recursion est {localnets; localhost;}. localhost représente toutes les adresses des interfaces de la machine (et pas seulement 127.0.0.1) ; localnets représente tous les sous-réseaux attachés directement à la machine. Ça a changé, car dans une version précédente de BIND 9 incluse dans une ancienne Debian stable, la valeur par défaut était {all;}.

Comme tu as écris que le serveur a une interface vers internet, je mettrais :

pour exclure le sous-réseau de cette interface. Pour l’inclure au contraire, tu peux mettre :

Okey je comprend le concept, mais les allow-recursion ne sont pas nécessaire a chaque fois car pour avoir tester cette configuration au lycée, je n’ai eu aucunement besoin de allow-recursion .
EN tout cas quoi qu’il arrive ça marche merci pour votre aide

La valeur par défaut suffit quand le serveur et le client sont dans le même sous-réseau.