1999-11-30 02:43:11 +00:00
|
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
|
|
|
<HTML>
|
|
|
|
|
<HEAD>
|
|
|
|
|
<TITLE>Master File Format</TITLE>
|
|
|
|
|
</HEAD>
|
|
|
|
|
|
|
|
|
|
<BODY>
|
|
|
|
|
<H2>BIND Configuration Guide -- Master File Format</H2>
|
|
|
|
|
|
|
|
|
|
<HR>
|
|
|
|
|
|
|
|
|
|
<P>
|
|
|
|
|
The Master File Format was initially defined in
|
2000-10-31 14:17:05 +00:00
|
|
|
|
<A HREF=http://www.ietf.org/rfc/rfc1035.txt>RFC 1035</A>
|
1999-11-30 02:43:11 +00:00
|
|
|
|
and has subsequently been extended.
|
|
|
|
|
<P>
|
|
|
|
|
While the Master File Format is class independent all records in a
|
|
|
|
|
Master File must be of the same class.
|
|
|
|
|
|
|
|
|
|
<H3>Master File Directives</H3>
|
|
|
|
|
<H4>$ORIGIN</H4>
|
|
|
|
|
Syntax: <CODE>$ORIGIN <domain-name> [<comment>]</CODE>
|
|
|
|
|
<P>
|
|
|
|
|
<CODE>$ORIGIN</CODE> set the domain name that will be appended to any
|
|
|
|
|
unqualified records.
|
|
|
|
|
When a zone is first read in there is an implict <CODE>$ORIGIN</CODE>
|
|
|
|
|
<zone-name>.
|
|
|
|
|
The current <CODE>$ORIGIN</CODE> is appended to the domain specified in the
|
|
|
|
|
<CODE>$ORIGIN</CODE> argument if it is not absolute.
|
|
|
|
|
|
|
|
|
|
<PRE>
|
|
|
|
|
$ORIGIN EXAMPLE.
|
|
|
|
|
$ORIGIN MYZONE
|
|
|
|
|
WWW CNAME MAIN-SERVER
|
|
|
|
|
</PRE>
|
|
|
|
|
is equivlent to
|
|
|
|
|
<PRE>
|
|
|
|
|
WWW.MYZONE.EXAMPLE. CNAME MAIN-SERVER.MYZONE.EXAMPLE.
|
|
|
|
|
</PRE>
|
|
|
|
|
|
|
|
|
|
<H4>$INCLUDE</H4>
|
|
|
|
|
Syntax: <CODE>$INCLUDE <filename> [<origin>] [<comment>]</CODE>
|
|
|
|
|
<P>
|
|
|
|
|
Read and process the file filename as if it was included into the file at this
|
|
|
|
|
point.<2E> If origin is specified the file is processed with <CODE>$ORIGIN</CODE>
|
|
|
|
|
set to that value otherwise the current <CODE>$ORIGIN</CODE> is used.
|
|
|
|
|
<I>NOTE: The behaviour when <origin> is specified differs from that
|
|
|
|
|
described in
|
2000-10-31 14:17:05 +00:00
|
|
|
|
<A HREF=http://www.ietf.org/rfc/rfc1035.txt>RFC 1035</A>.</I>
|
1999-11-30 02:43:11 +00:00
|
|
|
|
<P>
|
|
|
|
|
The origin and current domain revert to the values they were prior to the
|
|
|
|
|
<CODE>$INCLUDE</CODE> once the file has been read.
|
|
|
|
|
<H4>$TTL</H4>
|
|
|
|
|
Syntax: <CODE>$TTL <default-ttl> [<comment>]</CODE>
|
|
|
|
|
<P>
|
|
|
|
|
Set the default Time To Live (TTL) for subsequent records with undefined
|
|
|
|
|
TTL's. Valid TTL's are of the range 0-2147483647.
|
|
|
|
|
<P>
|
|
|
|
|
<CODE>$TTL</CODE> is defined in
|
2000-10-31 14:17:05 +00:00
|
|
|
|
<A HREF=http://www.ietf.org/rfc/rfc2308.txt>RFC 2308</A>.
|
1999-11-30 02:43:11 +00:00
|
|
|
|
<H3>BIND Master File Extentions</H3>
|
|
|
|
|
<H4>$GENERATE</H4>
|
|
|
|
|
Syntax: <CODE>$GENERATE <range> <lhs> <type> <rhs>
|
|
|
|
|
[<comment>]</CODE>
|
|
|
|
|
<P>
|
|
|
|
|
<CODE>$GENERATE</CODE> is used to create a series of resource records
|
|
|
|
|
that only differ from each other by an iterator. <CODE>$GENERATE</CODE>
|
|
|
|
|
can be used to easily generate the sets of records required to support
|
|
|
|
|
sub /24 reverse delegations described in
|
2000-10-31 14:17:05 +00:00
|
|
|
|
<A HREF=http://www.ietf.org/rfc/rfc2317.txt>RFC 2317: Classless IN-ADDR.ARPA delegation</A>.
|
1999-11-30 02:43:11 +00:00
|
|
|
|
|
|
|
|
|
<PRE>
|
|
|
|
|
$ORIGIN 0.0.192.IN-ADDR.ARPA.
|
|
|
|
|
$GENERATE 1-2 0 NS SERVER$.EXAMPLE.
|
|
|
|
|
$GENERATE 1-127 $ CNAME $.0
|
|
|
|
|
</PRE>
|
|
|
|
|
is equivalent to
|
|
|
|
|
<PRE>
|
|
|
|
|
0.0.0.192.IN-ADDR.ARPA NS SERVER1.EXAMPLE.
|
|
|
|
|
0.0.0.192.IN-ADDR.ARPA NS SERVER2.EXAMPLE.
|
|
|
|
|
1.0.0.192.IN-ADDR.ARPA CNAME 1.0.0.0.192.IN-ADDR.ARPA.
|
|
|
|
|
2.0.0.192.IN-ADDR.ARPA CNAME 2.0.0.0.192.IN-ADDR.ARPA.
|
|
|
|
|
...
|
|
|
|
|
127.0.0.192.IN-ADDR.ARPA CNAME 127.0.0.0.192.IN-ADDR.ARPA.
|
|
|
|
|
</PRE>
|
|
|
|
|
<DL>
|
|
|
|
|
<DT>range</DT>
|
|
|
|
|
<DD>
|
|
|
|
|
This can be one of two forms:
|
|
|
|
|
<I>start</I>-<I>stop</I>
|
|
|
|
|
or
|
|
|
|
|
<I>start</I>-<I>stop</I>/<I>step</I>. If the first form is
|
|
|
|
|
used then step is set to 1. All of start, stop and step must be positive.
|
|
|
|
|
<DT>lhs</DT>
|
|
|
|
|
<DD>
|
|
|
|
|
Lhs describes the owner name of the resource records to be created.
|
|
|
|
|
Any single $ symbols within the LHS side are replaced by the iterator value.
|
|
|
|
|
To get a $ in the output use \$. If the lhs is not absolute
|
|
|
|
|
the current $ORIGIN is appended to the name, when appropriate.
|
|
|
|
|
You can also apply an offset to the iterator by using ${offset} where
|
|
|
|
|
offset is a decimal value to add to the iterator.
|
|
|
|
|
And you can also change the format of the iterator by using a printf
|
|
|
|
|
like string. The format is ${offset,width,radix} where offset is as before
|
|
|
|
|
(use 0 for no change), width is the minimum field width (always zero padded)
|
|
|
|
|
radix is one of d, o, x, or X to change the radix to decimal, octal, hex, or hex
|
|
|
|
|
with capital letters.
|
|
|
|
|
The default is ${0,1,d}.
|
|
|
|
|
For example: ${16,3} will add 16 to the iterator and be replaced by
|
|
|
|
|
a 3 digit decimal representation. ${0,2,x} will be replaced by a 2 digit
|
|
|
|
|
hex representation. To get a { character inserted into the text
|
|
|
|
|
immediately after the iterator, use $\{.
|
|
|
|
|
<DT>type</DT>
|
|
|
|
|
<DD>
|
|
|
|
|
At present the only supported types are A, AAAA, PTR, CNAME and NS.
|
|
|
|
|
<DT>rhs</DT>
|
|
|
|
|
<DD>
|
|
|
|
|
Rhs is the data. It is processed similarly to the lhs.
|
|
|
|
|
<DD>
|
|
|
|
|
</DL>
|
|
|
|
|
<H2>Resource Records</H2>
|
|
|
|
|
Syntax: <CODE>{<domain>|@|<blank>}
|
|
|
|
|
[<ttl>] [<class>] <type> <rdata>
|
|
|
|
|
[<comment>]</CODE>
|
|
|
|
|
<P>
|
|
|
|
|
All resource records have the same basic syntax.
|
|
|
|
|
<DL>
|
|
|
|
|
<DT><CODE>domain</CODE></DT>
|
|
|
|
|
<DD>
|
|
|
|
|
Specify the domain name for this record. If it is not absolute the
|
|
|
|
|
current <CODE>$ORIGIN</CODE> is appended.
|
|
|
|
|
<DT><CODE>@</CODE></DT>
|
|
|
|
|
<DD>
|
|
|
|
|
Use the current <CODE>$ORIGIN</CODE> for the domain name for this record.
|
|
|
|
|
<DT><CODE>blank</CODE></DT>
|
|
|
|
|
<DD>
|
|
|
|
|
Use the last specified domainname.
|
|
|
|
|
<DT><CODE>ttl</CODE></DT>
|
|
|
|
|
<DD>
|
|
|
|
|
This specifies how long this record will be cached by caching servers.
|
|
|
|
|
The valid range is 0-2147483647.
|
|
|
|
|
<DT><CODE>class</CODE></DT>
|
|
|
|
|
<DD>
|
|
|
|
|
Specify the class of this record. This is usually redundent as the
|
|
|
|
|
class of a zone is specfied in the configuration file prior to reading
|
|
|
|
|
the zone file.
|
|
|
|
|
<DT><CODE>type</CODE></DT>
|
|
|
|
|
<DD>
|
|
|
|
|
Specify the type of this record. This describes the contents of the rdata
|
|
|
|
|
section.
|
|
|
|
|
<DT><CODE>rdata</CODE></DT>
|
|
|
|
|
<DD>
|
|
|
|
|
This is the value of the resource record.
|
|
|
|
|
</DL>
|
|
|
|
|
<H2>Time Values: Alternate Specification format (BIND Enhancement)</H2>
|
|
|
|
|
<P>
|
|
|
|
|
Many time values within the MASTER file may be specified in multiples
|
|
|
|
|
of weeks, days, hours, minutes and seconds rather than just seconds.
|
|
|
|
|
<P>
|
|
|
|
|
The format for this is <CODE>#w#d#h#m#s</CODE>. To specify 1 week you would
|
|
|
|
|
use <CODE>1w</CODE> or two weeks and 1 hour <CODE>2w1h</CODE>.
|
|
|
|
|
<P>
|
|
|
|
|
This format applies to TTL values, and SOA REFRESH, RETRY, EXPIRE and MINIMUM
|
|
|
|
|
values.
|
|
|
|
|
</P>
|
|
|
|
|
</BODY>
|
|
|
|
|
</HTML>
|