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:
- Google: 8.8.8.8 (unfiltered only)
- Quad9: 9.9.9.9
- OpenDNS: 208.67.222.222
Filtered / Safe DNSāāāBlocking Adult content for families / children:
- OpenDNS Family Shield: 208.67.222.123
- CleanBrowsing: 185.228.168.168
- Norton ConnectSafe: 199.85.126.20
- 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