mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
3180. [func] Local copies of slave zones are now saved in raw
format by default, to improve startup performance. 'masterfile-format text;' can be used to override the default, if desired. [RT #25867]
This commit is contained in:
5
CHANGES
5
CHANGES
@@ -1,3 +1,8 @@
|
|||||||
|
3180. [func] Local copies of slave zones are now saved in raw
|
||||||
|
format by default, to improve startup performance.
|
||||||
|
'masterfile-format text;' can be used to override
|
||||||
|
the default, if desired. [RT #25867]
|
||||||
|
|
||||||
3179. [port] kfreebsd: build issues. [RT #26273]
|
3179. [port] kfreebsd: build issues. [RT #26273]
|
||||||
|
|
||||||
3178. [bug] A race condition introduced by change #3163 could
|
3178. [bug] A race condition introduced by change #3163 could
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: zoneconf.c,v 1.184 2011/10/12 00:10:19 marka Exp $ */
|
/* $Id: zoneconf.c,v 1.185 2011/10/26 15:23:36 each Exp $ */
|
||||||
|
|
||||||
/*% */
|
/*% */
|
||||||
|
|
||||||
@@ -909,6 +909,9 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||||||
return (ISC_R_FAILURE);
|
return (ISC_R_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ztype == dns_zone_slave)
|
||||||
|
masterformat = dns_masterformat_raw;
|
||||||
|
else
|
||||||
masterformat = dns_masterformat_text;
|
masterformat = dns_masterformat_text;
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
result= ns_config_get(maps, "masterfile-format", &obj);
|
result= ns_config_get(maps, "masterfile-format", &obj);
|
||||||
|
@@ -14,10 +14,12 @@
|
|||||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
# PERFORMANCE OF THIS SOFTWARE.
|
# PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
# $Id: clean.sh,v 1.5 2007/09/26 03:22:44 marka Exp $
|
# $Id: clean.sh,v 1.6 2011/10/26 15:23:36 each Exp $
|
||||||
|
|
||||||
rm -f named-compilezone
|
rm -f named-compilezone
|
||||||
rm -f ns1/example.db.raw
|
rm -f ns1/example.db.raw
|
||||||
rm -f ns2/example.db
|
rm -f ns2/example.db
|
||||||
rm -f dig.out.*
|
rm -f dig.out.*
|
||||||
rm -f */named.memstats
|
rm -f */named.memstats
|
||||||
|
rm -f ns2/transfer.db.*
|
||||||
|
rm -f ns2/formerly-text.db
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: named.conf,v 1.4 2007/06/19 23:47:04 tbox Exp $ */
|
/* $Id: named.conf,v 1.5 2011/10/26 15:23:36 each Exp $ */
|
||||||
|
|
||||||
// NS1
|
// NS1
|
||||||
|
|
||||||
@@ -23,6 +23,7 @@ controls { /* empty */ };
|
|||||||
options {
|
options {
|
||||||
pid-file "named.pid";
|
pid-file "named.pid";
|
||||||
listen-on port 5300 { 10.53.0.1; };
|
listen-on port 5300 { 10.53.0.1; };
|
||||||
|
port 5300;
|
||||||
listen-on-v6 { none; };
|
listen-on-v6 { none; };
|
||||||
recursion no;
|
recursion no;
|
||||||
notify no;
|
notify no;
|
||||||
@@ -34,3 +35,21 @@ zone "example" {
|
|||||||
masterfile-format raw;
|
masterfile-format raw;
|
||||||
file "example.db.raw";
|
file "example.db.raw";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
zone "transfer1" {
|
||||||
|
type master;
|
||||||
|
file "example.db";
|
||||||
|
allow-transfer { any; };
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "transfer2" {
|
||||||
|
type master;
|
||||||
|
file "example.db";
|
||||||
|
allow-transfer { any; };
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "transfer3" {
|
||||||
|
type master;
|
||||||
|
file "example.db";
|
||||||
|
allow-transfer { any; };
|
||||||
|
};
|
||||||
|
37
bin/tests/system/masterformat/ns2/formerly-text.db.in
Normal file
37
bin/tests/system/masterformat/ns2/formerly-text.db.in
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
$ORIGIN .
|
||||||
|
$TTL 86400 ; 1 day
|
||||||
|
transfer3 IN SOA ns.transfer3. hostmaster.transfer3. (
|
||||||
|
1 ; serial
|
||||||
|
3600 ; refresh (1 hour)
|
||||||
|
1800 ; retry (30 minutes)
|
||||||
|
1814400 ; expire (3 weeks)
|
||||||
|
3 ; minimum (3 seconds)
|
||||||
|
)
|
||||||
|
NS ns.transfer3.
|
||||||
|
$ORIGIN transfer3.
|
||||||
|
a A 10.53.0.1
|
||||||
|
A 10.53.0.2
|
||||||
|
aaaa AAAA 2001:db8::53
|
||||||
|
cname CNAME cname-target
|
||||||
|
dname DNAME dname-target
|
||||||
|
$TTL 300 ; 5 minutes
|
||||||
|
dnskey DNSKEY 256 3 1 (
|
||||||
|
AQPTpWyReB/e9Ii6mVGnakS8hX2zkh/iUYAg+Ge4noWR
|
||||||
|
OpTWOIBvm76zeJPWs4Zfqa1IsswDIx5Mqeg0zwclz59u
|
||||||
|
ecKsKyx5w9IhtZ8plc4Rb9VIE5x7KNHAYTvTO5d4S8M=
|
||||||
|
) ; ZSK; alg = RSAMD5; key id = 30795
|
||||||
|
ds DS 30795 1 1 (
|
||||||
|
310D27F4D82C1FC2400704EA9939FE6E1CEAA3B9 )
|
||||||
|
$TTL 86400 ; 1 day
|
||||||
|
mx MX 10 mail
|
||||||
|
ns A 10.53.0.1
|
||||||
|
$TTL 600 ; 10 minutes
|
||||||
|
nsec NSEC nsecnext.transfer3. NS DS RRSIG NSEC
|
||||||
|
$TTL 300 ; 5 minutes
|
||||||
|
rrsig RRSIG SOA 1 0 300 (
|
||||||
|
20050714214747 20050614214747 30795 .
|
||||||
|
yi/RRPAQmn6rnjDQaCqVValBa+ICF00ZldKfZSDaoew5
|
||||||
|
mMUh83DlrrPPNeAxrzMSNzDGlJ6PfdyIFgzPn/CvthF4
|
||||||
|
kjBUAiJTp4r2zhlaUJQ+QFo+drYXYgVJo6aA36fj )
|
||||||
|
$TTL 86400 ; 1 day
|
||||||
|
txt TXT "this is text"
|
@@ -14,7 +14,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: named.conf,v 1.4 2007/06/19 23:47:04 tbox Exp $ */
|
/* $Id: named.conf,v 1.5 2011/10/26 15:23:37 each Exp $ */
|
||||||
|
|
||||||
// NS2
|
// NS2
|
||||||
|
|
||||||
@@ -24,6 +24,7 @@ options {
|
|||||||
pid-file "named.pid";
|
pid-file "named.pid";
|
||||||
listen-on port 5300 { 10.53.0.2; };
|
listen-on port 5300 { 10.53.0.2; };
|
||||||
listen-on-v6 { none; };
|
listen-on-v6 { none; };
|
||||||
|
port 5300;
|
||||||
recursion no;
|
recursion no;
|
||||||
notify no;
|
notify no;
|
||||||
dnssec-enable yes;
|
dnssec-enable yes;
|
||||||
@@ -33,3 +34,22 @@ zone "example" {
|
|||||||
type master;
|
type master;
|
||||||
file "example.db";
|
file "example.db";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
zone "transfer1" {
|
||||||
|
type slave;
|
||||||
|
masters { 10.53.0.1; };
|
||||||
|
file "transfer.db.raw";
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "transfer2" {
|
||||||
|
type slave;
|
||||||
|
masters { 10.53.0.1; };
|
||||||
|
masterfile-format text;
|
||||||
|
file "transfer.db.txt";
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "transfer3" {
|
||||||
|
type slave;
|
||||||
|
masters { 10.53.0.1; };
|
||||||
|
file "formerly-text.db";
|
||||||
|
};
|
||||||
|
@@ -12,9 +12,10 @@
|
|||||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
# PERFORMANCE OF THIS SOFTWARE.
|
# PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
# $Id: setup.sh,v 1.6 2007/06/19 23:47:04 tbox Exp $
|
# $Id: setup.sh,v 1.7 2011/10/26 15:23:36 each Exp $
|
||||||
|
|
||||||
ln -s $CHECKZONE named-compilezone
|
ln -s $CHECKZONE named-compilezone
|
||||||
rm -f ns1/example.db.raw
|
rm -f ns1/example.db.raw
|
||||||
cp ns1/example.db ns2/
|
cp ns1/example.db ns2/
|
||||||
|
cp ns2/formerly-text.db.in ns2/formerly-text.db
|
||||||
cd ns1 && sh compile.sh
|
cd ns1 && sh compile.sh
|
||||||
|
@@ -1,46 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright (C) 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
# Copyright (C) 2005, 2007, 2011 Internet Systems Consortium, Inc. ("ISC")
|
||||||
#
|
|
||||||
# Permission to use, copy, modify, and/or distribute this software for any
|
|
||||||
# purpose with or without fee is hereby granted, provided that the above
|
|
||||||
# copyright notice and this permission notice appear in all copies.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
|
||||||
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
||||||
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
||||||
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
||||||
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
||||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
# PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
|
|
||||||
# $Id: tests.sh,v 1.4 2007/06/19 23:47:04 tbox Exp $
|
|
||||||
|
|
||||||
SYSTEMTESTTOP=..
|
|
||||||
. $SYSTEMTESTTOP/conf.sh
|
|
||||||
|
|
||||||
DIGOPTS="+tcp +noauth +noadd +nosea +nostat +noquest +nocomm +nocmd"
|
|
||||||
|
|
||||||
status=0
|
|
||||||
|
|
||||||
echo "I:checking that master file in the raw format worked"
|
|
||||||
|
|
||||||
for server in 1 2
|
|
||||||
do
|
|
||||||
for name in ns mx a aaaa cname dname txt rrsig nsec dnskey ds
|
|
||||||
do
|
|
||||||
$DIG $DIGOPTS $name.example. $name @10.53.0.$server -p 5300
|
|
||||||
echo
|
|
||||||
done > dig.out.$server
|
|
||||||
done
|
|
||||||
|
|
||||||
diff dig.out.1 dig.out.2 || status=1
|
|
||||||
|
|
||||||
echo "I:exit status: $status"
|
|
||||||
exit $status
|
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Copyright (C) 2005 Internet Systems Consortium, Inc. ("ISC")
|
|
||||||
#
|
#
|
||||||
# Permission to use, copy, modify, and distribute this software for any
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
# purpose with or without fee is hereby granted, provided that the above
|
# purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -54,17 +14,24 @@ exit $status
|
|||||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
# PERFORMANCE OF THIS SOFTWARE.
|
# PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
# $Id: tests.sh,v 1.4 2007/06/19 23:47:04 tbox Exp $
|
# $Id: tests.sh,v 1.5 2011/10/26 15:23:36 each Exp $
|
||||||
|
|
||||||
SYSTEMTESTTOP=..
|
SYSTEMTESTTOP=..
|
||||||
. $SYSTEMTESTTOP/conf.sh
|
. $SYSTEMTESTTOP/conf.sh
|
||||||
|
|
||||||
|
israw () {
|
||||||
|
cat $1 | perl -e '$input = <STDIN>;
|
||||||
|
($style, $version) = unpack("NN", $input);
|
||||||
|
exit 1 if ($style != 2 || $version != 0);'
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
DIGOPTS="+tcp +noauth +noadd +nosea +nostat +noquest +nocomm +nocmd"
|
DIGOPTS="+tcp +noauth +noadd +nosea +nostat +noquest +nocomm +nocmd"
|
||||||
|
|
||||||
status=0
|
status=0
|
||||||
|
|
||||||
echo "I:checking that master file in the raw format worked"
|
echo "I:checking that master file in the raw format worked"
|
||||||
|
ret=0
|
||||||
for server in 1 2
|
for server in 1 2
|
||||||
do
|
do
|
||||||
for name in ns mx a aaaa cname dname txt rrsig nsec dnskey ds
|
for name in ns mx a aaaa cname dname txt rrsig nsec dnskey ds
|
||||||
@@ -73,8 +40,30 @@ do
|
|||||||
echo
|
echo
|
||||||
done > dig.out.$server
|
done > dig.out.$server
|
||||||
done
|
done
|
||||||
|
$PERL ../digcomp.pl dig.out.1 dig.out.2 || ret=1
|
||||||
|
[ $ret -eq 0 ] || echo "I:failed"
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
diff dig.out.1 dig.out.2 || status=1
|
echo "I:waiting for transfers to complete"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
echo "I:checking that slave was saved in raw format by default"
|
||||||
|
ret=0
|
||||||
|
israw ns2/transfer.db.raw || ret=1
|
||||||
|
[ $ret -eq 0 ] || echo "I:failed"
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
|
echo "I:checking that slave was saved in text format when configured"
|
||||||
|
ret=0
|
||||||
|
israw ns2/transfer.db.txt && ret=1
|
||||||
|
[ $ret -eq 0 ] || echo "I:failed"
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
|
echo "I:checking that slave formerly in text format is now raw"
|
||||||
|
ret=0
|
||||||
|
israw ns2/formerly-text.db || ret=1
|
||||||
|
[ $ret -eq 0 ] || echo "I:failed"
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
echo "I:exit status: $status"
|
echo "I:exit status: $status"
|
||||||
exit $status
|
exit $status
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: named.conf,v 1.13 2011/09/02 02:25:07 marka Exp $ */
|
/* $Id: named.conf,v 1.14 2011/10/26 15:23:37 each Exp $ */
|
||||||
|
|
||||||
controls { /* empty */ };
|
controls { /* empty */ };
|
||||||
|
|
||||||
@@ -43,5 +43,6 @@ zone "nomaster" {
|
|||||||
type slave;
|
type slave;
|
||||||
file "nomaster1.db";
|
file "nomaster1.db";
|
||||||
allow-update-forwarding { any; };
|
allow-update-forwarding { any; };
|
||||||
|
masterfile-format text;
|
||||||
masters { 10.53.0.4; };
|
masters { 10.53.0.4; };
|
||||||
};
|
};
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
# PERFORMANCE OF THIS SOFTWARE.
|
# PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
# $Id: setup.pl,v 1.14 2007/06/19 23:47:07 tbox Exp $
|
# $Id: setup.pl,v 1.15 2011/10/26 15:23:37 each Exp $
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set up test data for zone transfer quota tests.
|
# Set up test data for zone transfer quota tests.
|
||||||
@@ -28,7 +28,7 @@ my $slaveconf = new FileHandle("ns2/zones.conf", "w") or die;
|
|||||||
for ($z = 0; $z < 300; $z++) {
|
for ($z = 0; $z < 300; $z++) {
|
||||||
my $zn = sprintf("zone%06d.example", $z);
|
my $zn = sprintf("zone%06d.example", $z);
|
||||||
print $masterconf "zone \"$zn\" { type master; file \"$zn.db\"; };\n";
|
print $masterconf "zone \"$zn\" { type master; file \"$zn.db\"; };\n";
|
||||||
print $slaveconf "zone \"$zn\" { type slave; file \"$zn.bk\"; masters { 10.53.0.1; }; };\n";
|
print $slaveconf "zone \"$zn\" { type slave; file \"$zn.bk\"; masterfile-format text; masters { 10.53.0.1; }; };\n";
|
||||||
my $fn = "ns1/$zn.db";
|
my $fn = "ns1/$zn.db";
|
||||||
my $f = new FileHandle($fn, "w") or die "open: $fn: $!";
|
my $f = new FileHandle($fn, "w") or die "open: $fn: $!";
|
||||||
print $f "\$TTL 300
|
print $f "\$TTL 300
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
- PERFORMANCE OF THIS SOFTWARE.
|
- PERFORMANCE OF THIS SOFTWARE.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- File: $Id: Bv9ARM-book.xml,v 1.507 2011/10/25 01:54:21 marka Exp $ -->
|
<!-- File: $Id: Bv9ARM-book.xml,v 1.508 2011/10/26 15:23:37 each Exp $ -->
|
||||||
<book xmlns:xi="http://www.w3.org/2001/XInclude">
|
<book xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||||
<title>BIND 9 Administrator Reference Manual</title>
|
<title>BIND 9 Administrator Reference Manual</title>
|
||||||
|
|
||||||
@@ -8828,9 +8828,14 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
|
|||||||
the file format of zone files (see
|
the file format of zone files (see
|
||||||
<xref linkend="zonefile_format"/>).
|
<xref linkend="zonefile_format"/>).
|
||||||
The default value is <constant>text</constant>, which is the
|
The default value is <constant>text</constant>, which is the
|
||||||
standard textual representation. Files in other formats
|
standard textual representation, except for slave zones,
|
||||||
than <constant>text</constant> are typically expected
|
in which the default value is <constant>raw</constant>.
|
||||||
to be generated by the <command>named-compilezone</command> tool.
|
Files in other formats than <constant>text</constant> are
|
||||||
|
typically expected to be generated by the
|
||||||
|
<command>named-compilezone</command> tool, or dumped by
|
||||||
|
<command>named</command>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
Note that when a zone file in a different format than
|
Note that when a zone file in a different format than
|
||||||
<constant>text</constant> is loaded, <command>named</command>
|
<constant>text</constant> is loaded, <command>named</command>
|
||||||
may omit some of the checks which would be performed for a
|
may omit some of the checks which would be performed for a
|
||||||
|
Reference in New Issue
Block a user