bind 9.9.0rc3 inline signing server not updating unsigned zone

Spain, Dr. Jeffry A. spainj at countryday.net
Wed Feb 22 19:05:11 UTC 2012


Mark: Your patch version 3 is included below to confirm that this is the correct one. Initially the patch didn't work properly due to a missing line break before "@@ -5993,6 +5994,12 @@". I fixed that and ran the bind9.9.0rc3 installation again. A manual inspection of server.c afterwards indicated that the patch executed correctly.

With the properly patched bind 9.9.0rc3 running, 'rndc retransfer jaspain.biz' generated no output, presumably indicating success.

The log showed some related error messages, however:
Feb 22 13:50:43 nsb0s named[8594]: received control channel command 'retransfer jaspain.biz'
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (unsigned): Transfer started.
Feb 22 13:50:43 nsb0s named[8594]: transfer of 'jaspain.biz/IN (unsigned)' from 2001:4870:20ca:158:14ff:7695:9632:e9ec#53: connected using 2001:4870:20ca:158:383e:4365:e3fe:ef7e#45705
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (unsigned): transferred serial 2012013004: TSIG 'nsb0-nsb0s'
Feb 22 13:50:43 nsb0s named[8594]: transfer of 'jaspain.biz/IN (unsigned)' from 2001:4870:20ca:158:14ff:7695:9632:e9ec#53: Transfer completed: 1 messages, 10 records, 392 bytes, 0.005 secs (78400 bytes/sec)
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (signed): zone serial (2012013004/2012013006) has gone backwards
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (signed): loaded serial 2012013004
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (signed): receive_secure_serial: unchanged
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (signed): receive_secure_serial: unchanged
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (signed): reconfiguring zone keys
Feb 22 13:50:43 nsb0s named[8594]: malformed transaction: /var/cache/bind/jaspain.biz.db.signed.jnl last serial 2012013006 != transaction first serial 2012013004
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (signed): zone_rekey:dns_journal_write_transaction -> unexpected error
Feb 22 13:50:43 nsb0s named[8594]: zone jaspain.biz/IN (signed): sending notifies (serial 2012013004)

Seems like it is confusing the serial numbers of the signed and unsigned zones. 2012013004 is the incremented serial number of the unsigned zone. The signed zone had serial number 2012013006 prior to the retransfer attempt. Tcpdump showed a successful AXFR of the unsigned zone with serial number 2012013004.

Thanks. Jeff.

----------

Patch version 3:
Index: bin/named/server.c
===================================================================
RCS file: /proj/cvs/prod/bind9/bin/named/server.c,v
retrieving revision 1.638.4.3
diff -u -r1.638.4.3 server.c
--- bin/named/server.c	7 Feb 2012 00:58:40 -0000	1.638.4.3
+++ bin/named/server.c	21 Feb 2012 23:05:47 -0000
@@ -5986,6 +5986,7 @@
 ns_server_retransfercommand(ns_server_t *server, char *args) {
 	isc_result_t result;
 	dns_zone_t *zone = NULL;
+	dns_zone_t *raw = NULL;
 	dns_zonetype_t type;
 
 	result = zone_from_args(server, args, NULL, &zone, NULL, ISC_TRUE); @@ -5993,6 +5994,12 @@
 		return (result);
 	if (zone == NULL)
 		return (ISC_R_UNEXPECTEDEND);
+	dns_zone_getraw(zone, &raw);
+	if (raw != NULL) {
+		dns_zone_detach(&zone);
+		dns_zone_attach(raw, &zone);
+		dns_zone_detach(&raw);
+	}
 	type = dns_zone_gettype(zone);
 	if (type == dns_zone_slave || type == dns_zone_stub)
 		dns_zone_forcereload(zone);




More information about the bind-users mailing list