Erreur zone DNS

Bonjour,

J’ai un problème dans la configuration de ma zone (DNS). Lorsque je lance la commande named-checkzone pour tester ma zone je reçois la même erreur sur toute mes lignes de configuration.

root@Debian02:/etc/bind# named-checkzone de.reseau.fr /etc/bind/db.reseau.fr
/etc/bind/db.reseau.fr:4: ignoring out-of-zone data (reseau.fr)
/etc/bind/db.reseau.fr:12: ignoring out-of-zone data (reseau.fr)
/etc/bind/db.reseau.fr:13: ignoring out-of-zone data (reseau.fr)
/etc/bind/db.reseau.fr:14: ignoring out-of-zone data (reseau.fr)
/etc/bind/db.reseau.fr:15: ignoring out-of-zone data (reseau.fr)
/etc/bind/db.reseau.fr:16: ignoring out-of-zone data (ns1.reseau.fr)
/etc/bind/db.reseau.fr:17: ignoring out-of-zone data (ns2.reseau.fr)
/etc/bind/db.reseau.fr:18: ignoring out-of-zone data (mx1.reseau.fr)
/etc/bind/db.reseau.fr:19: ignoring out-of-zone data (mx2.reseau.fr)
/etc/bind/db.reseau.fr:20: ignoring out-of-zone data (tuto.reseau.fr)
/etc/bind/db.reseau.fr:21: ignoring out-of-zone data (www.reseau.fr)
/etc/bind/db.reseau.fr:22: ignoring out-of-zone data (blog.reseau.fr)
zone db.reseau.fr/IN: has no SOA records
zone db.reseau.fr/IN: has no NS records
zone db.reseau.fr/IN: not loaded due to errors.
root@Debian02:/etc/bind# 
$TTL    604800
$ORIGIN reseau.fr.
@       IN      SOA ns1.reseau.fr. admin.reseau.fr. (
                             2022081701 ; Serial
                             3600       ; Refresh (1 hour)
                             3000       ; Retry   (50 minutes)
                             4619200    ; Expire  (7 weeks 4 days 11 hours 6 minutes 40 seconds)
                             604800     ; Minimum (1 week)
                             )

@       IN      NS      ns1.reseau.fr.
@       IN      NS      ns2
@       IN      MX      10 mx1
@       IN      MX      20 mx2
ns1     IN      A       10.0.0.14
ns2     IN      A       10.0.0.15
mx1     IN      A       10.0.0.16
mx2     IN      A       10.0.0.17
tuto    IN      A       10.0.0.18
www     IN      A       10.0.0.19
blog    IN      CNAME   www
zone "reseau.fr" {
                type master;
                file "/etc/bind/db.reseau.fr";
                allow-transfer { 10.0.0.15; };
        };

Où est définie ta zone?
le fichier named.conf au complet?

alors pour le coup j’ai juste enlever la variable $ORIGIN et ça a fonctionné je comprend pas pourquoi

je crois qu’on ne peux pas faire un enregistrement SOA précédé d’un $ORIGIN, car $ORIGIN présupose que le paramètre après soit connu.
Hors tant que ton SOA n’est pas défini tu ne peux pas l’utiliser en $ORIGIN.

C’est ce que je me suis dis. Je comprenais pas vraiment a quoi servait cette variable si rien n’était déclaré. Merci en tout cas pour ton aide et ton retour. :muscle:

Normal, dans la commande tu demandes la vérification de la zone « de.reseau.fr » alors que les enregistrements du fichier de zone sont dans « reseau.fr » (qualifiés via la définition de $ORIGIN).

Pas du tout. $ORIGIN n’est qu’une variable d’environnement arbitraire positionnée par défaut avec le nom de la zone.

1 J'aime

ça a fonctionné aussi effectivement j’ai fais n’importe quoi je faisais une checkzone sur un fichier et non sur la zone en question. Merci beaucoup les amis :pray:

named-checkzone vérifie bien un fichier de zone mais il faut lui indiquer le bon nom de la zone car celui-ci n’est pas contenu dans le fichier.

2 J'aime

Ici c’est un « ; » point-virgule me semble-t’il :wink:

Après pour exemple sur une de mes zone en type slave (donc récupérée du master) mon fichier s’écrit la zone comme çà - avec des varibales $ORIGIN que je n’ai pas spécifiées sur le master :

Ici le TTL est à 1 minute parce que ce sont des IP locales et c’est un fichier « reverse » - ce n’est pas forcement un exemple à suivre :wink:

17:43:55 root@dc.ldap:~ $ cat /etc/bind/slaves/0.101.10.in-ovh.arpa

$ORIGIN .
$TTL 60 ; 1 minute
0.101.10.in-addr.arpa   IN SOA  dns.lab3w.loc. hostmaster.lab3w.loc. (
                                2020040302 ; serial
                                20         ; refresh (20 seconds)
                                5          ; retry (5 seconds)
                                420        ; expire (7 minutes)
                                60         ; minimum (1 minute)
                                )
                        NS      dns.lab3w.loc.
                        NS      ns1.lab3w.loc.
$ORIGIN 0.101.10.in-addr.arpa.
1                       PTR     vm1.lab3w.loc.
2                       PTR     vm2.lab3w.loc.
3                       PTR     vm3.lab3w.loc.
4                       PTR     vm4.lab3w.loc.
254                     PTR     gate1.lab3w.loc.

Bonne journée.

Et donc, quelle valeur cet exemple est-il supposé avoir ? Personne de sensé n’écrirait un fichier de zone d’une façon aussi alambiquée et casse-gueule. Pourquoi ne pas avoir plutôt montré ton fichier de zone maître ?

Parce que je n’ai pas écrit d’origine dans mes fichiers de zones maîtres - je n’ai pas de sous-zones :slight_smile: dirais-je.

14:05:22 root@lv1.dns:~ # cat /etc/bind/masters/0.101.10.in-ovh.arpa

$ttl 60
@   IN      SOA     dns.lab3w.loc. hostmaster.lab3w.loc. (
                        2020040302      ; serial, yearmonthdayserial#
                        20              ; refresh, seconds / default:21600
                        5               ; retry, seconds / default:3600
                        420             ; expire, seconds / default:604800
                        60 )            ; minimum, seconds / default:3600

@               IN      NS              dns.lab3w.loc.
@               IN      NS              ns1.lab3w.loc.

1               IN      PTR             vm1.lab3w.loc.
2               IN      PTR             vm2.lab3w.loc.
3               IN      PTR             vm3.lab3w.loc.
4               IN      PTR             vm4.lab3w.loc.
254             IN      PTR             gate1.lab3w.loc.

Comme vous le disiez :

$ORIGIN . signifie toute la zone (le « domaine » entier sûrement - bon ici toute la IPv4 classe B)

Les adresses IPv4 NS (Name Server) sont dans un autre fichier - un sous réseau IPv4 - 10.101.10.X par exemple.

                    NS      dns.lab3w.loc.
                    NS      ns1.lab3w.loc.

Puis le serveur DNS créait lui-même :crazy_face: :sweat_smile: @PascalHambourg $ORIGIN 0.101.10.in-addr.arpa. avec dessous les adresses IPv4 correspondantes.

1                       PTR     vm1.lab3w.loc.
2                       PTR     vm2.lab3w.loc.
3                       PTR     vm3.lab3w.loc.
4                       PTR     vm4.lab3w.loc.
254                     PTR     gate1.lab3w.loc.

Il est intelligent ce serveur DNS Bind :slight_smile: il transforme les secondes en minutes en plus en commentaire de plus :relaxed:

Salutations,
Romain :heart_eyes:

Un tuto que j’ai écris :wink:

Normal, ce n’est pas utile dans la plupart des cas, la valeur par défaut (nom de la zone) suffit.
Ton fichier est un exemple classique, avec les noms appartenant à la zone en relatif par rapport au nom de la zone et les autres en absolu. Pas besoin de redéfinir $ORIGIN.

Je ne vois pas le rapport avec les sous-zones.

Je ne crois pas avoir écrit cela. « $ORIGIN . » fixe comme origine la racine du DNS entier et non la zone (sauf s’il s’agit de la zone racine). Cela n’a aucun intérêt à part le fait de ne pas faire de différence entre les noms absolus et relatifs donc de tolérer l’absence de « . » à la fin des noms complets.

Les classes d’adresses A, B et C sont obsolètes. Par conséquent il n’y aucune corrélation entre les classes et les zones DNS inverses. Ilustration dans ton exemple : Les adresses 10.* sont de classe A qui est associée à une longueur de préfixe /8 mais ta zone inverse pour 10.101.0.* correspond à une longueur de préfixe /24 qui est normalement associée à la classe C.

Je voulais dire de classe A oui !

Et bonjour @larakii1 bienvenue :slight_smile:

La zone inverse de toute la classe A 10.0.0.0/8 serait 10.in-addr.arpa. et non 0.101.10.in-addr.arpa.

Mon fichier est la zone inverse du réseau 10.101.0.0/24 :slight_smile:

Avec les IPv4 :

  1. 10.101.0.1/24
  2. 10.101.0.2/24
  3. 10.101.0.3/24
  4. 10.101.0.4/24
  5. 10.101.0.254/24

Pour que la commande suivante m’affiche le nom en demandant l’IP (reverse DNS)

16:58:33 root@lv1.dc1:~ # host 10.101.0.1
1.0.101.10.in-addr.arpa domain name pointer vm1.lab3w.loc.

L’inverse de celle-ci :

17:15:47 root@lv1.dc1:~ # host vm1.lab3w.loc
vm1.lab3w.loc has address 10.101.0.1

Ou avec d’autres commandes :

17:11:23 root@dc.w3a:~ $ traceroute -4 dc1.lab3w.loc
traceroute to dc1.lab3w.loc (10.101.150.2), 30 hops max, 60 byte packets
 1  dc.lab3w.loc (10.106.42.253)  0.151 ms  0.048 ms  0.134 ms
 2  sovh.lab3w.loc (172.16.5.137)  118.504 ms  120.449 ms  122.341 ms
 3  vm1.lab3w.loc (10.101.0.1)  123.774 ms  125.423 ms  127.153 ms
 4  dc1.lab3w.loc (10.101.150.2)  127.658 ms  129.584 ms  131.836 ms

:wink:

Merci beaucoup @ZW3B . Au passage je prendrai le temps de lire ton tuto, il a l’air de reprendre les bases de la communication entre 2 serveur DNS (maitre et slave). En ce qui concerne le reverse j’ai pas encore assimilé parfaitement cette partie je vais donc devoir encore m y pencher.