I'm having an issue with one of our slave nameservers, for some reason it's not updating any zones automatically. There are 5 servers total, 1 master and 4 slaves(all with identical /etc/named.conf). 3 of these slaves are working correctly but one is giving me problems and I'm not quite sure why. I've been replicating the issue is by restarting the named service on the master which then issues notifies to the slaves servers. On the the working slaves I can tail the log and see that they are getting the notifies to verify everything is up to date.
On the slave with the problem nothing is appended to the log when named on the master is restarted, although if I attempt to do a manual axfr of any zone from dig on the slave it updates fine. Also if I restart the named service on the slave it updates the zone files as well.
Since these servers are all virtualized I was able to make an identical copy of one of the correctly working slaves and replaced the non-working one, this still didn't resolve the issue. Frankly, I'm unsure as to what could be causing it, has anyone experienced something similar to this or possibly have some ideas as to what could be causing it?
I don't think it's a configuration error within bind since 3 other slaves with identical configs are working fine and I can manually update the zone whenever. The following configs have been condensed for simplicity's sake.
Master /etc/named.conf
Code:
acl internals { 10.0.0.0/24; 10.0.6.0/24; 10.0.7.0/24; 10.0.12.0/24; };
acl slave-internal { 10.0.6.1; 10.0.6.2; 10.0.0.3; 10.0.0.4; };
acl slave-external { 12.234.242.197; 12.234.242.198; 74.213.13.115; 74.213.13.116; };
acl master-internal { 10.0.6.5; };
acl master-external { 12.234.242.199; };
options
{
// Put files that named is allowed to write in the data/ directory:
directory "/var/named"; // the default
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";
};
logging
{
category "default" { "debug"; };
category "general" { "debug"; };
category "database" { "debug"; };
category "security" { "debug"; };
category "config" { "debug"; };
category "resolver" { "debug"; };
category "xfer-in" { "debug"; };
category "xfer-out" { "debug"; };
category "notify" { "debug"; };
category "client" { "debug"; };
category "unmatched" { "debug"; };
category "network" { "debug"; };
category "update" { "debug"; };
category "queries" { "debug"; };
category "dispatch" { "debug"; };
category "dnssec" { "debug"; };
category "lame-servers" { "debug"; };
channel "debug" {
file "data/named.run" versions 2 size 50m;
print-time yes;
print-category yes;
};
};
view "internal"
{
match-clients { !slave-external; !master-external; internals; };
recursion yes;
allow-query { internals; };
// all views must contain the root hints zone:
include "/etc/named.root.hints";
//
zone "0.0.127.in-addr.arpa" in {
type master;
file "db.internal.127.0.0";
allow-transfer { slave-internal; };
};
//
zone "0.0.10.in-addr.arpa" in {
type master;
file "db.internal.10.0.0";
allow-transfer { slave-internal; };
};
//
zone "1.0.10.in-addr.arpa" in {
type master;
file "db.internal.10.0.1";
allow-transfer { slave-internal; };
};
//
zone "2.0.10.in-addr.arpa" in {
type master;
file "db.internal.10.0.2";
allow-transfer { slave-internal; };
};
//
zone "example.com" in {
type master;
file "db.internal.example.com";
allow-transfer { slave-internal; };
};
};
view "external"
{
match-clients { !slave-internal; !master-internal; any; };
recursion no;
// all views must contain the root hints zone:
include "/etc/named.root.hints";
//
zone "example.com" in {
type master;
file "db.external.example.com";
allow-transfer { slave-external; };
};
};
Slaves /etc/named.conf
Code:
acl internals { 10.0.0.0/24; 10.0.6.0/24; 10.0.7.0/24; 10.0.12.0/24; };
acl slave-internal { 10.0.6.1; 10.0.6.2; 10.0.0.3; 10.0.0.4; };
acl slave-external { 12.234.242.197; 12.234.242.198; 74.213.13.115; 74.213.13.116; };
acl master-internal { 10.0.6.5; };
acl master-external { 12.234.242.199; };
options
{
// Put files that named is allowed to write in the data/ directory:
directory "/var/named"; // the default
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";
};
logging
{
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view "internal"
{
match-clients { !slave-external; !master-external; internals; };
recursion yes;
allow-query { internals; };
// all views must contain the root hints zone:
include "/etc/named.root.hints";
//
zone "0.0.127.in-addr.arpa" in {
type slave;
file "slaves/db.internal.127.0.0";
masters { master-internal; };
};
//
zone "0.0.10.in-addr.arpa" in {
type slave;
file "slaves/db.internal.10.0.0";
masters { master-internal; };
};
//
zone "1.0.10.in-addr.arpa" in {
type slave;
file "slaves/db.internal.10.0.1";
masters { master-internal; };
};
//
zone "2.0.10.in-addr.arpa" in {
type slave;
file "slaves/db.internal.10.0.2";
masters { master-internal; };
};
//
zone "example.com" in {
type slave;
file "slaves/db.internal.example.com";
masters { master-internal; };
};
};
view "external"
{
match-clients { !slave-internal; !master-internal; any; };
recursion no;
// all views must contain the root hints zone:
include "/etc/named.root.hints";
//
zone "example.com" in {
type slave;
file "slaves/db.external.example.com";
masters { master-external; };
};
};