For concreteness, these instructions assume that the name is 7.8.1.in-addr.arpa, and that you have two computers running DNS servers, the first server on IP address 1.8.7.200 and the second server on IP address 1.8.7.201.
The normal procedure has two steps. First, tell your DNS servers that they should answer questions for 7.8.1.in-addr.arpa, and that they should announce 1.8.7.200 and 1.8.7.201 as the DNS server addresses for 7.8.1.in-addr.arpa:
cd /service/tinydns/root
./add-ns 7.8.1.in-addr.arpa 1.8.7.200
./add-ns 7.8.1.in-addr.arpa 1.8.7.201
make
Second, tell the parent server administrator
to delegate 7.8.1.in-addr.arpa to
the server a.ns.7.8.1.in-addr.arpa on IP address 1.8.7.200
and the server b.ns.7.8.1.in-addr.arpa on IP address 1.8.7.201.
Fees for this delegation are typically included
in the fees for allocating the IP addresses in the first place.
Unfortunately, some parent administrators impose extra restrictions that prevent the normal procedure from working. In particular, ARIN (IP addresses in America) and RIPE (IP addresses in Europe) both insist that all their delegations be glueless. This means that the DNS servers need names outside in-addr.arpa. Gluelessness is bad practice, because it slows down DNS lookups and sometimes destroys DNS lookups, but ARIN and RIPE don't care. (Reported May 2001.)
To deal with ARIN and RIPE, edit /service/tinydns/root/data manually to specify server names in some other domain that you control, let's say x.org:
.7.8.1.in-addr.arpa:1.8.7.200:a.reversens.x.org
.7.8.1.in-addr.arpa:1.8.7.201:b.reversens.x.org
Then tell the parent server administrator
to delegate 7.8.1.in-addr.arpa to
the server a.reversens.x.org on IP address 1.8.7.200
and the server b.reversens.x.org on IP address 1.8.7.201.
APNIC (IP addresses in Asia and Australia) doesn't insist on glueless delegations, but it does insist that you set up TCP service. (Reported June 2001.)
For example, let's say you want your DNS servers on 1.8.7.200 and 1.8.7.201 to publish computer names for the IP addresses 1.2.3.144 and 1.2.3.145. The administrator of 3.2.1.in-addr.arpa should do
cd /service/tinydns/root
./add-childns 144.3.2.1.in-addr.arpa 1.8.7.200
./add-childns 144.3.2.1.in-addr.arpa 1.8.7.201
./add-childns 145.3.2.1.in-addr.arpa 1.8.7.200
./add-childns 145.3.2.1.in-addr.arpa 1.8.7.201
make
and you should do
cd /service/tinydns/root
./add-ns 144.3.2.1.in-addr.arpa 1.8.7.200
./add-ns 144.3.2.1.in-addr.arpa 1.8.7.201
./add-ns 145.3.2.1.in-addr.arpa 1.8.7.200
./add-ns 145.3.2.1.in-addr.arpa 1.8.7.201
make
to create the lines
.144.3.2.1.in-addr.arpa:1.8.7.200:a
.144.3.2.1.in-addr.arpa:1.8.7.201:b
.145.3.2.1.in-addr.arpa:1.8.7.200:a
.145.3.2.1.in-addr.arpa:1.8.7.201:b
in /service/tinydns/root/data.
Then the line
=phoenix.elysium.heaven.af.mil:1.2.3.144
will declare that phoenix.elysium.heaven.af.mil
has IP address 1.2.3.144
and that the computer name for 1.2.3.144
is phoenix.elysium.heaven.af.mil.
Beware that some in-addr.arpa administrators instead do RFC 2317 ``classless'' reverse delegation, sending your reverse domains through a single delegation:
C144.3.2.1.in-addr.arpa:144.144-145.3.2.1.in-addr.arpa
C145.3.2.1.in-addr.arpa:145.144-145.3.2.1.in-addr.arpa
&144-145.3.2.1.in-addr.arpa:1.8.7.200:a
&144-145.3.2.1.in-addr.arpa:1.8.7.201:b
# or, in BIND master zone-file format:
# 144.3.2.1.in-addr.arpa. CNAME 144.144-145.3.2.1.in-addr.arpa.
# 145.3.2.1.in-addr.arpa. CNAME 145.144-145.3.2.1.in-addr.arpa.
# 144-145.3.2.1.in-addr.arpa. NS a.ns.144-145.3.2.1.in-addr.arpa.
# 144-145.3.2.1.in-addr.arpa. NS b.ns.144-145.3.2.1.in-addr.arpa.
# a.ns.144-145.3.2.1.in-addr.arpa. A 1.8.7.200
# b.ns.144-145.3.2.1.in-addr.arpa. A 1.8.7.201
In this case your data file
should contain lines such as
.144-145.3.2.1.in-addr.arpa:1.8.7.200:a
.144-145.3.2.1.in-addr.arpa:1.8.7.201:b
=phoenix.elysium.heaven.af.mil:1.2.3.144
^144.144-145.3.2.1.in-addr.arpa:phoenix.elysium.heaven.af.mil
=bogey.elysium.heaven.af.mil:1.2.3.145
^145.144-145.3.2.1.in-addr.arpa:bogey.elysium.heaven.af.mil
using the same name 144-145.3.2.1.in-addr.arpa
selected by the parent administrator.
Normally ^ lines are unnecessary,
because they are automatically generated by = lines,
but classless reverse delegation breaks this feature.
Why would anyone want to use classless reverse delegation? Answer: If you were running BIND, you'd find it only a little bit painful to receive a classless reverse delegation (setting up one zone file), while you'd find it much more painful to receive separate reverse delegations (setting up many zone files).