Bind, force zone update on slave
I have two test servers master and slave:
Master is updating slave but very slowly. How to speed this up.
Master (192.168.0.122) /etc/named.conf
zone "domain.com." {
type master;
file "caching-example/domain.com.db";
//allow-update { key rndc-key;};
notify yes;
also-notify { 192.168.0.66; };
allow-transfer { 192.168.0.66; };
};
Slave (192.168.0.66) /etc/named.conf
zone "domain.com" {
type slave;
file "caching-example/domain.com.db";
//allow-update { key rndc-key; };
//allow-transfer { none; };
allow-notify { 192.168.0.122; };
masters { 192.168.0.122; };
}
Master /var/named/caching-example/domain.com.db zone
$TTL 3600
$ORIGIN domain.com.
@ IN SOA darkstar.example.net. root.example.net. (
2012033101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
43200 ) ; Negative Cache TTL
IN NS darkstar.example.net.
@ IN A 162.144.18.114
www IN A 162.144.18.114
Now when i cahnge by hand master /var/named/caching-example/domain.com.db zone
$TTL 3600
$ORIGIN domain.com.
@ IN SOA darkstar.example.net. root.example.net. (
2012033102 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
43200 ) ; Negative Cache TTL
IN NS darkstar.example.net.
@ IN A 8.8.8.8
www IN A 8.8.8.8
Nothing happens Master have domain.com at 8.8.8.8 and slave have domain.com at 162.144.18.114.
dig @192.168.0.122 domain.com
domain.com. 3600 IN A 8.8.8.8
dig @192.168.0.66 domain.com
domain.com. 3600 IN A 162.144.18.114
On slave was trying to use rndc but without success rndc refresh domain.com
zone refresh queued
Master is updating a slave but very slowly, is there any way to speed this up? I found that Negative Cache TTL is reposnsible for update time, but bind requires config reload. Is it possible to do update automatically?
Is it possible to force zone update from/on slave?
** EDIT **
Feb 16 01:00:21 darkstar named[1460]: client @0x7fec000bfea0 192.168.0.122#49018: received notify for zone 'domain.com'
Feb 16 01:00:21 darkstar named[1460]: zone domain.com/IN: notify from 192.168.0.122#49018: serial 2012033102
Feb 16 01:00:21 darkstar named[1460]: zone domain.com/IN: Transfer started.
Feb 16 01:00:21 darkstar named[1460]: transfer of 'domain.com/IN' from 192.168.0.122#53: connected using 192.168.0.66#51117
Feb 16 01:00:21 darkstar named[1460]: zone domain.com/IN: transferred serial 2012033102
Feb 16 01:00:21 darkstar named[1460]: transfer of 'domain.com/IN' from 192.168.0.122#53: Transfer status: success
Feb 16 01:00:21 darkstar named[1460]: transfer of 'domain.com/IN' from 192.168.0.122#53: Transfer completed: 1 messages, 5 records, 176 bytes, 0.003 secs (58666 bytes/sec)
Your setup is doing what it's supposed to do:
- You modify a zone file, including updating the
SOA
serial. - You run
rndc reload
on master. - Master sends notify/notifies on zone change.
- Slave(s) requests zone transfers.
BIND is not monitoring file changes i.e. it's normal that it doesn't do this automatically. You must run rndc reload
on the master after every modification. A slave cannot force the master to reload configuration / zones.
Late reply to your unanswered question:
Is it possible to force zone update from/on slave?
I just wanted to speed up/force a transfer and used this on my slave for each outdated domain:
rndc retransfer domain.com