I love understanding the background of how particular parts of Internet infrastructure evolved to be how they currently are and the particular quirks of history that shaped them that way. Last night’s spelunking was triggered by this tweet from @miekg:
Calculating why there are 13 root nameservers, based on a pkt size of 512 b. My minimum is 14.06. I miss something or they were conservative
— Miek Gieben – @miek@mastodon.cloud (@miekg) November 10, 2013
…which led him to write up his findings here.
His maths was correct, in that you could fit 14 root name servers in a 512 byte payload, and the presumption that only having 13 was mere conservatism seemed sensible .
But my mind quickly drifted onto the thought that the root name servers used to have unique names under their hosts domain (e.g. ns.nasa.gov) and hence not under root-servers.net which means that label compression saved roughly half as many bytes as is possible now with the shared domain. Those thoughts led to this confusing tweet:
@miekg there was no name compression originally, they were a sub-domain of their host.
— Martin Barry (@martinbarry) November 10, 2013
…followed up quickly with:
@miekg my mind off on a tangent, nothing wrong with your maths. The shift to common domain allowed extra 4-5 servers per packet.
— Martin Barry (@martinbarry) November 10, 2013
@miekg http://t.co/jEgAhjUmVf lists original names, but a pre 1995 hints file would be an interesting find.
— Martin Barry (@martinbarry) November 10, 2013
@miekg http://t.co/jLGOdPPuSq is interesting if a little terse and fragmented. Note the April 93 entry and the suggested fix in the next one
— Martin Barry (@martinbarry) November 10, 2013
Along with www.internic.net/domain/named.root and www.donelan.com/dnstimeline.html, another interesting link I turned up was this DNS Root Name Server FAQ and @isomer dug up an old hints file from 1993.
An interesting quote from www.isoc.org/briefings/020/ is why VeriSign operates two roots:
Q: Why has IANA given two servers to VeriSign?
A: This answer needs a little bit of history: When the number of possible letters was increased to 13, IANA asked USC ISI and Network Solutions Inc. to set up additional servers with the intention to move them to suitable operators quickly thereafter. J&K were set up at Network Solutions on the US east coast, L&M at USC ISI on the west coast. Both K and M moved further east and west respectively soon thereafter. However as time progressed, moving a server became subject of increasingly inconclusive debates. Still IANA succeeded in moving L to ICANN. Some say this worked because ICANN was in the same building as both ISI and the IANA, a physical move was not immediately required and operations could be supported by the people operating B already. 😉 More likely it succeeded because ICANN at the time was the only organisation about which at least some consensus could be achieved. After that nothing moved anymore and J remained with VeriSign who had acquired Network Solutions.
Back to my original line of thought, the choice quotes from www.donelan.com/dnstimeline.html are:
21 Apr 1993
Root server list UDP packet size limit exceeded
31 Aug 1993
Bellovin suggests using pseudo-host root.net to pack server list
and
4 Aug 1995
root-servers.net introduced into root zone ns.nasa.gov changed ip addresses ns.isc.org uses net 39 experiment address
1 Sep 1995
ns.internic.net changed to a.root-servers.net (last root-servers.net change)
Basically the old scheme hit the limits at around 8 root servers and, in order to add more, a switch to a common domain was arranged to boost the effects of label compression. Of course, there was still room for improvement:
@miekg @bortzmeyer @GavinBrown @fcambus @jpmens make a deal with Serbia and get a.rs, b.rs etc? 😛
— Martin Barry (@martinbarry) November 11, 2013