1. Technology
You can opt-out at any time. Please refer to our privacy policy for contact information.

Discuss in my forum

Bradley Mitchell

Why There Are Only 13 DNS Root Name Servers

By November 19, 2008

Follow me on:

DNS Root Servers (A through M) A reader recently inquired why the Internet Domain Name System (DNS) currently uses exactly 13 DNS servers (that happen to be named 'A', 'B', 'C', ... up to 'M') at the root of its hierarchy. There are a few possible answers to this question:
  • (a) the number 13 was chosen as a compromise between network reliability and performance
  • (b) the number 13 is based on a constraint of Internet Protocol (IP) version 4 (IPv4)
  • (c) there are actually more than 13 computers functioning as DNS root servers
So which is it?

The correct answer is (d) - all of the above.

Fitting the DNS Server List Into a Single IP Packet

Because DNS operation relies on potentially millions of other Internet servers finding the root servers at any time, the addresses for root servers must be distributable over IP as efficiently as possible. Ideally, all of these IP addresses should fit into a single packet (datagram) to avoid the overhead of sending multiple messages between servers. In the IP version 4 (IPv4) prevalent today, the DNS data that can fit inside a single packet is as small as 512 bytes (after subtracting all of the other protocol supporting information contained in packets). Each IPv4 address requires 32 bytes. Accordingly, the designers of DNS have chosen 13 as the number of root servers for IPv4, taking 416 bytes of a packet and leaving up to 96 bytes for other supporting data (and flexibility to add a few more DNS root servers in the future if needed).

IPv4 DNS vs. IPv6 DNS

Because the emerging IP version 6 standard does not have such low limits on the size of individual datagrams, expect the future DNS will over time contain many more root servers to support IPv6.

DNS Root Is Really More Than 13 Servers

Note also that while only 13 designated DNS root server names exist for IPv4, in fact each of these names represents not just a single computer but rather a server cluster consisting of many computers. This use of clustering increases the reliability of DNS without negative effect on its performance.

DNS Root Servers (A through M) - Graphic: Bradley Mitchell / About.com
Comments
October 14, 2010 at 11:29 am
(1) Bran says:

An IPv4 address is 4 bytes (32bits). Your reasoning really doesn’t look into what is involved the dns priming message, its not just a list of 13 IP addresses.

January 11, 2013 at 4:59 am
(2) Mladen says:

Bran is right… “It’s a technical limitation. UDP-based DNS messages can be up to 512 bytes long, and only 13 NS records and their corresponding A records will fit into a DNS message that size. “

September 20, 2013 at 8:06 am
(3) Azad says:

But nobody would request nowhere for the list of root servers.
I mean AFAIK, no such request type even exists, hence there would be no need to put these 13 in a DNS UDP packet!
So how it comes that they should fit into a packet?!

April 2, 2014 at 4:24 am
(4) ender says:

As above, an IPv4 is 4 bytes, so the above explanation is just wrong.

Also as above, is there any DNS request type which downloads a list of all 13 servers?

April 29, 2014 at 4:59 pm
(5) impshum says:

We all know how to create clusters. If you expect your system/app/coconuts to last on just one machine, good luck!

Now put that to the internetz.

Tis not just 13. Tis illions. Always expect drop outs.

May 15, 2014 at 8:25 pm
(6) Everette says:

Splendide article, j’espère en discuter demain avec mes potes

Leave a Comment

Line and paragraph breaks are automatic. Some HTML allowed: <a href="" title="">, <b>, <i>, <strike>

©2014 About.com. All rights reserved.