I was recently checking name servers that I was using to resolve hosts on a network. After using tools such as ping, traceroute, and dig I decided to search around and found Google has a new tool called namebench. Intrigued I decided to give it a shot. There is support for several platforms including Linux and Microsoft Windows. I pulled down a NIX copy and fired up the python script. By default in CLI the tool tests the top 10000 Alexa sites, as a note the GUI tool can test sites from your browsers cache. The tool compares your DNS hosts to several top resolvers around the net including their own. This was neat but I found the real usefulness was the ability to only specify the name servers you want to test. Very cool IMO.
$ ./namebench.py -O 68.87.73.242 68.87.68.162 68.87.74.162 8.8.8.8 8.8.4.4 208.67.220.220namebench 1.0.5 - data/alexa-top-10000-global.txt (weighted) on 2009-12-14 22:09:40.248541threads=40 tests=200 runs=1 timeout=2.0 health_timeout=4.0 servers=10------------------------------------------------------------------------------- Checking connection quality...- Connection appears healthy (latency 55.15ms)- Building initial DNS cache for 6 nameservers [40 threads]- Waiting for health check threads for 6 servers: 0/6.6/6.- 6 of 6 name servers are healthy- Waiting for wildcard check threads: 1/6.....6/6.- Waiting 4s for TTL's to decrement.- Waiting for cache collusion threads: 0/30.30/3030Final list of nameservers considered:------------------------------------------------------------------------------68.87.68.162 68.87.68.162 48 ms |208.67.220.220 208.67.220.220 59 ms | www.google.com. hijacked (google.navigation.opendns.com.), NXDOMAIN Hijacking68.87.73.242 68.87.73.242 62 ms |68.87.74.162 68.87.74.162 78 ms |8.8.8.8 8.8.8.8 86 ms |8.8.4.4 8.8.4.4 88 ms |
- Reading test data from data/alexa-top-10000-global.txt- Benchmarking 6 server(s), run 1 of 1: 1/200.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100.........110.........120.........130.........140.........150.........160.........170.........180.........190.........200/200200- Rendering template: ascii.tmpl- Saving rendered ascii outputFastest individual response (in milliseconds):----------------------------------------------68.87.68.162 ############################ 32.3729568.87.73.242 ################################# 38.33604208.67.220.220 ################################# 39.3879468.87.74.162 ########################################## 49.346928.8.4.4 ##################################################### 63.433898.8.8.8 ##################################################### 63.49301
Mean response (in milliseconds):--------------------------------8.8.4.4 ########################## 67.3568.87.73.242 ################################## 90.548.8.8.8 #################################### 95.2468.87.68.162 #################################### 95.31208.67.220.220 ######################################### 108.8568.87.74.162 ##################################################### 142.74
Response Distribution Chart URL (200ms):----------------------------------------http://chart.apis.google.com/chart?cht=lxy&chs=720x410&chxt=x,y&chg=10,20&chxr=0,0,200|1,0,100&chd=t:0,20,20,20,21,21,21,24,27,49,59,67,116|0,1,12,40,57,63,69,73,77,80,84,87,91|0,16,17,17,18,19,25,26,29,35,39,51,77,95,102|0,1,14,28,48,53,56,60,65,69,72,76,80,83,87|0,19,20,20,20,21,21,23,24,26,36,56,69,90,112|0,1,8,30,45,50,54,61,64,70,73,77,80,84,87|0,25,25,25,26,27,45,46,49,51,57,71,77,91,116|0,1,5,33,39,47,50,54,58,62,65,69,73,77,80|0,32,32,32,33,33,34,34,35,38,48,53|0,1,7,28,55,65,80,88,91,95,98,100|0,32,32,32,33,33,34,34,34,37,41,50,63,78,126|0,1,7,28,44,54,66,70,74,77,81,85,89,92,96&chco=ff9900,1a00ff,80ff00,ff00e6,00e6ff,fae30a&chxt=x,y,x,y&chxl=2:||Duration+in+ms||3:||%25|&chdl=208.67.220.220|68.87.68.162|68.87.73.242|68.87.74.162|8.8.4.4|8.8.8.8
Response Distribution Chart URL (Full):---------------------------------------http://chart.apis.google.com/chart?cht=lxy&chs=720x410&chxt=x,y&chg=10,20&chxr=0,0,1333|1,0,100&chd=t:0,3,3,3,3,3,3,4,4,7,9,10,17,23,62,100|0,1,12,40,57,63,69,73,77,80,84,87,91,94,98,100|0,2,2,3,3,3,4,4,4,5,6,8,12,14,15,19,22,24,60|0,1,14,28,48,53,56,60,65,69,72,76,80,83,87,90,94,97,100|0,3,3,3,3,3,3,3,4,4,5,8,10,13,17,20,23,25,32|0,1,8,30,45,50,54,61,64,70,73,77,80,84,87,91,94,98,100|0,4,4,4,4,4,7,7,7,8,9,11,11,14,17,19,22,25,28,45,67|0,1,5,33,39,47,50,54,58,62,65,69,73,77,80,84,88,91,95,98,100|0,5,5,5,5,5,5,5,5,6,7,8|0,1,7,28,55,65,80,88,91,95,98,100|0,5,5,5,5,5,5,5,5,6,6,8,9,12,19,55,69|0,1,7,28,44,54,66,70,74,77,81,85,89,92,96,99,100&chco=ff9900,1a00ff,80ff00,ff00e6,00e6ff,fae30a&chxt=x,y,x,y&chxl=2:||Duration+in+ms||3:||%25|&chdl=208.67.220.220|68.87.68.162|68.87.73.242|68.87.74.162|8.8.4.4|8.8.8.8
Recommended configuration (fastest + nearest):----------------------------------------------nameserver 8.8.4.4 # 8.8.4.4nameserver 68.87.68.162 # 68.87.68.162nameserver 68.87.73.242 # 68.87.73.242