DNS Performance Comparison: Google, Quad9, OpenDNS, Norton, CleanBrowsing, and Yandex

Written by nykolas.z | Published 2017/12/12
Tech Story Tags: dns | performance | security | networking | infosec

TLDRvia the TL;DR App

Since my ISP thought was a good idea to modify their resolver responses to push me to their own "search engine", I realized the importance of the free DNS projects that Google, OpenDNS and others are offering.

They give you an un-modified DNS experience that you may not get from your ISP. In addition to that, some players also block malicious domains and offer an option to block certain domain categories (mostly adult content) for families and kids.

That's all awesome as now we have a variety of options to choose from.

However, DNS performance is critical for your own Internet experience, so before you choose a provider, we recommend testing it to see how fast it will load from your location. In this article, we will compare the raw performance of a few popular providers from multiple locations throughout the world and see how they fare against each other.

Tested players

Unfiltered DNS + Optional Blocking of malicious domains:

  1. Google: 8.8.8.8 (unfiltered only)
  2. Quad9: 9.9.9.9
  3. OpenDNS: 208.67.222.222

Filtered / Safe DNS — Blocking Adult content for families / children:

  1. OpenDNS Family Shield: 208.67.222.123
  2. CleanBrowsing: 185.228.168.168
  3. Norton ConnectSafe: 199.85.126.20
  4. Yandex DNS: 77.88.8.7

Locations

As far as locations, we tested from these 14 locations from around the globe:

  • North America: New York, Toronto, Montreal, Atlanta, Dallas, San Francisco
  • Europe: London, Paris, Amsterdam, Frankfurt
  • Asia: Tokyo, Singapore, Australia
  • South America: Sao Paulo

Results Summary

I divided the test into 2 phases to see how it would fare against each other. First, I did the basic ping test. Ping's help us measure latency and distance between our testing servers and their DNS servers. Second, we actually measure the cached DNS lookup for a couple domains: Google.com, Yahoo.com and Medium.com and compared all the players.

TLDR: Google was the most stable and with the best average performance across all locations. Quad9 is pretty strong and faster than Google in multiple locations. OpenDNS is still pretty good across the US, but not as fast in Asia and South America. CleanBrowsing and Norton are pretty consistent and with good performance across all locations. Yandex is for Russia only. But see for yourself.

Test 1: DNS Lookup

The DNS lookup test was done using the dig utility and extracting the "Query time" from the results. For each domain we tested it a 5 times, with a few minutes within each one. We removed the worst response and averaged the others (to reduce the chance of a latency from our test location affect the results).

Summary

  • Quad9 got the fastest response out of the most locations we tested. It was under 2msec in 8 different locations, which is amazing.
  • Google got in #1 place when comparing the averages (9.5msec).
  • Quad9 did not perform well across a few cities (specially Sao Paulo and Tokyo) and had an average response time of 26msec, higher than Google (9msec).
  • Yandex was the worst across all locations.
  • CleanBrowsing was the fastest when offering adult content filtering.

Average results (when removing the worst location of each)

#1 Google: 9.538 msec#2 CleanBrowsing: 9.923 msec#3 Quad9: 26.07 msec#4 Norton: 32.76 msec#5 OpenDNS: 38.10 msec#6 OpenDNS_Family: 40.69 msec#7 Yandex: 160.7 msec

Results

NewYork #1 Google: 1 msec #1 Quad9: 1 msec #3 CleanBrowsing: 4 msec #4 Norton: 6 msec #5 OpenDNS: 17 msec #6 OpenDNS_Family: 21 msec #7 Yandex: 104 msec

Toronto #1 Quad9: 1 msec #2 Google: 10 msec #3 OpenDNS: 25 msec #4 OpenDNS_Family: 28 msec #4 CleanBrowsing: 28 msec #6 Norton: 29 msec #7 Yandex: 123 msec

Montreal #1 CleanBrowsing: 16 msec #2 Quad9: 17 msec #3 Google: 18msec #4 Norton: 25 msec #5 OpenDNS: 27 msec #6 OpenDNS_Family: 27 msec #7 Yandex: 116 msec

Atlanta #1 Quad9: 1 msec #2 Google: 2 msec #3 CleanBrowsing: 19 msec #4 OpenDNS: 21 msec #5 OpenDNS_Family: 30 msec #6 Norton: 24 msec #7 Yandex: 133 msec

Dallas #1 Google: 2 msec #2 CleanBrowsing: 2 msec #3 Norton: 3 msec #4 OpenDNS_Family: 7 msec #5 OpenDNS: 16 msec #6 Quad9: 30 msec #7 Yandex: 147 msec

SanFrancisco #1 Norton: 2 msec #2 CleanBrowsing: 9 msec #3 Google: 10 msec #4 Quad9: 26 msec #5 OpenDNS: 40 msec #6 OpenDNS_Family: 40 msec #7 Yandex: 175 msec

London #1 Quad9: 1 msec #2 CleanBrowsing: 3 msec #3 Norton: 4 msec #4 Google: 8 msec #5 OpenDNS_Family: 15 msec #6 Yandex: 34 msec #7 OpenDNS: 42 msec

Paris #1 CleanBrowsing: 6 msec #2 Quad9: 7 msec #3 OpenDNS_Family: 10 msec #4 Google: 11 msec #5 Norton: 20 msec #6 OpenDNS: 23 msec #7 Yandex: 39 msec

Amsterdam #1 Google: 1 msec #1 Quad9: 1 msec #3 CleanBrowsing: 9 msec #4 Norton: 13 msec #5 OpenDNS: 14 msec #6 OpenDNS_Family: 14 msec #7 Yandex: 29 msec

Frankfurt #1 Quad9: 1 msec #2 OpenDNS: 9 msec #3 Google: 10 msec #4 Norton: 11 msec #4 CleanBrowsing: 14 msec #6 OpenDNS_Family: 20 msec #7 Yandex: 35 msec

SaoPaulo #1 CleanBrowsing: 5 msec #2 Google: 15 msec #3 Norton: 113 msec #4 OpenDNS: 126 msec #5 OpenDNS_Family: 127 msec #6 Quad9: 179 msec #7 Yandex: 238 msec

Tokyo #1 OpenDNS: 1 msec #2 CleanBrowsing: 5 msec #3 Norton: 8 msec #4 Google: 18 msec #5 OpenDNS_Family: 36 msec #6 Quad9: 65 msec #7 Yandex: 309 msec

Singapore #1 OpenDNS_Family: 1 msec #2 Google: 2 msec #2 Quad9: 2 msec #2 OpenDNS: 2 msec #5 CleanBrowsing: 4 msec #6 Norton: 9 msec #7 Yandex: 269 msec

Sydney #1 CleanBrowsing: 5 msec #2 Quad9: 7 msec #3 Google: 16 msec #4 OpenDNS: 131 msec #5 OpenDNS_Family: 153 msec #6 Norton: 159 msec #7 Yandex: 339 msec

Test 2: Ping

All those providers, except for Yandex, have an anycast network, so they performed very well. Yandex seems to be restricted to Russia, so had very high ping times compared to the others. We removed them from the results as their ping tests were way above 100ms for all locations.

Norton does not allow ICMP, so could not be tested.

We consider any response under 5ms to be pretty strong and equal between each other as they are undistinguished for the end user. Responses between 5-20ms are acceptable (OK) and anything between 20ms-100ms we consider to be slow. Ping responses higher than 100ms get a FAIL as it means there is not presence on that location (or somewhere close by).

Winners

All providers performed really well, but both Google and Quad9 got 1st 5 times out of the 14 locations. CleanBrowsing came out in 3rd, being the faster in 3 locations.

However, when we consider the average across allow all locations, Quad9 did not perform as well, as it had very high ping time from Sao Paulo, Tokyo and Dallas. Considering the averages, those were the winners:

Google: 2.332 msCleanBrowsing: 3.545 msOpenDNS: 11.93 msOpenDNS_Family: 13.34 msQuad9: 21.73 ms

Those number are not very fair with OpenDNS as they performed very well, except for Sao Paulo, which skewed the results. If we remove Sao Paulo the numbers change to:

Google: 2.318CleanBrowsing: 3.473OpenDNS: 4.233OpenDNS_Family: 5.675Quad9: 9.941

In any event, go ahead and check for yourself:

NewYork #1 Quad9: 0.900 ms #2 Google: 1.59 ms #3 CleanBrowsing: 2.98 ms #OK OpenDNS: 9.11 ms #OK OpenDNS_Family: 9.01 ms

Toronto #1 Quad9: 0.467 ms #2 OpenDNS: 0.378 ms #3 OpenDNS_Family: 0.379 ms #4 Google: 0.749 ms #5 CleanBrowsing: 1.78 ms

Montreal #1 CleanBrowsing: 9.21 ms #2 Google: 9.91 ms #OK OpenDNS: 16.5 ms #OK OpenDNS_Family: 16.5 ms #OK Quad9: 16.6 ms

Atlanta #1 Quad9: 0.585 ms #2 Google: 0.947 ms #OK CleanBrowsing: 11.2 ms #OK OpenDNS: 12.3 ms #SLOW OpenDNS_Family: 24.2 ms

Dallas #1 OpenDNS: 0.961 ms #2 OpenDNS_Family: 0.905 ms #3 Google: 1.09 ms #4 CleanBrowsing: 1.19 ms #SLOW Quad9: 29.9 ms

SanFrancisco #1 CleanBrowsing: 2.13 ms #2 OpenDNS: 2.34 ms #3 OpenDNS_Family: 2.37 ms #4 Quad9: 2.70 ms #5 Google: 2.92 ms

London #1 Quad9: 0.936 ms #2 OpenDNS: 1.54 ms #3 CleanBrowsing: 2.18 ms #4 Google: 2.91 ms #5 OpenDNS_Family: 8.12 ms

Paris #1 Google: 4.51 ms #2 CleanBrowsing: 4.53 ms #3 OpenDNS_Family: 4.57 ms #4 OpenDNS: 4.69 ms #5 Quad9: 7.05 ms

Amsterdam #1 Google: 0.317 ms #2 OpenDNS: 0.852 ms #3 Quad9: 0.906 ms #4 OpenDNS_Family: 1.62 ms #5 CleanBrowsing: 4.85 ms

Frankfurt #1 Google: 1.07 ms #2 CleanBrowsing: 1.29 ms #3 Quad9: 1.37 ms #4 OpenDNS: 1.41 ms #5 OpenDNS_Family: 1.59 ms

SaoPaulo #1 Google: 2.51 ms #2 CleanBrowsing: 4.49 ms #FAIL OpenDNS: 112 ms #FAIL OpenDNS_Family: 113 ms #FAIL Quad9: 175 ms

Tokyo #1 CleanBrowsing: 1.15 ms #2 OpenDNS: 1.23 ms #3 OpenDNS_Family: 1.27 ms #4 Google: 1.81 ms #SLOW Quad9: 65.4 ms

Singapore #1 Quad9: 1.25 ms #2 CleanBrowsing: 1.57 ms #3 Google: 1.58 ms #4 OpenDNS_Family: 1.61 ms #5 OpenDNS: 1.92 ms

Sydney #1 Google: 0.738 ms #2 CleanBrowsing: 0.992 ms #3 Quad9: 1.18 ms #4 OpenDNS_Family: 1.64 ms #5 OpenDNS: 1.81 ms


Published by HackerNoon on 2017/12/12