Hmm! I was just thinking this is a BUG! I wrote a function in Perl to modify the serial number:
sub increase_serial { my $bindetc = "/usr/local/bind/etc/"; my @zones = get_zones(); # get the zones for my $zone (@zones) { for my $isp ('tel','cnc') { # two isp links my $file = $bindetc . "$zone.$isp.db"; my @c; open HD, $file or die $!; while(<HD>) { s/(\d+)(\s+\; Serial)/($1 + 1) . $2/e; # increase the serial number by 1 push @c,$_; } close HD; open HDW, ">", $file or die $!; print HDW for @c; close HDW; } } return 1; } I do below to execute the reload: increase_serial(); system("/usr/local/bind/sbin/rndc reload"); OK I run two reload in a second, the serial number was increased correctly, but bind only reload zones correctly for the first time. This is the system log: [the first reload is successful]: Mar 20 16:08:46 localhost named[25599]: received control channel command 'reload' Mar 20 16:08:46 localhost named[25599]: loading configuration from '/usr/local/bind9.6/etc/named.conf' Mar 20 16:08:46 localhost named[25599]: using default UDP/IPv4 port range: [1024, 65535] Mar 20 16:08:46 localhost named[25599]: using default UDP/IPv6 port range: [1024, 65535] Mar 20 16:08:46 localhost named[25599]: reloading configuration succeeded Mar 20 16:08:46 localhost named[25599]: reloading zones succeeded Mar 20 16:08:46 localhost named[25599]: zone test.duxieweb.com/IN/cnc: loaded serial 102502 Mar 20 16:08:46 localhost named[25599]: zone my.test.com/IN/cnc: loaded serial 101 Mar 20 16:08:46 localhost named[25599]: zone test.duxieweb.com/IN/tel: loaded serial 102502 Mar 20 16:08:46 localhost named[25599]: zone my.test.com/IN/tel: loaded serial 101 [the second time bind doesn't reload zones even zones db were changed]: Mar 20 16:08:46 localhost named[25599]: received control channel command 'reload' Mar 20 16:08:46 localhost named[25599]: loading configuration from '/usr/local/bind9.6/etc/named.conf' Mar 20 16:08:46 localhost named[25599]: using default UDP/IPv4 port range: [1024, 65535] Mar 20 16:08:46 localhost named[25599]: using default UDP/IPv6 port range: [1024, 65535] Mar 20 16:08:46 localhost named[25599]: reloading configuration succeeded Mar 20 16:08:46 localhost named[25599]: reloading zones succeeded Will bind only reload zone files based on the file's mtime by second? That's will be a huge problem for some dynamic dns I may think. Thanks. Ralf. 2009/3/20 Ralf Peng <ralf.p...@gmail.com>: > Hello, > > I'm using Bind-9.6-P1, and found something strange about zone reloading. > > I have two views, for example, one is cnc, another is tel (the default). > The records for cnc and tel are parsed to two different ISP's links. > > Sometime our cnc link is disconnected, at this time I copy cnc's zone > db to a backup file, for example: > > cp cnc.zone.db cnc.zone.db.bak > > and copy tel's zone db to cnc's, for example, > > cp tel.zone.db cnc.zone.db > > Then I reload bind (sbin/rndc reload), all works fine. > > But, the problem is, when cnc link is re-connected, I restore cnc's > zone db to the original one, for example: > > mv cnc.zone.db.bak cnc.zone.db > > and reload bind. > > this time things work not fine. > bind didn't load the correct cnc zone (restored from cnc.zone.db.bak), > it kept the old one which was copied from tel's. > > in order to let bind reload correctly, I need to do: > > cd /usr/local/bind/etc > touch * > /usr/local/bind/sbin/rndc reload > > then bind reloads all zones correctly. > > Why this happens? is it problematic for automatic SA job? > btw: my name server is: ns.test.duxieweb.com > > Thanks. > > Ralf. > _______________________________________________ bind-users mailing list bind-users@lists.isc.org https://lists.isc.org/mailman/listinfo/bind-users