I've done absolutely nothing to my BIND configuration, but looks like Debian Jessie upgrade has broke it. Maybe some new options got introduced to it, or the old things now work differently, but I cannot find what's going wrong.
I got SERVFAIL in my /var/log/bind/bind.log all the time.
I've checked my zones with named-checkzone and they are all 'OK'. I've disabled IPv6 system-wide. I recreated rndc key and even created /etc/rndc.conf. Nothing works.
Here are some configs:
/etc/bind/named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.log";
include "/etc/bind/named.conf.local";
//include "/etc/bind/named.conf.default-zones";
acl localhost_acl {
127.0.0.0/8;
};
acl internal_10_acl {
192.168.10.0/24;
};
acl internal_150_acl {
192.168.150.0/24;
};
acl vpn_acl {
192.168.200.2;
192.168.200.5;
};
key "rndc-key" {
algorithm hmac-md5;
secret "somesecretkey==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { none; };
listen-on {
127.0.0.1;
192.168.10.1;
192.168.150.1;
192.168.200.1;
};
allow-transfer { none; };
max-recursion-queries 200;
};
/etc/bind/named.conf.log
logging {
channel update_debug {
file "/var/log/bind/update_debug.log" versions 3 size 100k;
severity debug;
print-severity yes;
print-time yes;
};
channel security_info {
file "/var/log/bind/security_info.log" versions 1 size 100k;
severity debug;
print-severity yes;
print-time yes;
};
channel bind_log {
file "/var/log/bind/bind.log" versions 3 size 1m;
severity debug;
print-category yes;
print-severity yes;
print-time yes;
};
category default { bind_log; };
category lame-servers { security_info; };
category update { update_debug; };
category update-security { update_debug; };
category security { security_info; };
};
/etc/bind/named.conf.local (this is a long one):
// 1
view "internal_10_view" {
allow-query-on { 127.0.0.1; 192.168.10.1; };
allow-query { localhost_acl; internal_10_acl; };
match-clients { localhost_acl; internal_10_acl; };
zone "myhost.tld" {
type master;
file "/etc/bind/db.myhost.tld_10";
};
zone "168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.192.168.10";
};
// formerly named.conf.default-zones
zone "." {
type hint;
file "/etc/bind/db.root";
};
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";
};
// formerly zones.rfc1918
zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "31.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
};
// 2
view "internal_150_view" {
allow-query-on { 192.168.150.1; };
allow-query { internal_150_acl; };
match-clients { internal_150_acl; };
zone "myhost.tld" {
type master;
file "/etc/bind/db.myhost.tld_150";
};
zone "168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.192.168.150";
};
// formerly named.conf.default-zones
zone "." {
type hint;
file "/etc/bind/db.root";
};
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";
};
// formerly zones.rfc1918
zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "31.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
};
// 3
view "vpn_view" {
allow-query-on { 192.168.200.1; };
allow-query { vpn_acl; };
match-clients { vpn_acl; };
zone "myhost.tld" {
type master;
file "/etc/bind/db.myhost.tld_vpn";
};
// formerly named.conf.default-zones
zone "." {
type hint;
file "/etc/bind/db.root";
};
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";
};
// formerly zones.rfc1918
zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "32.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
// somedomain.tld
zone "somedomain.tld" {
type forward;
forward first;
forwarders { 192.168.34.110; 192.168.34.100; };
};
};
/etc/rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "somesecretkey==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
me@jessie:~$ sudo netstat -lnptu | grep "named\W*$"
tcp 0 0 192.168.10.1:53 0.0.0.0:* LISTEN 1871/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1871/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1871/named
udp 0 0 192.168.200.1:53 0.0.0.0:* 1871/named
udp 0 0 192.168.10.1:53 0.0.0.0:* 1871/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1871/named
me@jessie:~$ ps aux | grep named
bind 5843 0.0 1.0 297780 84412 ? Ssl 00:52 0:16 /usr/sbin/named -f -u bind -4
me@jessie:/etc/bind$ named -V
BIND 9.9.5-9-Debian (Extended Support Version) <id:f9b8a50e> built by make with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--with-atf=no' '--enable-ipv6' '--enable-rrl' '--enable-filter-aaaa' 'CFLAGS=-fno-strict-aliasing -fno-delete-null-pointer-checks -DDIG_SIGCHASE -O2'
compiled by GCC 4.9.2
using OpenSSL version: OpenSSL 1.0.1k 8 Jan 2015
using libxml2 version: 2.9.2
me@jessie's_client:~$ dig @192.168.10.1 launchpad.net
; <<>> DiG 9.9.5-9-Debian <<>> @192.168.10.1 launchpad.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 19673
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;launchpad.net. IN A
;; Query time: 0 msec
;; SERVER: 192.168.10.1#53(192.168.10.1)
;; WHEN: Thu May 07 23:29:38 MSK 2015
;; MSG SIZE rcvd: 42
And finally some logs at /var/log/bind/bind.log
07-May-2015 22:52:49.287 resolver: debug 1: createfetch: _xmpp-server._tcp.pandion.im SRV
07-May-2015 22:52:49.287 resolver: debug 1: createfetch: . NS
07-May-2015 22:52:49.954 resolver: debug 1: createfetch: _xmpp-server._tcp.pandion.im SRV
07-May-2015 22:52:50.353 resolver: debug 1: createfetch: launchpad.net A
07-May-2015 22:52:51.288 resolver: debug 1: createfetch: _xmpp-server._tcp.pandion.im SRV
07-May-2015 22:52:51.575 query-errors: debug 1: client 127.0.0.1#47208 (pandion.im): view internal_10_view: query failed (SERVFAIL) for pandion.im/IN/AAAA at query.c:7004
07-May-2015 22:52:53.138 query-errors: debug 1: client 127.0.0.1#55548 (_jabber._tcp.none.su): view internal_10_view: query failed (SERVFAIL) for _jabber._tcp.none.su/IN/SRV at query.c:7004
07-May-2015 22:52:53.955 resolver: debug 1: createfetch: _jabber._tcp.pandion.im SRV
07-May-2015 22:52:54.622 resolver: debug 1: createfetch: _jabber._tcp.pandion.im SRV
07-May-2015 22:52:55.353 query-errors: debug 1: client 192.168.10.2#37375 (launchpad.net): view internal_10_view: query failed (SERVFAIL) for launchpad.net/IN/A at query.c:7004
07-May-2015 22:52:55.354 resolver: debug 1: createfetch: launchpad.net A
07-May-2015 22:52:55.956 resolver: debug 1: createfetch: _jabber._tcp.pandion.im SRV
/var/log/bind/security_info.log
07-May-2015 00:45:26.055 warning: using built-in root key for view vpn_view
07-May-2015 12:31:37.603 warning: using built-in root key for view internal_10_view
07-May-2015 12:31:37.769 warning: using built-in root key for view internal_150_view
07-May-2015 12:31:37.773 warning: using built-in root key for view vpn_view
07-May-2015 12:31:44.859 warning: using built-in root key for view internal_10_view
07-May-2015 12:31:44.865 warning: using built-in root key for view internal_150_view
07-May-2015 12:31:44.871 warning: using built-in root key for view vpn_view
07-May-2015 12:31:46.005 warning: using built-in root key for view internal_10_view
07-May-2015 12:31:46.011 warning: using built-in root key for view internal_150_view
07-May-2015 12:31:46.016 warning: using built-in root key for view vpn_view
07-May-2015 12:31:47.108 warning: using built-in root key for view internal_10_view
07-May-2015 12:31:47.114 warning: using built-in root key for view internal_150_view
07-May-2015 12:31:47.121 warning: using built-in root key for view vpn_view
07-May-2015 12:31:48.946 warning: using built-in root key for view internal_10_view
07-May-2015 12:31:48.951 warning: using built-in root key for view internal_150_view
07-May-2015 12:31:48.957 warning: using built-in root key for view vpn_view
07-May-2015 14:07:39.729 warning: using built-in root key for view internal_10_view
07-May-2015 14:07:39.737 warning: using built-in root key for view internal_150_view
07-May-2015 14:07:39.743 warning: using built-in root key for view vpn_view
07-May-2015 14:12:05.871 warning: using built-in root key for view internal_10_view
07-May-2015 14:12:05.880 warning: using built-in root key for view internal_150_view
07-May-2015 14:12:05.890 warning: using built-in root key for view vpn_view
07-May-2015 14:27:07.630 warning: using built-in root key for view internal_10_view
07-May-2015 14:27:07.638 warning: using built-in root key for view internal_150_view
07-May-2015 14:27:07.644 warning: using built-in root key for view vpn_view
Any suggestions what might be wrong?
named-checkzone, can you clarify if the names that you getSERVFAILerrors for are in your own zones or if those errors are encountered when looking up other names? Also, what does your logging configuration look like? I get the feeling that maybe you only have some specific categories in that log, possibly removing the log entries that hint at the reason for the failures? – Håkan Lindqvist May 07 '15 at 20:21launchpad.net) not. I've just added/etc/bind/named.conf.logright now, check the updated question. – Neurotransmitter May 07 '15 at 20:24securityorlame-servers(orupdate-*but that seems irrelevant to the question) it wouldn't be in that log. Can you check that, just to make sure you don't actually have helpful things being logged? – Håkan Lindqvist May 07 '15 at 20:37/etc/bind/named.conf.log? – Neurotransmitter May 07 '15 at 20:41max-recursion-queries 200;– Andrew B May 07 '15 at 20:43/etc/bind/named.conf:41: unknown option 'max-recursion-queries'– Neurotransmitter May 07 '15 at 20:44securityto a separate file, so you may want to have a look there as a first step. Also, you have configured it to throw away all log messages forlame-servers, you may want to at least temporarily undo that in case that is actually relevant to your problems. – Håkan Lindqvist May 07 '15 at 20:46named -Vinto your question. – Andrew B May 07 '15 at 20:49lame-serverstosecurity_infoand checked/var/log/bind/security_info.log, nothing strange to me there (check the updated question). – Neurotransmitter May 07 '15 at 20:55named -Vto the question. Noticed--enable-ipv6though I have disabled it in multiple places. Is it right or I should disable it in one more? – Neurotransmitter May 07 '15 at 20:57max-recursion-queriesoption is not set. Adding the option fixes it, and I find it very unlikely that your version of BIND does not have the CVE-2014-8500 fix. Please upload a copy of your config to a webserver so that I can see where you're adding that option to the config. – Andrew B May 07 '15 at 20:59max-recursion-queriesinside theoptionssection when you tried Andrew's suggestion? – Håkan Lindqvist May 07 '15 at 20:59named.confas was suggested. Think I should place it in thenamed.conf.optionsinstead. After testing I keep gettingSERVFAILalong with the newinfo: error (network unreachable)error. – Neurotransmitter May 07 '15 at 21:01optionssection but you happen to have that split out into a separate file which youinclude. So yes, that's where you'd add it. – Håkan Lindqvist May 07 '15 at 21:04testingtojessieversions. These testing packages migrated from earlierWheezyinstallation, but now I wanted to go all stable. Maybe BIND is thoroughly connected to some package, downgrade of which broke it? – Neurotransmitter May 07 '15 at 21:10(network unreachable)status being showed on IPv6 addresses. – Neurotransmitter May 07 '15 at 21:17-4then? Or is that part of your configuration not working? (Is the /etc/defaults file even used when the service is started via systemd?) – Håkan Lindqvist May 07 '15 at 21:22named -Vmerely shows what options was used during the build. I have-4option in/etc/default/bind9andlisten-on-v6 { none; };in/etc/bind/named.conf.optionsso I believe IPv6 is not used. – Neurotransmitter May 07 '15 at 21:28/etc/default/bind9is even used when the service is started by systemd rather than sysvinit. Ie, does the runningnamedprocess have-4in its command line? – Håkan Lindqvist May 07 '15 at 21:30/etc/default/bind9is actually ignored. I've just madeps aux | grep namedand there is no-4:/usr/sbin/named -f -u bind. – Neurotransmitter May 07 '15 at 21:32-4option. It should be done via editiong of/etc/systemd/system/multi-user.target.wants/bind9.service. At least now(network unreachable)error vanished, thanks for heads up. – Neurotransmitter May 07 '15 at 21:41SERVFAILvanished at around 5 A.M. Since then all is crystal clear and no errors at all. BIND works flawlessly. I run a number of public services (e.g. XMPP/Jabber server) and wonder if some user ofejabberdcould probably abused my internalbind9sending malformed DNS-queries? – Neurotransmitter May 08 '15 at 10:04