This study, commissioned by Infoblox, is designed to answer the following questions:
For this dataset, we probed a sample of all IPv4 addresses in use on the Internet. Since we don't want to probe addresses that are not in use, we began with a snapshot of the global routing table taken from the Route Views project. Enumerating the advertised address space (and eliminating addresses that end with .0 and .255) results in 1,768,024,077 addresses. Next we randomly selected 5% of these for our survey, leaving us with 88,388,634 addresses to probe.
This dataset contains the nameservers authoritative for the zones in dataset III. We treat this as a separate dataset because here we are specifically interested in characteristics of authoritative nameservers, rather than zones or caching resolvers. Sometimes a nameserver IP address has many names. There are 368,333 distinct nameserver names in this set, and 251,898 distinct nameserver IP addresses.
This dataset is used to characterize the adoption of new technologies in the DNS, namely IPv6, DNSSEC, and SPF. To do so, we start with a sample of second-level domains in the COM and NET zones. We received a copy of the COM and NET zones from Verisign. Together they contain 83,889,164 second-level domains. We choose a random subset comprising 2,703,764 domains for this part of the survey.
Note that results based on this dataset are reported on a per-zone basis.
We sent a simple DNS query to each probe address in Dataset I. The query asks for the IPv4 address of a.root-servers.net, and has the RD bit set. A response indicates that there is a DNS server listening on the probe address. We did not implement timeouts and retransmission, so packet loss may affect these measurements. Queries and responses were logged with tcpdump. The following table summarizes the number of queries and replies:
Note that some addresses sent back more than one reply, even though we sent only one query. This happens either because the probe address actually sends multiple responses for a single query, or because the reply source address may be different than the query destination address. We suspect that some ISPs intercept incoming DNS queries and forward them to a central server, but the server responds from its own address.
For each nameserver found, we attempted to determine its software and version with two techniques. The first is to send a version.bind query to the address. The second is to use the fpdns tool to fingerprint the server.
The version.bind technique is simple because it is a single query/response. A BIND nameserver answers the query honestly unless the administrator has configured it to return a specific answer. Many people feel safer by obscuring the nameserver version string.
Since the version.bind answer cannot always be trusted, we also use fpdns to try to determine the software version. fpdns sends a number of different queries to a nameserver and uses known quirks and behavior to deduce the version. One downside is that fpdns can not always give specific answers. For example, it might say the software is "BIND 8.3.0-RC1 -- 8.4.4"
We give the fpdns result priority over version.bind if both return an answer. Otherwise, we assume the version.bind answer is correct if it looks like a version string. The following table shows the breakdown of common software and versions based on our analysis.
|Nominum CNS/Embedded Linux*||74,559||19.29%|
|Microsoft Windows DNS 2000||6,967||1.80%|
|Microsoft Windows DNS 2003||3,232||0.84%|
|Microsoft Windows DNS NT4||394||0.10%|
Note that 199,820 additional nameservers could not be identified. The percentages in the above table are based on the number of nameservers that could be identified.
*fpdns seems to have trouble telling the difference between certain embedded Linux devices and Nominum CNS.
To test for open recursors we send the nameserver a query for a name in a zone that we control. The query contains elements that uniquely identify the target nameserver. If our authoritative nameserver receives the forwarded query, we say that the target is an open resolver.
We found 805,508 open resolvers in this dataset. Extrapolating to the entire address space, we estimate that there are 16,000,000 open resolvers on the Internet.
Interestingly, we found more open resolvers, than "nameservers," in Dataset I. One reason is that we have different techniques for counting each kind. To find a nameserver we send a query for a.root-servers.net and look for a response. To count open resolvers, we send a query for a zone that we own and then look for the forwarded query at our authoritative nameserver. For reasons that we don't yet know, there are more hosts that will forward a DNS query than will reply to it. We are still investigating.
One interesting characteristic about the open resolvers is that many of them, 50% in fact, will forward our query to the authoritative nameserver, but will not forward the reply back to the client. This complicates our efforts to fingerprint these resolvers.
Another interesting characteristic is that the query hitting our authoritative nameserver does not come from the probe address. Most of the open resolvers first forward the query to a locally-configured caching resolver. Our authoritative nameserver received queries from only 70,783 distinct IP addresses.
The following table shows the software running on open resolvers. As seen below, we were unable to determine the software for most of the open resolver addresses:
|Microsoft Windows DNS 2000||6,282||0.8%|
|Microsoft Windows DNS 2003||2,724||0.3%|
|Viking DNS module||607||0.1%|
|Microsoft Windows DNS NT4||360||0.0%|
Here, we use the same fingerprinting technique as we did for dataset I. i.e., fpdns and then version.bind. The following table shows the software versions for authoritative nameservers:
|Microsoft Windows DNS 2000||8,741||4.60%|
|Microsoft Windows DNS 2003||1,101||0.58%|
|Microsoft Windows DNS NT4||514||0.27%|
Note that 61,684 additional nameservers could not be identified. The percentages in the above table are based on the number of nameservers that could be identified. Additionally, the above table is based on distinct nameserver addresses rather than names. This eliminates biases caused by large domain owners that use different nameserver names, but a single nameserver address.
We test recursion by querying our open resolvers database. The open resolver database tests addresses by sending queries for cryptographically generated names in the test.openresolvers.org domain. If our openresolvers.org authoritative nameserver receives a valid query, the tested address provides recursion.
The following table shows how many nameservers appear to recursively resolve domain names on our behalf:
Note, the above table is based on distinct nameserver addresses rather than names. This eliminates biases caused by large domain owners that use different nameserver names, but a single nameserver address.
We test for zone transfer with Net::DNS::Resolver's axfr_start and axfr_next functions. We say the nameserver allows the zone transfer if it returns at least one RR. Each nameserver is tested only once, even if it is authoritative for many zones.
The following table shows how many nameservers allowed us to transfer one of their zones:
And this table shows the software running on those nameservers that allow zone transfer:
|Microsoft Windows DNS 2000||2,788||2.5%|
|Microsoft Windows DNS NT4||175||0.2%|
|Microsoft Windows DNS 2003||90||0.1%|
Related to this measurement is the number of nameservers that allow TCP transactions at all. We test for TCP support by setting the `usevc' option to Net::DNS::Resolver and then making an SOA query for the zone. We say the nameserver supports TCP if it returns at least one answer RR. Each nameserver is tested only once. Here are the results:
In this part of the survey, we are interested in finding out how many zones have at least one nameserver with an IPv6 address. Even though Verisign (operator of the COM and NET registries) does not allow insertion of AAAA glue records in the COM/ZONE files, zone owners may elect to add them to their own zones.
To make the comparison, we ask for the IPv4 and IPv6 addresses (AAAA records) of all authoritative nameservers for each zone in Dataset III.
We found 2,158,777 zones in Dataset III with at least one IPv4-addressed nameserver. Among those, we also found 5,723 (0.27%) with at least one IPv6-addressed nameserver.
NOTE: Because the probed nameservers come from domains in the COM and NET zones, this data is not necessary an accurate reflection of worldwide IPv6 adoption for DNS nameservers.
DNSSEC is an evolving protocol. The first version (RFC 2535, March 1999) defines the KEY, SIG, and NXT record types. The second version (RFC 4035, March 2005) essentially obsoletes the first-generation RR types and adds four new ones: DNSKEY, NSEC, RRSIG, and DS. We queried the set of nameservers for both old and new RR types.
Among the 2,053,150 zones with at least one working nameserver, we found 36 (0.0018%) with first-generation DNSSEC records.
We also found 8 zones publishing second-generation DNSSEC records. There is no overlap between the two first- and second-generation subsets.
Needless to say, DNSSEC adoption is still very small. Unfortunately, our use of the COM and NET zones probably under-represents DNSSEC adoption across the whole Internet. Some European CCTLDs have been more proactive in encouraging the use of DNSSEC.
SPF, which currently stands for Sender Policy Framework, is a way for organizations to list valid sources of email (i.e., IP addresses) for "from addresses" in their domain. Organizations that want to publish SPF information create a TXT record in their zone file. Mail transfer agents may lookup SPF information when receiving email messages. In addition to the TXT record format, SPF now also has its own DNS RR, type 99.
Among the 2,053,150 zones with at least one working nameserver, we found 257,924 (12.6%) with TXT-based SPF records, and 46 (0.0022%) that return the newer SPF (type 99) records.
RFC 2182 states: secondary servers must be placed at both topologically and geographically dispersed locations on the Internet, to minimize the likelihood of a single failure disabling all of them. While we do not test for geographic diversity, we can easily examine the topologic aspects of a zone's nameservers. Our assumption that topologic locality implies geographic locality is is true in most, but not quite all cases. The following table shows the percentage of zones having all their authoritative nameservers within the given CIDR-sized subnets:
Here we examine whether delegation NS records (listed in the parent zone) match the authoritative NS records (found in the zone itself). We use the following six categories:
The delegation records exactly match the authoritative records
The delegation and authoritative records have no members in common
The delegation records are a subset of the authoritative records
The delegation records are a superset of the authoritative records
The delegation the authoritative records each contain members not found in the other set
The supposedly-authoritative nameservers (learned from the parent zone) did not return any NS records for the zone
Note that we are only comparing nameserver names, rather than IP addresses. This may explain why there is a non-zero number of zones with Disjoint delegation/authoritative nameservers. The following table shows the percentage of each category:
|No Authoritative Nameservers||1,048,908||41.4%|
Here we consider two slightly different cases. The first table shows the percentage of zones where the authoritative nameservers return NS records with mis-matched TTLs. This includes all NS records from all nameservers for a zone. The first column is the number of unique TTLs returned:
Similarly, the second table shows the percentage of nameservers that return differing NS record TTLs in response to a single query:
RFC 1912 suggests that the SOA Refresh value should be at least 20 minutes and no longer than 12 hours. The following table shows the distribution of Refresh values:
|20m to 12h||1,727,908||84.2%|
RFC 1912 suggests that the SOA Retry value is typically less than the Refresh value. The following table shows the distribution of Retry values:
|retry <= refresh||2,028,770||98.8%|
|retry > refresh||24,380||1.2%|
RFC 1912 suggests that the SOA Expire value should be at least 2 weeks and no longer than 4 weeks. The following table shows the distribution of Expire values:
|2w to 4w||196,116||9.6%|
RFC 2308 suggests that the SOA Minimum value (aka the negative caching TTL) should be at least 1 hour and no longer than 3 hours. Common nameserver implementations usually enforce their own negative caching limits of 3 hours or less. The following table shows the distribution of Minimum values:
|1h to 3h||462,718||22.5%|
Note that this only includes zones that responded with at least one valid SOA record.
all authoritative nameservers return the same serial number for the zone
the minimum and maximum serial numbers among the set of authoritative nameservers differed by only one
one or more of the authoritative nameservers has a serial number different than the rest, where the difference is greater than one
We test for lameness by sending an SOA query for a zone to an authoritative nameserver. If the response's RCODE is anything other than zero, we say the nameserver is lame. Here are the results:
Note this only includes nameservers for which we have an IP address. If a zone has 3 nameservers and we have can't get an IP address for 1 nameserver, the zone is included in the analysis with the 2 good nameservers. In other words, an unresolvable nameserver is not counted as a lame server.
We wish to note that some nameservers are authoritative for many different zones. This may affect certain measurements, such as the topological dispersion. For example, if a company with many zones happens to have all its nameservers on the same subnet, that may artificially inflate the percentages in the "Are nameservers topologically dispersed?" section.
To get an idea of the how many zones each nameserver hosts, note that the mean number of zones per nameserver is 31.6 while the median is 2.0. The following table shows how many zones each of the top 25 nameservers are authoritative for:
|NS Rank||Zone Count||CDF|
© 2020 The Measurement Factory.