Trochę teorii na początek (spokojnie można przejść do kolejnego punktu;)
Usługa DNS odpowiada za tłumaczenie popularnych nazw stron na adresy IP serwerów na których się one znajdują. Innymi słowy, wpisując w pasku adresu przeglądarki adres strony, np. onet.pl, zmuszamy komputer do skorzystania z usługi serwera DNS, który podaną nazwę przetłumaczy na adres IP (w tym przypadku 213.180.141.140)Czy jednak tak operacja odbywają się za każdym razem? Nie.
Otóż gdy pierwszy raz wpiszemy w przeglądarce adres np. onet.pl to - jak już napisałem - komputer wyśle zapytanie do DNSa, który zwróci mu adres IP, który obsługuje serwis onet.pl. Nasz komputer zapamięta taką odpowiedź w swojej pamięci podręcznej (cache), po to aby następnym razem nie powtarzać wszystkiego od nowa.
Taka odpowiedź nie jest pamiętana "na zawsze", ale jest zależna od czasu życia danego rekordu, który określany jest skrótem TTL.
Mając tego świadomość możemy spróbować dokonać sprawdzenia jak długo jeszcze rekord będzie pamiętany przez nasz komputer. Można to zrobić programem dig, który stanowi część pakietu BIND (będący notabene darmowym serwerem DNS).
W niektórych dystrybucjach dig będzie częścią domyślną systemu, natomiast w Windowsach należy pobrać całego BINDa i znaleźć dig w folderze z wypakowaną aplikacją.
W tym momencie należy wyjaśnić jedną rzecz - przy sprawdzaniu czasu życia danego rekordu można zauważyć, że z każdym kolejnym odpytaniem DNSa wartość TTL się zmniejsza. Dzieje się tak dlatego, że program pokazuje nam nie ogólny czas życia danego rekordu, ale czas życia danego rekordu w naszym systemie. Takie zachowanie programu ma miejsce gdy użyjemy diga do odpytania domeny dla której odpytywany serwer nie jest autorytatywny.
W celu wyjaśnienia kilku poprzednich zdań na przykładzie praktycznym spójrzcie na poniższy screen.
W trzech pierwszych zapytaniach ustalałem adres domeny onet.pl odpytując autorytatywny serwer DNS dla tej domeny jakim jest dns1.onet.pl (IP 213.180.128.242). Każde z tych zapytań zwróciło wartość TTL równą 60. Czyli tyle powinien być przechowywany rekord dotyczący domeny onet.pl w cache'u komputera (i prawdopodobnie także innego serwera DNS).
Następne cztery zapytania także dotyczą ustalenia adresu IP dla domeny onet.pl, ale tym razem odpytywany jest nieautorytatywny serwer dla tej domeny jakim jest popularny DNS Google'a o adresie 8.8.8.8. Tutaj wartości TTL zmniejszają się z każdym zapytaniem dążąc do zera.
Gdy wartość TTL osiągnie zero, komputer "zapomina" dany rekord i przy kolejnej próbie ustalenia adresu IP nie skorzysta z własnej pamięci podręcznej (bo przecież "zapomniał" już dany rekord), ale znowu odpyta serwer DNS, czyli wszystko zacznie się od nowa ;)
Nie chciało mi się czytać powyższego. Proszę konkrety!
Skoro tak, to przejdźmy do sedna, tj. do tego, że można spróbować znaleźć serwer DNS dzięki któremu nasze połączenie internetowe nabierze wrażenia bardziej "responsywnego".
Czy takim będzie w rzeczywistości, czy będzie to już tylko efekt placebo, to wszystko zależy od różnic w wynikach pomiarów i Waszych subiektywnych odczuć ;)
Przejdźmy zatem do rzeczy.
Z tego co zaobserwowałem, większość osób korzysta z serwerów DNS Google'a bądź Orange o poniższych adresach IP:
- 8.8.8.8 (google-public-dns-a.google.com, lokalizacja geo-ip)
- 8.8.4.4 (google-public-dns-b.google.com, lokalizacja geo-ip)
- 217.116.100.100 (dns-cache01.orange.pl, lokalizacja geo-ip)
- 217.116.104.104 (dns-cache02.orange.pl, lokalizacja geo-ip)
Ostatnio też coraz częściej pojawiła się nowa usługa DNS nosząca nazwę Quad9 (więcej o niej tutaj) o poniższych parametrach:
- 9.9.9.9 (dns.quad9.net, lokalizacja geo-ip)
Już na podstawie powyższych DNS-ów można się zastanowić, który z nich byłby najbardziej korzystny z naszego punktu widzenia. Czy byłby to któryś z serwerów Google'a, bądź Quad9, znajdujące się w USA, czy może serwery Orange, które przecież są w Polsce? Spróbujmy to ustalić.
W tym celu posłużę się darmowym programem DNS Benchmark (link do pobrania). Wystarczy skasować domyślną listę serwerów, wpisać te, które chcemy sprawdzić (poprzez przycisk Add/Remove) i wcisnąć Run Benchmark, aby po chwili otrzymać wyniki jak na poniższym screenie.
Wyniki pomiaru szybkości popularnych serwerów DNS w dniu 13.03.2018r. |
Ten sam test powtórzono następnego dnia i jak widać rezultaty są niemalże identyczne.
- Czerwona linia oznacza czasy odpowiedzi z lokalnej pamięci podręcznej serwera,
- Zielona linia to czasy odpowiedzi na zapytania nie znajdujące się w pamięci podręcznej serwera.
- Fioletowa zaś... przyznam, że nie rozumiem jej znaczenia, ale z tego co wyczytałem w opisie, wskazuje ona na jakość połączenia pomiędzy badanym serwerem, a głównymi serwerami DNS (tzw. rootami), ale jeżeli ktoś dojdzie do innych wniosków, to proszę, aby podzielił się tą informacją.
Pomijając adres lokalnego routera, najlepiej wypadły serwery DNS Google'a o adresach 8.8.8.8 i 8.8.4.4, zaraz za nimi uplasował się serwer usługi Quad9, zaś sporo wolniejsze są serwery znajdujące się w kraju, a należące do Orange.
Biorąc pod uwagę położenie geograficzne przyznam, że takie wyniki mogą zaskakiwać.
Jeżeli chcielibyście wykonywać u siebie powyższe pomiary, to warto zwrócić uwagę na to, aby sieć nie była obciążona.
Bardziej dokładne dane dot. uzyskanych czasów można odnaleźć na zakładce Tabular Data, gdzie w sposób "cyferkowy" zostało przedstawione zróżnicowanie wyników.
Pamiętajcie też, że najkorzystniej mogą wypaść serwery DNS, które są najbliżej Was, tj. serwery które są oferowane przez Waszych lokalnych dostawców internetowych.
Miłej zabawy ;)
U mnie dobrze działa OpenDNS
OdpowiedzUsuń208.67.222.222
208.67.220.220