Peculiarities of name resolution and Internet addressing

I’m running a server at home, serving a number of different purposes (serving this page, among other things). It’s also a DNS server. I have a problem with the fact that my .net domain provider requires both a primary and a secondary DNS server, on two different IPs.

So far I was getting by, using a router at my parent’s place, which was forwarding traffic to port 53 to my server, but it got lost in time. Mind you, presence of the second server is only checked when changes are being made to the SOA record. Right now that time has come.

There was an interesting “problem” (re)discovered at Akamai, where I currently work, that setting DNS records to point to, say 192.023.235.231 instead of 192.23.235.231 causes problems. People familiar with octal (you usually specify numerical chmod parameter this way) will recognize that the second octet is equal to 2*8+3 == 19. The error is elusive, because 007 == 7, and 100 is still 100, so not all addresses will exhibit the same behavior.
So it seems most implementations of resolver honor octal representation, because I was able to get away with the same trick at my IPS’ :).

I set the primary DNS server to 84.10.142.9 and secondary to 84.012.142.9 and the form gladly accepted the input. You can also check using ping, that it in fact works (and here it’s pretty evidently gethostbyname or inet_aton):

$ ping 84.012.142.9
PING 84.012.142.9 (84.10.142.9) 56(84) bytes of data.
64 bytes from 84.10.142.9: icmp_req=1 ttl=64 time=0.111 ms