Bind ne répond pas sur le port 53

Bonjour à tous,

J’ai un serveur chez OVH avec Lenny d’installé dessus. Je viens de me rende compte que le serveur n’écoutait pas sur le port 53. Évidemment, j’ai coupé Iptables pour retester mais ça ne change rien.

Voici mon named.conf

1 // This is the primary configuration file for the BIND DNS server named. 2 // 3 // Please read /usr/share/doc/bind9/README.Debian.gz for information on the 4 // structure of BIND configuration files in Debian, *BEFORE* you customize 5 // this configuration file. 6 // 7 // If you are just adding zones, please do that in /etc/bind/named.conf.local 8 9 include "/etc/bind/named.conf.options"; 10 11 // prime the server with knowledge of the root servers 12 zone "." { 13 type hint; 14 file "/etc/bind/db.root"; 15 }; 16 17 // be authoritative for the localhost forward and reverse zones, and for 18 // broadcast zones as per RFC 1912 19 20 zone "localhost" { 21 type master; 22 file "/etc/bind/db.local"; 23 }; 24 25 zone "127.in-addr.arpa" { 26 type master; 27 file "/etc/bind/db.127"; 28 }; 29 30 zone "0.in-addr.arpa" { 31 type master; 32 file "/etc/bind/db.0"; 33 }; 34 35 zone "255.in-addr.arpa" { 36 type master; 37 file "/etc/bind/db.255"; 38 }; 39 40 zone "domaine.fr" IN { 41 type master; 42 file "/etc/bind/db.domaine.fr"; 43 allow-transfer { ip.dns.ovh; }; 44 allow-query { any; }; 45 }; 46 47 zone "domaine.net" IN { 48 type master; 49 file "/etc/bind/db.domaine.net"; 50 allow-transfer { ip.dns.ovh; }; 51 allow-query { any; }; 52 }; 53 54 zone "domaine.com" IN { 55 type master; 56 file "/etc/bind/db.domaine.com"; 57 allow-transfer { ip.dns.ovh; }; 58 allow-query { any; }; 59 }; 60 61 zone "xxx.xxx.xxx.in-addr.arpa" IN { 62 type master; 63 file "/etc/bind/db.rev4.net"; 64 allow-transfer { ip.dns.ovh; }; 65 allow-query { any; }; 66 }; 67 68 ################IPv6######################## 69 70 // RFC 3152 71 72 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" { 73 type master; 74 file "/etc/bind/localhost-v6"; 75 }; 76 77 zone "0.0.d.1.4.1.0.0.2.ip6.int" { 78 type master; 79 file "/etc/bind/db.rev6.net"; 80 }; 81 82 ########################################### 83 84 include "/etc/bind/named.conf.local"; 85 include "/etc/bind/rndc.key"; 86 controls { 87 inet * allow { 127.0.0.1; } keys { "rndc-key"; }; 88 }; 89 90 ###############LOGS################# 91 92 logging { 93 94 channel log_default { 95 file "/var/log/bind/log_default" versions 4 size 10m; 96 severity info; 97 print-category yes; 98 print-severity yes; 99 print-time yes; 100 }; 101 102 channel log_security { 103 file "/var/log/bind/log_security" versions 4 size 10m; 104 severity info; 105 print-category yes; 106 print-severity yes; 107 print-time yes; 108 }; 109 110 channel xfer-in_channel { 111 file "/var/log/bind/xfer-in.log" versions 4 size 10m; 112 severity info; 113 print-category yes; 114 print-severity yes; 115 print-time yes; 116 }; 117 118 channel xfer-out_channel { 119 file "/var/log/bind/xfer-out.log" versions 4 size 10m; 120 severity info; 121 print-category yes; 122 print-severity yes; 123 print-time yes; 124 }; 125 126 channel querylog { 127 file "/var/log/bind/log_queries" versions 4 size 10m; 128 print-severity no; 129 print-time yes; 130 }; 131 132 #category default { default_syslog; ch_default; }; 133 category default { log_default; }; 134 category security { log_security; }; 135 category xfer-in { xfer-in_channel; }; 136 // category xfer-in { null; }; 137 category xfer-out { xfer-out_channel; }; 138 category queries { querylog; }; 139 category "unmatched" { "null"; }; 140 category lame-servers { null; }; 141 };

et mon named.conf.option

1 options { 2 directory "/var/cache/bind"; 3 4 // If there is a firewall between you and nameservers you want 5 // to talk to, you may need to fix the firewall to allow multiple 6 // ports to talk. See http://www.kb.cert.org/vuls/id/800113 7 8 // If your ISP provided one or more IP addresses for stable 9 // nameservers, you probably want to use them as forwarders. 10 // Uncomment the following block, and insert the addresses replacing 11 // the all-0's placeholder. 12 13 // forwarders { 14 // 0.0.0.0; 15 // }; 16 17 version "Non disponible"; 18 19 //edns-udp-size 512; 20 21 //max-udp-size 512; 22 23 notify no; 24 25 statistics-file "/var/log/bind/named-stats.log"; 26 27 auth-nxdomain no; # conform to RFC1035 28 listen-on-v6 { ::1; }; 29 listen-on { mon.ip; }; 30 listen-on port 53 { 127.0.0.1; mon.ip; }; 31 allow-recursion { 127.0.0.1; }; 32 allow-query { localhost; }; 33 };

et voici le résultat de zonecheck (AFNIC)
ZoneCheck: mondomaine.fr.
Information sur la Zone
Zone mondomaine.fr.
Primaire ns1.mondomaine. mon.ipv4, mon.ipv6
Secondaire sdns1.ovh.net. 213.251.188.140
Progression
Progression Tests Vitesse Temps
0 --.-- N/A

présence d’un enregistrement SOA (IP=213.251.188.140)
Résultat des tests
---- fatal ----
f: Le serveur n’écoute pas ou ne répond pas en UDP sur le port 53

* Réf: IETF RFC1035 (p.32 4.2. Transport)

  The DNS assumes that messages will be transmitted as datagrams or in a byte stream carried by a virtual circuit. While virtual circuits can be used for any DNS activity, datagrams are preferred for queries due to their lower overhead and better performance.

* ns1.mondomaine.fr./mon.ipv6

f: [TEST présence d’un enregistrement SOA]: échec du serveur (IN/SOA: mondeomaine.)

* sdns1.ovh.net./213.251.188.140

f: Le serveur n’écoute pas ou ne répond pas en TCP sur le port 53

* Réf: IETF RFC1035 (p.32 4.2. Transport)

  The DNS assumes that messages will be transmitted as datagrams or in a byte stream carried by a virtual circuit. While virtual circuits can be used for any DNS activity, datagrams are preferred for queries due to their lower overhead and better performance.

* ns1.mondomaine./mon.ipv4

Statut final
ÉCHEC

Avez vous une idée du problème? Ca fait un moment que je cherche sans résultat.

Je vous remercie d’avance

Je sais pas si ça peut aider mais bon:

16:58 root@ns1 /etc/bind# netstat -natup | grep 53 tcp 0 0 mon.ipv4.principale:53 0.0.0.0:* LISTEN 15345/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 15345/named tcp 0 0 0.0.0.0:953 0.0.0.0:* LISTEN 15345/named tcp 0 0 alias1:143 ip.exterieur:53021 ESTABLISHED 8755/imap-login tcp 0 0 mon.ipv4.principale:22 ip.exterieur:57964 ESTABLISHED 7744/sshd: nicolas tcp 0 0 127.0.0.1:35519 127.0.0.1:953 TIME_WAIT - tcp6 0 0 ::1:53 :::* LISTEN 15345/named udp 0 0 mon.ipv4.principale:53 0.0.0.0:* 15345/named udp 0 0 127.0.0.1:53 0.0.0.0:* 15345/named udp6 0 0 ::1:53 :::* 15345/named

Pourquoi il n’y a pas de LISTEN pour l’UDP et pourquoi sur le test de l’AFNIC on me dit que c’est le TCP qui ne répond pas??? Je suis un peu largué

Les directives listen-on me semblent incohérentes.

  1. La directive listen-on-v6 avec seulement l’adresse de loopback IPv6 ::1 alors que le nom de domaine défini comme NS a une adresse IPv6 (globale je suppose). Il faudrait que le serveur écoute aussi sur cette adresse IPv6.

  2. Une directive listen-on avec le port 53 et une sans alors que le port 53 est déjà le port par défaut. Par conséquent je ne sais pas laquelle est prise en compte.

Ce ne serait pas plus simple de mettre “any” dans les directives listen-on et listen-on-v6 afin que le serveur DNS écoute sur toutes les adresses IP et IPv6 locales ? Ou bien la machine a des adresses sur lesquelles le serveur DNS ne devrait pas écouter ?

Tu as vérifié :

  • les messages de named au démarrage dans /var/log/syslog ?
  • les adresses/ports sur lesquels named écoute avec “netstat -46nlp | grep named” ?
  • si le serveur répond à des requêtes manuelles en UDP et TCP, IPv4 et IPv6 avec host ou dig ?

netstat montre que named écoute bien en TCP et UDP sur l’adresse publique IPv4. Tu es sûr qu’il n’y a pas de règles de filtrage iptables qui le bloquent ?
Par contre en IPv6 named n’écoute que sur l’adresse interne ::1, pas sur l’adresse globale.
L’absence de “LISTEN” sur les sockets UDP est normale, ça veut dire que la socket attend une demande de connexion or le protocole UDP est dit “non connecté”.

Notes annexes :

  • Ton fichier de conf déclare des zones inverses IPv4 et IPv6 publiques, tu es sûr d’avoir la délégation pour celles-ci ?

  • Les zones inverses IPv6 sous “ip6.int” sont obsolètes et remplacées depuis longtemps par “ip6.arpa”.

J’ai fait les modifs dans named.conf.option:

28 listen-on-v6 { any; }; 29 listen-on { any; }; 30 // listen-on port 53 { any; }; 31 allow-recursion { 127.0.0.1; }; 32 allow-query { localhost; }; 33 };

Voici le syslog au démarrage:

Aug 21 17:23:31 ns1 named[16719]: starting BIND 9.6-ESV-R1 -u bind Aug 21 17:23:31 ns1 named[16719]: built with '--prefix=/usr' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var/run/bind' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl= /usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--wit h-dlz-stub=yes' '--enable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -DNS_RUN_PID_DIR=0 -O2' 'LDFLA GS=' 'CPPFLAGS=' 'CXXFLAGS=-g -O2' 'FFLAGS=-g -O2' Aug 21 17:23:31 ns1 named[16719]: adjusted limit on open files from 1024 to 1048576 Aug 21 17:23:31 ns1 named[16719]: found 2 CPUs, using 2 worker threads Aug 21 17:23:31 ns1 named[16719]: using up to 4096 sockets Aug 21 17:23:31 ns1 named[16719]: loading configuration from '/etc/bind/named.conf' Aug 21 17:23:31 ns1 named[16719]: using default UDP/IPv4 port range: [1024, 65535] Aug 21 17:23:31 ns1 named[16719]: using default UDP/IPv6 port range: [1024, 655┌──────┐ Aug 21 17:23:31 ns1 named[16719]: listening on IPv6 interfaces, port 53 │Paused│ Aug 21 17:23:31 ns1 named[16719]: listening on IPv4 interface lo, 127.0.0.1#53 └──────┘ Aug 21 17:23:31 ns1 named[16719]: listening on IPv4 interface eth0, 188.165.195.189#53 Aug 21 17:23:31 ns1 named[16719]: listening on IPv4 interface eth0:0, 91.121.56.62#53 Aug 21 17:23:31 ns1 named[16719]: listening on IPv4 interface eth0:1, 87.98.162.208#53 Aug 21 17:23:31 ns1 named[16719]: listening on IPv4 interface eth0:2, 188.165.52.2#53 Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: 254.169.IN-ADDR.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: 2.0.192.IN-ADDR.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: D.F.IP6.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: 8.E.F.IP6.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: 9.E.F.IP6.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: A.E.F.IP6.ARPA Aug 21 17:23:31 ns1 named[16719]: automatic empty zone: B.E.F.IP6.ARPA Aug 21 17:23:31 ns1 named[16719]: command channel listening on 0.0.0.0#953

Et voici le résultat de la commande

17:25 root@ns1 /etc/bind# netstat -46nlp | grep named tcp 0 0 alias3:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 alias2:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 alias1:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 mon.ipv4.principale:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 0.0.0.0:953 0.0.0.0:* LISTEN 16719/named tcp6 0 0 :::53 :::* LISTEN 16719/named udp 0 0 alias3:53 0.0.0.0:* 16719/named udp 0 0 alias2:53 0.0.0.0:* 16719/named udp 0 0 alias1:53 0.0.0.0:* 16719/named udp 0 0 mon.ipv4.principale:53 0.0.0.0:* 16719/named udp 0 0 127.0.0.1:53 0.0.0.0:* 16719/named udp6 0 0 :::53 :::* 16719/named

et le dig:

[code]17:26 root@Apostat ~% dig mondomaine.fr @monserveur.ovh.net

; <<>> DiG 9.7.0-P1 <<>> mondomaine.fr @monserveur.ovh.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51544
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mondomaine. IN A

;; AUTHORITY SECTION:
mondomaine. 38400 IN SOA ns1.mondomaine. root.mondomaine. 2010081201 21600 3600 604800 86400

;; Query time: 191 msec
;; SERVER: 188.165.195.189#53(188.165.195.189)
;; WHEN: Sat Aug 21 17:26:19 2010
;; MSG SIZE rcvd: 82
[/code]

Effectivement je vois que la machine a plusieurs adresses IPv4 publiques, et tu voulais peut-être que named n’écoute que sur l’une d’elle en plus de 127.0.0.1. Dans ce cas il suffit de remettre la directive listen-on avec les deux adresses.
A priori ton serveur DNS répond bien maintenant. Il reste le NS secondaire d’OVH qui ne sert pas la zone. L’adresse IP spécifiée dans allow-transfer est-elle bien celle à partir de laquelle le NS secondaire fait les demandes de transfert de zone ? Ce n’est pas forcément la même que celle qui sert la zone.

Oui c’est la bonne adresse ip (celle fournit par OVH…)

J’ai vu qu’il y avait vraiment du mieux, je te remercie. J’ai toujours une erreur avec l’outil de l’AFNIC:
Résultat des tests
---- fatal ----
f: [TEST présence d’un enregistrement SOA]: échec du serveur (IN/SOA: mondomaine.fr.)

* sdns1.ovh.net./213.251.188.140

Statut final
ÉCHEC

Est ce à cause de ça que je ne peux toujours pas faire le lien entre le domaine et le serveur dédié?

Qu’entends-tu par “le lien” ? Définir les NS faisant autorité pour le domaine auprès du registrar qui a enregistré le domaine ? Il me semble que pour les domaines fr l’Afnic refuse effectivement de créer ou modifier la délégation si le domaine n’est pas correctement configuré.

Dans l’interface d’administration du domaine chez le registrar, il y a peut-être une indication du statut de la zone sur le NS secondaire et une raison pour laquelle elle n’est pas synchronisée avec ton NS primaire. C’est peut-être juste une question de temps.

oui c’est ça et chez mon registrar j’ai juste 2 champs à entrer. Pour le moment, j’ai toujours ce msg d’erreur:

Rien de plus. Par contre, j’ai effectivement un problème avec Iptables (je l’avais coupé pour faire les tests que tu m’as dit de faire). Ce que je ne comprends pas, c’est que je ne vois riens de particulier sur les règles :

78 iptables -A INPUT --protocol udp --source-port 53 -j ACCEPT 79 iptables -A OUTPUT --protocol udp --destination-port 53 -j ACCEPT 80 iptables -A INPUT --protocol tcp --source-port 53 -j ACCEPT 81 iptables -A OUTPUT --protocol tcp --destination-port 53 -j ACCEPT 82 83 ip6tables -A INPUT --protocol udp --source-port 53 -j ACCEPT 84 ip6tables -A OUTPUT --protocol udp --destination-port 53 -j ACCEPT 85 ip6tables -A INPUT --protocol tcp --source-port 53 -j ACCEPT 86 ip6tables -A OUTPUT --protocol tcp --destination-port 53 -j ACCEPT

Et je ne vois l’erreur que sur le test de l’AFNIC: avec iptables il me donne la même erreur (le serveur ne répond pas en tcp sur le port 53 alors que la commande me retourne ça:

18:55 root@ns1 /etc/bind# netstat -46nlp | grep named tcp 0 0 alias3:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 alias2:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 alilas1:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 ip.principale:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 16719/named tcp 0 0 0.0.0.0:953 0.0.0.0:* LISTEN 16719/named tcp6 0 0 :::53 :::* LISTEN 16719/named udp 0 0 alias3:53 0.0.0.0:* 16719/named udp 0 0 alias2:53 0.0.0.0:* 16719/named udp 0 0 alias1:53 0.0.0.0:* 16719/named udp 0 0 ip.principale:53 0.0.0.0:* 16719/named udp 0 0 127.0.0.1:53 0.0.0.0:* 16719/named udp6 0 0 :::53 :::* 16719/named

Autre chose: j’ai d’autre .fr et je n’ai pas eu de problème lors de la procèdure, est ce que ça vient d’une MAJ de bind?

Ces règles ip(6)tables autorisent les requêtes DNS sortantes de ton serveur (OUTPUT --dport 53) et leurs réponses entrantes (INPUT --sport 53) mais pas les requêtes entrantes (INPUT --dport 53) ni leurs réponses. En plus, elles sont mal fichues, il vaudrait mieux utiliser l’état de suivi de connexion (-m state --state ESTABLISHED) pour les réponses plutôt que le port source.

Et puis il faudrait examiner tout le jeu de règles pour savoir exactement ce que fait ip(6)tables, des règles isolées ne suffisent pas.

oulala… Je me suis vraiment basé sur ce que j’ai trouvé sur le net pour m’aider à créer mes règles. De plus, ça me gene un peu de mettre ici mon fichier complet. Puis je te l’envoyer par mail?

Dans tous les cas, merci pour ton aide

Pas de souci, tu peux l’envoyer en privé.

Alors, il n’y a pas du mieux concernant le NS secondaire ?

non toujours pas… ça me tue…

je t’envoie ça

Bon, au final, il fallait annuler l’opération et la recréer. Lorsque je faisais relancer, j’avais toujours une erreur… Sans commentaire.

Je te remercie PascalHambourg pour tes conseils et ton aide. Je suis toujours sur mes modifs d’iptables.