14.6 Network Names and Numbers
The original DNS definitions didn't provide the ability to look up network names based on a network numbera feature that was provided by the original HOSTS.TXT file. More recently, a procedure for storing network names has been defined; this procedure also works for subnets and subnet masks, so it goes significantly beyond HOSTS.TXT . Moreover, it doesn't require any modification to the DNS server software at all; it's based entirely on the clever use of pointer and address records.
If you remember, to map an IP address to a name in DNS, you reverse the IP address, append in-addr.arpa , and look up the PTR data. This same technique is used to map a network number to a network name; for example, to map network 126.96.36.199 to "HP Internet." To look up the network number, include the trailing zeros to make it four bytes and look up PTR data just as you would with a host's IP address. For example, to find the network name for the old ARPANET, network 10.0.0.0, look up PTR data for 0.0.0.10.in-addr.arpa . You'd get back an answer like ARPANET.ARPA .
If the ARPANET were subnetted , you'd also find an address record at 0.0.0.10.in-addr.arpa . The address would be the subnet mask (255.255.0.0, for instance). If you were interested in the subnet name instead of the network name, you'd apply the mask to the IP address and look up the subnet number.
This technique allows you to map the network number to a name. To provide a complete solution, there must be a way to map a network name to its network number. This, again, is accomplished with PTR records. The network name has PTR data that points to the network number ( reversed , with in-addr.arpa appended).
Let's see what the data might look like in HP's zone data files (the HP Internet has network number 188.8.131.52) and step through mapping a network number to a network name.
Here are the partial contents of the hp.com.dns file:
; ; Map HP's network name to 184.108.40.206. ; hp-net.hp.com. IN PTR 0.0.0.15.in-addr.arpa.
Following are the partial contents of the corp.hp.com.dns file:
; ; Map corp's subnet name to 220.127.116.11. ; corp-subnet.corp.hp.com. IN PTR 0.0.1.15.in-addr.arpa.
Here are the partial contents of the 15.in-addr.arpa.dns file:
; ; Map 18.104.22.168 to hp-net.hp.com. ; HP's subnet mask is 255.255.248.0. ; 0.0.0.15.in-addr.arpa. IN PTR hp-net.hp.com. IN A 255.255.248.0
And here are the partial contents of the 1.15.in-addr.arpa.dns file:
; ; Map the 22.214.171.124 back to its subnet name. ; 0.0.1.15.in-addr.arpa. IN PTR corp-subnet.corp.hp.com.
Here's the procedure to look up the subnet name for the IP address 126.96.36.199:
Apply the default network mask for the address's class. Address 188.8.131.52 is a Class A address, so the mask is 255.0.0.0. Applying the mask to the IP address makes the network number 15.
Send a query ( type=a or type=any ) for 0.0.0.15.in-addr.arpa .
The query response contains address data. Since address data is at 0.0.0.15.in-addr.arpa (the subnet mask?184.108.40.206), apply the subnet mask to the IP address. This yields 220.127.116.11.
Send a query ( type=a or type=any ) for 0.0.1.15.in-addr.arpa .
The query response does not contain address data, so 18.104.22.168 is not further subnetted.
Send a PTR query for 0.0.1.15.in-addr.arpa .
The query response contains the network name for 22.214.171.124: corp-subnet.corp.hp.com .
In addition to mapping between network names and numbers, you can also list all the networks for your domain with PTR records:
movie.edu. IN PTR 0.249.249.192.in-addr.arpa. IN PTR 0.253.253.192.in-addr.arpa.
Now for the bad news: despite the fact that RFC 1101 contains everything you need to know to set this up, we know of only one software package that actually uses this type of network name encoding, and very few administrators go to the trouble of adding this information. Until software actually makes use of DNS-encoded network names, about the only reason for setting this up is to show off. But that's a good enough reason for many of us.