Forum Linux.debian/ubuntu Bind9 > Besoin d'aide (SERVFAIL)

Posté par . Licence CC by-sa.
0
6
avr.
2020

Bonjour à tous !

J'ai suivi de nombreux tutos sur internet mais le serveur DNS que j'essaye de mettre en place est en erreur (SERVFAIL) des DNS externes (en local, cela fonctionne).

Pourtant, tout semble être correct (fichier de zones OK, bind est bien actif, la zone fonctionne bien en local…) et j'ai passé beaucoup de temps à tout vérifier mais rien ne fonctionne alors je fais appel à votre expertise !

Pour information, je suis sur un serveur dédié Kimsufi, et j'ai installé la distribution Debian 10 Buster dessus.

J'ai bien configuré les DNS de mon hébergeur de mon nom de domaine pour qu'ils pointent vers le ns1.mondomaine.fr et le sdns2.ovh.ca (DNS Secondaire de Kimsufi).

Pour commencer, le problème est le suivant (dig) :

        alextoch@ns50XXXX ~ % dig mondomaine.fr

        ; <<>> DiG 9.11.5-P4-5.1-Debian <<>> mondomaine.fr
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 53406
        ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

        ;; OPT PSEUDOSECTION:
        ; EDNS: version: 0, flags:; udp: 4096
        ;; QUESTION SECTION:
        ;mondomaine.fr.                    IN      A

        ;; Query time: 193 msec
        ;; SERVER: 213.186.33.99#53(213.186.33.99)
        ;; WHEN: Fri Apr 03 10:01:47 CEST 2020
        ;; MSG SIZE  rcvd: 39

Si je fais un dig à partir d'un DNS de google (8.8.4.4 par ex.), j'ai également un SERVFAIL.

dig de mon domaine en local --> on voit ici que c'est OK

    > alextoch@ns50XXXX ~ % dig mondomaine.fr @127.0.0.1
    ; <<>> DiG 9.11.5-P4-5.1-Debian <<>> mondomaine.fr @127.0.0.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2654
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ; COOKIE: e6f4de23ff420e02475d0e005e86edcb7230eac793a7e98a (good)
    ;; QUESTION SECTION:
    ;mondomaine.fr.                    IN      A

    ;; ANSWER SECTION:
    mondomaine.fr.             3600    IN      A       198.100.XXX.Y

    ;; AUTHORITY SECTION:
    mondomaine.fr.             3600    IN      NS      ns1.mondomaine.fr.
    mondomaine.fr.             3600    IN      NS      sdns2.ovh.ca.

    ;; ADDITIONAL SECTION:
    ns1.mondomaine.fr.         3600    IN      A       198.100.XXX.Y

    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Fri Apr 03 10:03:23 CEST 2020
    ;; MSG SIZE  rcvd: 143

dig de mon domaine à partir de mon DNS Secondaire Kimsufi --> on voit ici que c'est OK

    ; <<>> DiG 9.11.5-P4-5.1-Debian <<>> maymail.fr @167.114.154.31
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50488
    ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    ;; WARNING: recursion requested but not available

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;maymail.fr.                    IN      A

    ;; ANSWER SECTION:
    maymail.fr.             3600    IN      A       198.100.145.9

    ;; Query time: 0 msec
    ;; SERVER: 167.114.154.31#53(167.114.154.31)
    ;; WHEN: Mon Apr 06 17:37:43 CEST 2020
    ;; MSG SIZE  rcvd: 55

Vérification de la zone

    alextoch@ns50XXXX ~ % named-checkconf -z
    zone mondomaine.fr/IN: loaded serial 2020040210
    zone localhost/IN: loaded serial 2
    zone 127.in-addr.arpa/IN: loaded serial 1
    zone 0.in-addr.arpa/IN: loaded serial 1
    zone 255.in-addr.arpa/IN: loaded serial 1
    alextoch@ns50XXXX ~ % named-checkzone mondomaine.fr /etc/bind/mondomaine.fr/db.mondomaine.fr
    zone mondomaine.fr/IN: loaded serial 2020040210
    OK

==> A priori ma zone est OK.

Logs de bind

alextoch@ns50XXXX ~ % cat /var/lib/bind/bind.log
02-Apr-2020 20:00:18.251 general: notice: all zones loaded
02-Apr-2020 20:00:18.252 general: notice: running

Statut de bind9

    alextoch@ns50XXXX ~ % sudo service bind9 status
    &#9679; bind9.service - BIND Domain Name Server
       Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
       Active: active (running) since Thu 2020-04-02 20:00:18 CEST; 14h ago
         Docs: man:named(8)
      Process: 15408 ExecStart=/usr/sbin/named $OPTIONS (code=exited, status=0/SUCCESS)
     Main PID: 15410 (named)
        Tasks: 7 (limit: 4915)
       Memory: 20.8M
       CGroup: /system.slice/bind9.service
               &#9492;&#9472;15410 /usr/sbin/named -u bind

    Apr 02 20:00:18 ns50XXXX named[15410]: automatic empty zone: B.E.F.IP6.ARPA
    Apr 02 20:00:18 ns50XXXX named[15410]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
    Apr 02 20:00:18 ns50XXXX named[15410]: automatic empty zone: EMPTY.AS112.ARPA
    Apr 02 20:00:18 ns50XXXX named[15410]: automatic empty zone: HOME.ARPA
    Apr 02 20:00:18 ns50XXXX named[15410]: none:106: 'max-cache-size 90%' - setting to 7097MB (out of 7885MB)
    Apr 02 20:00:18 ns50XXXX named[15410]: configuring command channel from '/etc/bind/rndc.key'
    Apr 02 20:00:18 ns50XXXX named[15410]: command channel listening on 127.0.0.1#953
    Apr 02 20:00:18 ns50XXXX named[15410]: configuring command channel from '/etc/bind/rndc.key'
    Apr 02 20:00:18 ns50XXXX named[15410]: command channel listening on ::1#953
    Apr 02 20:00:18 ns50XXXX systemd[1]: Started BIND Domain Name Server.

Mes fichiers bind / zone

resolv.conf

alextoch@ns50XXXX ~ % cat /etc/resolv.conf
nameserver 213.186.33.99

213.186.33.99 est l'IP fournit par défaut sur mon serveur Kimsufi à l'installation de la distrib.

/etc/bind/named.conf

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

/etc/bind/named.conf.options

options {
directory "/var/cache/bind";

auth-nxdomain no;    # conform to RFC1035
listen-on { any; };
listen-on-v6 { any; };

// hide version number from clients for security reasons.
version "not currently available";

// disable recursion on authoritative DNS server.
recursion no;

// enable the query log
querylog yes;

// disallow zone transfer
allow-transfer { none; };
};

logging {
   channel bind.log {
   file "/var/lib/bind/bind.log" versions 10 size 20m;
   severity notice;
   print-category yes;
   print-severity yes;
   print-time yes;
   };

   category queries { bind.log; };
   category default { bind.log; };
   category config { bind.log; };
};

/etc/bind/named.conf.local

    zone "mondomaine.fr" {
            type master;
            allow-transfer {167.114.154.31;};
            also-notify {167.114.154.31;};
            allow-update {167.114.154.31;};
            file "/etc/bind/mondomaine.fr/db.mondomaine.fr";
    };

167.114.154.31 est le DNS secondaire fournit avec mon serveur Kimsufi (il correspond à sdns2.ovh.ca)

/etc/bind/named.conf.default-zones

    // prime the server with knowledge of the root servers
    zone "." {
            type hint;
            file "/usr/share/dns/root.hints";
    };

    // 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";
    };

/etc/bind/mondomaine.fr/db.mondomaine.fr

    $TTL 3600
    @       IN      SOA     ns1.mondomaine.fr. admin.mondomaine.fr. (
                            2020040205       ; serial, todays date + todays serial #
                            14400              ; refresh, seconds
                            3600              ; retry, seconds
                            604800              ; expire, seconds
                            3600 )            ; minimum, seconds
    ;

    mondomaine.fr. 3600 A 198.100.XXX.Y
    mail 3600 A 198.100.XXX.Y
    ns1 3600 A 198.100.XXX.Y

    mondomaine.fr. 3600 MX 10 mail.mondomaine.fr.
    mondomaine.fr. 3600 NS ns1.mondomaine.fr.
    mondomaine.fr. 3600 NS sdns2.ovh.ca.


    Y.XXX.100.198.in-addr.arpa 3600 PTR mondomaine.fr.

    mondomaine.fr. 3600 TXT "v=spf1 mx a ~all"
    _dmarc.mondomaine.fr. 3600 TXT "v=DMARC1; p=none"

Vu que tout semble "ok" dans la conf, que la zone est bien chargée par bind et qu'elle fonctionne en local. Je me suis dit que c'était peut être le pare feu qui bloquait le port 53 mais en fait non :

    alextoch@ns50XXXX ~ % sudo nmap -sS -sU 198.100.XXX.Y
    Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-03 10:27 CEST
    Stats: 0:00:02 elapsed; 0 hosts completed (1 up), 1 undergoing UDP Scan
    UDP Scan Timing: About 1.00% done; ETC: 10:28 (0:01:39 remaining)
    Nmap scan report for ns50XXXX.ip-198-100-XXX.net (198.100.XXX.Y)
    Host is up (0.000032s latency).
    Not shown: 1996 closed ports
    PORT    STATE         SERVICE
    53/tcp  open          domain
    53/udp  open          domain
    68/udp  open|filtered dhcpc
    123/udp open          ntp

J'ai même désactivé iptables pour être bien sûr, mais cela ne change absolument rien.

Aussi, toute idée est la bienvenue !! Avez-vous des pistes ? Ce problème commence à me rendre fou

Merci beaucoup d'avance pour votre aide !

  • # et le recursion et/ou forward ?

    Posté par . Évalué à 3 (+1/-0).

    il faut configurer le DNS pour autoriser la recursion voire le forward vers les DNS externes pour les zones externes (inconnues)

    ta recursion est à OFF et je n'ai pas vu de forward.

    • [^] # Re: et le recursion et/ou forward ?

      Posté par . Évalué à 1 (+0/-0). Dernière modification le 06/04/20 à 19:34.

      Merci beaucoup pour ta réponse !

      J'ai modifié le named.conf.options comme ça :

      options {
              directory "/var/cache/bind";
      
              // If there is a firewall between you and nameservers you want
              // to talk to, you may need to fix the firewall to allow multiple
              // ports to talk.  See http://www.kb.cert.org/vuls/id/800113
      
              // If your ISP provided one or more IP addresses for stable
              // nameservers, you probably want to use them as forwarders.
              // Uncomment the following block, and insert the addresses replacing
              // the all-0's placeholder.
      
              forwarders {
              167.114.154.31;
              };
      
              //========================================================================
              // If BIND logs error messages about the root key being expired,
              // you will need to update your keys.  See https://www.isc.org/bind-keys
              //========================================================================
              auth-nxdomain no;    # conform to RFC1035
              listen-on { any; };
              listen-on-v6 { any; };
      
              allow-recursion {
              127.0.0.1;
              198.100.XXX.Y;
              };
      };
      

      J'ai redémarré le serveur bind.
      Toujours SERVFAIL lorsque je dig sur des DNS externes mais il faut peut être le temps que cela se propage !?

      J'espère que c'est ça :p

      • [^] # Re: et le recursion et/ou forward ?

        Posté par . Évalué à 4 (+2/-0).

        tu as definit un bloc allow-recursion

        mais si tu n'as rien changé d'autre ta recursion était à OFF dans la config précédente

        // disable recursion on authoritative DNS server.
        recursion no;

        il faut évidemment la mettre à ON (yes)

  • # Merci !

    Posté par . Évalué à 2 (+1/-0).

    Merci à tous, avec ces modifs, cela fonctionne ! :) Du coup je ne sais pas si c'est la partie récursion, la partie forwarders ou les 2).

    • [^] # Re: Merci !

      Posté par . Évalué à 2 (+0/-0).

      suffit de tester,

      la recursion sur OFF, ca ne fonctionnait, pas.
      tu l'as mise sur ON et ca marche

      commente la partie forwarder, tu verras bien si ca fonctionne toujours ou s'il faut les 2 :p

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.