Test performansi DNS servera

Započeo holodoc, 27.12.2010, 17:39

prethodna tema - sledeća tema

holodoc

27.12.2010, 17:39 Poslednja Izmena: 27.12.2010, 18:13 od holodoc
Podstaknut problemom koji je danas jedan moj prijatelj imao dok je pokušavao da pristupi određenom sajtu palo mi je na pamet da uradim temeljan test performansi i pouzdanosti DNS servera i to na globalnom nivou. Naime, pomenuti prijatelj koristi DNS servere svog ADSL provajdera i u toku dana je primetio da ne može da pristupi jednom od sajtova (u pitanju je steampowered.com, portal / prodavnica namenjena pre svega gejmerskoj populaciji) a poznajući veoma dobro osobinu tog provajdera (EUnet) da mu osvežavanje propagacije i nije baš najkvalitetnija stavka odmah sam mu preporučio da umesto EUnet-ovih DNS servera (primarni DNS 194.247.192.33, alternativni DNS 194.247.192.1) koristi ili OpenDNS (primarni DNS 208.67.222.222, alternativni 208.67.220.220) ili globalni Google DNS (primarni DNS 8.8.8.8, alternativni DNS 8.8.4.4).

Međutim već me je prvo pitanje prijatelja nateralo da se zamislim - koji od ta dva da koristi? Google DNS je na sceni prisutan tek nešto malo više od godinu i kusur dana i u suštini nudi isključivo uslugu DNS rezolucije dok je OpenDNS stariji servis koji nudi i dodatne opcije tipa filtriranje sadržaja itd. ali po ceni da se neuspešne rezolucije domena preusmeravaju (tzv. DNS resolver hijacking) na reklame njihovih oglašivača. Takođe, Google DNS striktno poštuje RFC 1034 (http://www.ietf.org/rfc/rfc1034.txt), sa posebnim osvrtom na tačke koje regulišu DNS rezolvere, dok kao što rekoh OpenDNS pokušava da "pomogne" tako što radi preusmeravanja na Google ili na svoje oglašivače (s tim što u ovom slučaju pomaže samom sebi :))

Zato sam rešio da napravim detaljan uporedni test DNS rezolvera uzimajući u obzir moju trenutnu lokaciju i da na osnovu globalne liste dostupnih DNS servera napravim selekciju prvih 50 DNS servera koji postignu najbolje rezultate na testu. Za testiranje sam koristio DNS Benchmark (http://www.grc.com/dns/benchmark.htm), program specijalno namenjen za ove svrhe i  globalnu bazu DNS servera koja može da se skine sa http://www.grc.com/dns/resolvers.csv. Da bih izbegao potrebu da svako ko želi da ponovi ove testove kod sebe i samim time čeka oko 40 minuta da se formira njegova optimalna lista servera, kreirao sam listu od pedesetak DNS rezolvera koji su najreprezentativniji po performansama i pouzdanošću na mojoj lokaciji a koju svi mogu da iskoriste i za svoje testove.

Prilikom testa za svaki od DNS rezolvera se vrše upiti i analizira odziv za tri tipa DNS rezolucije: DNS rezolucija domena koji se nalazi keširan u lokalnom kešu DNS rezolvera, DNS rezolucija domena koji se ne nalazi u lokalnom kešu DNS rezolvera i DNS rezolucija koja je indirektna varijanta rezolucije "dot.com" domena preko DNS servera koji je autoritativan za .com domen koji se testira.

Ja ću u ovom postu postaviti moje rezultate testiranja a voleo bih da vidim i kakvi bi bili rezultati ostalih članova na forumu pa da iz toga izvučeno neku pouku ili makra zaključak o kvalitetu DNS servera u našem okruženju.

Kako se testovi vrše?

1) Preuzmete DNS Benchmark sa sledeće adrese - http://www.grc.com/files/DNSBench.exe

2) U isti folder u kojem se nalazi preuzet DNS Benchmark sačuvate fajl pod nazivom DNSBench.ini koji se nalazi prikačen uz ovu poruku.

3) Nakon pokretanja programa kliknete na tab "Nameservers" a zatim na dugme "Run benchmark".

4) Nakon završetka testa kliknete na dugme "Copy" u dnu prozora nakone čega se generisan grafikon testa kopira u clipboard odakle može da se sačuva korišćenjem bilo kog programa koji ima opciju paste-a sadržaja iz clipboard-a (običan Paint je dovoljan).

5) Kliknete na tab "Tabular data" i opet na dugme "Copy" pri dnu a zatim u nekom od klasičnih editora teksta "paste-uje" sadržaj nakon čega fajl sačuvate pod proizvoljnim imenom sa .txt  ekstenzijom.

6) Odete na http://www.speedtest.net/ i uradite test brzine vaše internet konekcije.

7) Odete na http://www.pingtest.net/ i uradite test kvaliteta vaše internet konekcije.

8) U posebnoj poruci u ovoj temi okačite sliku grafikona testa, tekstualni fajl sa rezultatima testa i dve slike (kroz [IMG] tagove) koje ste dobili na http://www.speedtest.net/ i http://www.pingtest.net/
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

holodoc

27.12.2010, 17:52 #1 Poslednja Izmena: 27.12.2010, 18:15 od holodoc



Iz rezultata koje sam ja dobio evidentno je da je Beotel.net (prvo mesto sa DNS rezolverom pod imenom "System Network" za koje će se valjda administratori setiti da ga kumuju prepoznatljivije) ima najbolji rezultat i odnos performansi i pouzdanosti.

Zatim slede Telekom Srbija i YUnet International (EUnet) na drugom i trećem mestu dok se na četvrtom mestu našao Verat.net.

Slede SezamPro (tj. Orion) i drugi DNS rezolveri koji se nalaze u okruženju.

Ono što je evidentno je da dok se GoogleDNS nalazi u listi 50 najboljih rezultata (na 15. mestu za alternativni i 20. za primarni DNS rezolver) OpenDNS nije uspeo čak ni posle ponovljenog testiranja da uđe u prvih 50 što je nešto što je poprilično začuđujuće! Uzevši u obzir razliku u vremenu odziva za poslednje elemente liste reklo bi se da je očigledan izbor u našim uslovima izbor DNS servera provajdera internet usluga u lokalu ali treba imati u vidu problem da kod određenih provajdera proces propagacije i osvežavanja lokalnog keša nije baš najsrećnije rešen pa mogu da se jave problemi tipa nedostupnosti određenih stranica. Alternativa je naravno Google DNS koji se zaista pokazao sjajnu uzevši u obzir da se radi o globalnom DNS servisu.

Bottom line? Ostajem i dalje pri Google DNS-u jer smatram da mala razlika u performansama Google DNS-a u odnosu na lokalne provajderske servere nije dovoljan razloga da ponekad rizikujem neuspešnu rezoluciju adresa :)
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

Siniša Ranđić

27.12.2010, 20:32 #2 Poslednja Izmena: 27.12.2010, 20:39 od Siniša Ranđić
Evo šta sam ja dobio:


holodoc

27.12.2010, 20:59 #3 Poslednja Izmena: 27.12.2010, 21:04 od holodoc
Veoma interesantno.

I ovde su čak prve tri pozicije rezervisane za beotel.net ("Local Network Nameserver" su stavke rezervisane za loklanu mrežu i one se ne računaju) stim što treći po redu DNS rezolver beotel.net-a nema stopostotni učinak. Čak štaviše i ovde gde je provajder ADSL-a Telekom bolji učinak DNS rezolvera imaju Beotelovi DNS serveri :)

Drugo i treće mesto se ne razlikuju mnogo od mojih rezultata ali interesantno je da se EUnet nalazi skroz na začelju rezultata zbog neuspelim DNS upita. To me navodi na pomisao da ili Telekom zabranjuje prosleđivanje upita EUnet-ovim DNS serverima (manje verovatno) ili EUnet zabranjuje DNS upite koji dolaze iz Telekom-ovih IP opsega (verovatniji scenario). Upravo sam probao DNS upit sa svoje EUnet adrese na Telekomov DNS i sve deluje ok:
[root@localhost ~]# dig tfc.kg.ac.rs @195.178.38.3

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3 <<>> tfc.kg.ac.rs @195.178.38.3
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64392
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;tfc.kg.ac.rs.                  IN      A

;; AUTHORITY SECTION:
tfc.kg.ac.rs.           10741   IN      SOA     ns.unic.kg.ac.rs. root.ns.unic.kg.ac.rs. 2010092702 10800 3600 604800 86400

;; Query time: 42 msec
;; SERVER: 195.178.38.3#53(195.178.38.3)
;; WHEN: Mon Dec 27 19:58:04 2010
;; MSG SIZE  rcvd: 79


Suprotan smer (zahtev iz Telekom mreže na EUnet DNS server) bi mogao da se proveri sa sledeće dve komande na bilo kom Linux-u:
dig tfc.kg.ac.rs @194.247.192.33
dig tfc.kg.ac.rs @192.247.192.1


Ista priča sa neuspelim DNS upitima važi i za SezamPro (Orion) koji je na samom začelju tabele.

Takođe Google DNS je i ovde neka zlatna sredina dok OpenDNS-a nema ni od korova mada to je i logično s obzirom na formiranu početnu listu koja ga ne uključuje u samom startu.
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

holodoc

Evo još jednog seta rezultata od kolege iz redakcije Sveta kompjutera (glavom i bradom gosn. Vojislava Mihajlovića :hello:) kojem se zahvaljujem što je našao vremena da uradi test.


pingtest.net nažalost očigledno nije bio dostupan u trenutku testiranja.

I iz ovih rezultata se nedvosmisleno vidi da Beotel i dalje ima najbrže DNS rezolvere dok činjenica da Orion i EUnet DNS serveri nisu mogli da se testiraju potvrđuje da ova dva provajdera ne dozvoljavaju pristup svojim DNS serverima sa drugih provajdera internet usluga, što je doduše i logično u smislu da Orion i EUnet na taj način smanjuju troškove bandwidtha koji bi inače išli na rezoluciju DNS zahteva korisnika koji nisu njihovi klijenti.

Google DNS serveri su u ovom slučaju postigli čak i nešto bolje rezultate a to opet ide u prilog činjenici da su pomenuti serveri u svakom slučaju izuzetno pouzdani iako možda ne daju tako dobre rezultate kao DNS rezolveri provajdera (što je naravno i za očekivati).
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php