Difference in SOA record between master and slave?

Mark.Andrews at nominum.com Mark.Andrews at nominum.com
Fri Feb 25 04:35:15 UTC 2000


	
	It's a bug.  The wrong variable is tested.

	Mark

Index: src/bin/named/db_load.c
===================================================================
RCS file: /proj/cvs/isc/bind/src/bin/named/db_load.c,v
retrieving revision 8.98
diff -u -r8.98 db_load.c
--- src/bin/named/db_load.c	2000/02/21 21:27:41	8.98
+++ src/bin/named/db_load.c	2000/02/25 04:26:41
@@ -294,6 +294,7 @@
 		default_warn = 1;
 		clev = nlabels(in_origin);
 		filenames = NULL;
+		zp->z_minimum = USE_MINIMUM;
 	}
 	ttl = default_ttl;
 
@@ -744,7 +746,7 @@
 					zp->z_minimum = 0;
 				} else
 					zp->z_minimum = n;
-				if (default_ttl == USE_MINIMUM)
+				if (ttl == USE_MINIMUM)
 					ttl = n;
 				n = cp - (char *)data;
 				if (multiline) {
@@ -752,6 +754,7 @@
 					buf[1] = '\0';
 					if (buf[0] != ')')
 						ERRTO("SOA \")\"");
+					multiline = 0;
 					endline(fp);
 				}
                                 read_soa++;
@@ -973,7 +981,10 @@
 			case ns_t_cert:
 		        case ns_t_sig: {
 				char *errmsg = NULL;
-				int ret = parse_sec_rdata(buf, sizeof(buf), 0,
+				int ret;
+				if (ttl == USE_MINIMUM)	/* no ttl set */
+					ttl = 0;
+				ret = parse_sec_rdata(buf, sizeof(buf), 0,
 							  data, sizeof(data),
 							  fp, zp, domain, ttl,
 							  type, domain_ctx,
@@ -1024,6 +1035,8 @@
 					zp->z_origin);
 				continue;
 			}
+			if (ttl == USE_MINIMUM)	/* no ttl set */
+				ttl = 0;
 			dp = savedata(class, type, (u_int32_t)ttl,
 				      (u_char *)data, (int)n);
 			dp->d_zone = zp - zones;
> Hi 
> 
> I've discovered an interesting trick, which I am finding somewhat annoying. 
>   I've set up a couple of nameservers to serve 64.20.202.in-addr.arpa, and  
> I'd like to have that zone delegated to them.  Unfortunately, APNIC refuses 
>  to accept the delegation because the two servers give different answers to 
>  a query for the SOA record.  From the intended master, I get this (note 
> the  TTL on the SOA record): 
> 
> > [richards at bones richards]$ dig @ns1.akl.adv.net.nz 64.20.202.in-addr.arpa 
> in 
> > soa 
> >  
> > ; <<>> DiG 8.2 <<>> @ns1.akl.adv.net.nz 64.20.202.in-addr.arpa in soa  
> > ; (1 server found) 
> > ;; res options: init recurs defnam dnsrch 
> > ;; got answer: 
> > ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 
> > ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 
> ;; 
> > QUERY SECTION: ;;      64.20.202.in-addr.arpa, type = SOA, class = IN 
> >  
> > ;; ANSWER SECTION: 
> > 64.20.202.in-addr.arpa.  2D IN SOA  adv.net.nz. soa.adv.net.nz. ( 
> >                                         2000021800      ; serial 
> >                                         4d4h            ; refresh 
> >                                         1H              ; retry 
> >                                         5w6d16h         ; expiry 
> >                                         4d4h )          ; minimum 
> >  
> >  
> > ;; AUTHORITY SECTION: 
> > 64.20.202.in-addr.arpa.  2D IN NS  ns1.akl.adv.net.nz. 
> > 64.20.202.in-addr.arpa.  2D IN NS  ns2.akl.adv.net.nz. 
> > 64.20.202.in-addr.arpa.  2D IN NS  ns1.wlg.adv.net.nz. 
> > 64.20.202.in-addr.arpa.  2D IN NS  ns2.wlg.adv.net.nz. 
> >  
> > ;; ADDITIONAL SECTION: 
> > ns1.akl.adv.net.nz.     2D IN A         202.20.64.19 
> > ns2.akl.adv.net.nz.     2D IN A         202.20.64.18 
> > ns1.wlg.adv.net.nz.     1H IN A         202.49.144.2 
> > ns2.wlg.adv.net.nz.     1H IN A         202.49.144.3 
> >  
> > ;; Total query time: 1 msec 
> > ;; FROM: bones.akl.adv.net.nz to SERVER: ns1.akl.adv.net.nz  202.20.64.19 
> ;; 
> > WHEN: Fri Feb 25 12:52:43 2000 ;; MSG SIZE  sent: 40  rcvd: 234 
> 
> 
> But I get this one from the slave (again, note the TTL of the SOA record): 
> 
> > [richards at bones richards]$ dig @ns2.akl.adv.net.nz 64.20.202.in-addr.arpa 
> in 
> > soa 
> >  
> > ; <<>> DiG 8.2 <<>> @ns2.akl.adv.net.nz 64.20.202.in-addr.arpa in soa  
> > ; (1 server found) 
> > ;; res options: init recurs defnam dnsrch 
> > ;; got answer: 
> > ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 
> > ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 
> ;; 
> > QUERY SECTION: ;;      64.20.202.in-addr.arpa, type = SOA, class = IN 
> >  
> > ;; ANSWER SECTION: 
> > 64.20.202.in-addr.arpa.  4d4h IN SOA  adv.net.nz. soa.adv.net.nz. ( 
> >                                         2000021800      ; serial 
> >                                         4d4h            ; refresh 
> >                                         1H              ; retry 
> >                                         5w6d16h         ; expiry 
> >                                         4d4h )          ; minimum 
> >  
> >  
> > ;; AUTHORITY SECTION: 
> > 64.20.202.in-addr.arpa.  2D IN NS  ns1.akl.adv.net.nz. 
> > 64.20.202.in-addr.arpa.  2D IN NS  ns2.akl.adv.net.nz. 
> > 64.20.202.in-addr.arpa.  2D IN NS  ns1.wlg.adv.net.nz. 
> > 64.20.202.in-addr.arpa.  2D IN NS  ns2.wlg.adv.net.nz. 
> >  
> > ;; ADDITIONAL SECTION: 
> > ns1.akl.adv.net.nz.     2D IN A         202.20.64.19 
> > ns2.akl.adv.net.nz.     2D IN A         202.20.64.18 
> > ns1.wlg.adv.net.nz.     1H IN A         202.49.144.2 
> > ns2.wlg.adv.net.nz.     1H IN A         202.49.144.3 
> >  
> > ;; Total query time: 1 msec 
> > ;; FROM: bones.akl.adv.net.nz to SERVER: ns2.akl.adv.net.nz  202.20.64.18 
> ;; 
> > WHEN: Fri Feb 25 12:54:16 2000 ;; MSG SIZE  sent: 40  rcvd: 234 
> 
> 
> My initial thought was that the zone file wasn't being transferred  
> correctly, but that's not the case (I've pasted in both files below - from  
> the master and from the slave).  It looks as if ns1.akl.adv.net.nz is  
> ignoring the TTL specified on the SOA record in favour of the minimum TTL  
> in the SOA record itself.  Is this normal? 
> 
> Regards 
> 
> Richard 
> 
> 
> ---------- Zone file from master ---------- 
> $TTL 172800 
> 
> @		IN	SOA	adv.net.nz. soa.adv.net.nz. ( 
> 				2000021800	; serial 
> 				360000		; refresh 
> 				3600		; retry 
> 				3600000		; expire 
> 				360000		; minimum 
> 				) 
> 		IN	NS	ns1.akl.adv.net.nz. 
> 		IN	NS	ns2.akl.adv.net.nz. 
> 		IN	NS	ns1.wlg.adv.net.nz. 
> 		IN	NS	ns2.wlg.adv.net.nz. 
> 10		IN	PTR	scottie.akl.adv.net.nz. 
> 17		IN	PTR	scottie.akl.adv.net.nz. 
> 18		IN	PTR	spock.akl.adv.net.nz. 
> 19		IN	PTR	bones.akl.adv.net.nz. 
> 20		IN	PTR	sulu.akl.adv.net.nz. 
> ---------- End master zone file ---------- 
> 
> ---------- Zone file from slave ---------- 
> ; BIND version named 8.2.2-P3 Thu Nov 11 00:04:50 EST 1999 
> ; BIND version root at porky.devel.redhat.com:/usr/src/bs/BUILD/bind-
> 8.2.2_P3/src/bin/named 
> ; zone '64.20.202.in-addr.arpa'   first transfer 
> ; from 202.20.64.17:53 (local 202.20.64.18) using AXFR at Mon Feb 21 
> 10:06:25 2000 
> $ORIGIN 20.202.in-addr.arpa. 
> 64	172800	IN	SOA	adv.net.nz. soa.adv.net.nz. ( 
> 		2000021800 360000 3600 3600000 360000 ) 
> 	172800	IN	NS	ns1.akl.adv.net.nz. 
> 	172800	IN	NS	ns2.akl.adv.net.nz. 
> 	172800	IN	NS	ns1.wlg.adv.net.nz. 
> 	172800	IN	NS	ns2.wlg.adv.net.nz. 
> $ORIGIN 64.20.202.in-addr.arpa. 
> 20	172800	IN	PTR	sulu.akl.adv.net.nz. 
> 18	172800	IN	PTR	spock.akl.adv.net.nz. 
> 10	172800	IN	PTR	scottie.akl.adv.net.nz. 
> 19	172800	IN	PTR	bones.akl.adv.net.nz. 
> 17	172800	IN	PTR	scottie.akl.adv.net.nz. 
> ---------- End slave zone file ---------- 
> ------- End of forwarded message -------
> 
> 
--
Mark Andrews, Nominum Inc. / Internet Software Consortium
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark.Andrews at nominum.com



More information about the bind-users mailing list