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 makeSecond, 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.orgThen 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 makeand 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 maketo 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:bin /service/tinydns/root/data. Then the line
=phoenix.elysium.heaven.af.mil:1.2.3.144will 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.201In 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.milusing 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).