Jaki serwer DNS wybrać?

Wybór serwera DNS z którego korzystamy na urządzeniu końcowym jest ważny z kilku powodów:

  • Szybkość serwera DNS. Czas oczekiwania na odpowiedzi z serwerów DNS może być istotną częścią czasu ładowania stron Jest to szczególnie widoczne na stronach z dużą ilością wklejek z różnych domen. W przypadku szybkości serwera DNS nie chodzi jedynie o opóźnienie sieci (to można sprawdzić przy pomocy ping), ale o czas udzielenia odpowiedzi. Zależy on już od większej liczby czynników: opóźnienie sieci, posiadanie bądź nie odpowiedniego spisu w cache (oczywiście lepiej, jeśli odpowiada z cache), wydajność sprzętu i oprogramowania na którym działa DNS.
  • Poprawność odpowiedzi. Nic po szybkiej odpowiedzi z serwera DNS, jeśli będzie ona błędna. W skrajnym przypadku możemy paść ofiarą spoofingu DNS i trafić na podstawioną stronę.
  • Neutralność, czyli brak cenzury. Trochę wiąże się z poprzednim zagadnieniem, ale w tym przypadku chodzi o to, że do pewnych stron w ogóle nie będzie można się dostać. O ile działanie takie ma sens przy ograniczaniu zasięgu szkodliwego oprogramowania, to może być także służyć jako ograniczenie dostępu do treści.

 

Co warto zrobić w kwestii DNS?

Jeśli posiadamy sieć lokalną z kilkoma (i więcej) komputerami, to prawie na pewno warto postawić lokalny cache DNS – dzięki temu powtarzające się nazwy będą rozwiązywane lokalnie. Dobrym i prostym rozwiązaniem dla małej sieci jest dnsmasq, dostępny także dla OpenWrt.

Poza tym, warto wybrać te serwery DNS, które odpowiadają najszybciej. Zwykle nie popełnimy dużego błędu, jeśli wybierzemy serwery zalecane przez naszego dostawcę sieci lub wskazane automatycznie.

Czy zawsze lokalny serwer DNS lub oferowany przez naszego dostawcę Internetu jest najlepszy? Niestety nie. Prawie zawsze będzie on najszybszy pod względem opóźnienia sieci, ale już zawartość cache bywa różna. Szczególnie w przypadku lokalnego serwera może się okazać, że jego cache jest pusty dla większości zapytań. Na szczęście zwykle narzut lokalnego serwera nie jest duży.

Jeśli nasz komputer łączy się z internetem za pośrednictwem wielu sieci (wifi, połączenia GSM), można pomyśleć o postawieniu lokalnego cache DNS bezpośrednio na nim.

Jak najprościej znaleźć najlepsze serwery DNS?

Istnieje do tego darmowy i wolny program o nazwie namebench, służący do benchmarku serwerów DNS. Działa na wszystkich systemach, wersję dla Windows i Mac OS X można pobrać ze strony, w przypadku Linuksa zapewne jest w dystrybucyjnym repozytorium. Domyślnie działa z GUI, ale nie jest ono niezbędne – program daje się również uruchomić w konsoli. Ważne jest, żeby nie uruchamiać testu od razu, tylko najpierw przeczytać jak program działa i zastanowić się, co chcemy zrobić. Dlaczego? Ano dlatego, że pierwsze uruchomienie jest najbardziej zbliżone do rzeczywistych warunków ze względu na oryginalną, niezakłóconą poprzednimi testami zawartość cache testowanych serwerów DNS, czyli najbardziej miarodajne.

Jak korzystać z namebench?

W polu nameservers warto podać, oddzielone spacjami przynajmniej: DNS lokalny w sieci (jeśli posiadamy), serwery DNS naszego ISP. W przypadku Polski dodatkowo warto podać serwery DNS Orange (najpopularniejsze to 194.204.159.1 i 194.204.152.34) – kiedyś były dostępne tylko dla klientów TPSA, ale obecnie wyglądają na otwarte – działają z każdej sieci, z której testowałem – i osiągają dobre wyniki. W moim przypadku były szybsze, niż serwery DNS mojego ISP.

Namebench - ekran startowy
Ekran startowy namebench. Źródło: strona domowa programu namebench.

Poza tym, zaznaczamy globalne publicznie dostępne serwery cache’ujące oraz serwery regionalne. Można zaznaczyć sprawdzanie pod kątem cenzury i podzielenie się uzyskanymi wynikami. Lokalizacja to oczywiście Polska, query data source – możemy skorzystać z historii stron którejś z naszych przeglądarek, wyniki będą wówczas bardziej zbliżone do realnych.

Następnie uruchamiamy test i na kilka-kilkanaście minut zostawiamy komputer w spokoju. Po tym czasie otrzymamy wyniki: propozycję trzech najlepszych dla nas – zdaniem programu – serwerów DNS (kolejność ma znaczenie) oraz szczegółowe dane i wykresy. Kluczowy dla szybkości działania sieci jest oczywiście średni czas odpowiedzi z serwera DNS.

Na koniec uwaga: jeśli najszybsze serwery nie należą do naszego ISP ani nie są otwartymi, publicznymi serwerami, może się zdarzyć, że ich właściciel ograniczy za jakiś czas do nich dostęp.

 

Happy eyeballs wg Microsoft, czyli implementacja IPv6 w Windows 8.

Nietypowo nie będzie o Linuksie, a o Windows, który bardzo rzadko pojawia się na tym blogu.  Konkretnie o Windows 8 i IPv6.

Przy okazji wykładu na PLNOG na temat happy eyeballs[1] dowiedziałem się, jak to robią w Windows 8. Otóż Windows 8 określa, czy ma dostęp do sieci IPv6 poprzez pobranie pliku. Z serwera Microsoft[2]. A następnie cache’uje wynik na… bagatela 30 dni. Wystarczy, że w momencie sprawdzania sieć IPv6 albo serwer Microsoftu nie będą dostępne i żegnamy się z IPv6. Na miesiąc. Poza tym, to, że udało się połączyć z serwerem Microsoft nie oznacza, że istnieją trasy do wszystkich innych hostów IPv6. Więc rozwiązanie „takie sobie” (taki ładny eufemizm, zamiast sporej ilości przekleństw w kierunku twórców pseudostandardów w Microsoft).

W trakcie prezentacji przyszedł mi do głowy dirty hack (rozmowa po prezentacji sugeruje, że jak najbardziej powinien działać), który spowoduje, że system Windows będzie zawsze myślał, że ma dostęp do sieci IPv6. Do pliku hosts dopisujemy linię, która powoduje, że ipv6.msftncsi.com jest rozwiązywany na adres IPv4. Czyli plik jest pobierany z serwera IPv4, czyli system zawsze będzie próbował korzystać z IPv6. Tak, popsuje to mechanizm happy eyeballs (ale i tak był zepsuty). Może się przydać np. testerom, albo zwyczajnym fan(atyk)om IPv6.

Przy okazji, w prezentacji pojawia się Your task – check ipv6.msftncsi.com availability, które po sprawdzeniu pachnie mi lekkim FUDem. Przy sprawdzeniu co pięć minut dwóch rzeczy: pingowania po domenie i możliwości pobrania pliku, w ciągu 48h[3] nie zdarzył mi się ani jeden błąd. A dodatkowo sprawdzam przez tunel od HE, czyli potencjalny element, który może zawieść. Być może wyglądało to kiedyś gorzej i się poprawiło. To, że coś jest potencjalnie OKDR nie oznacza, że jest takie w praktyce. Bo wydaje się działać. Zresztą wystarczy zrobić farmę serwerów z adresem anycast i będzie to działać. Warto też sprawdzić:

host ipv6.msftncsi.com
ipv6.msftncsi.com is an alias for ipv6.msftncsi.com.edgesuite.net.
ipv6.msftncsi.com.edgesuite.net is an alias for a978.i6g1.akamai.net.
a978.i6g1.akamai.net has IPv6 address 2001:2030:0:f::d59b:9892
a978.i6g1.akamai.net has IPv6 address 2001:2030:0:f::d59b:9888

Czyli nie tyle serwery Microsoft, co Akamai (pozdrowienia dla f.). Nie jedno, ale 2 IP. Prawie na pewno rozproszone geograficznie i z wykorzystaniem anycastu. Nie zmienia to faktu, że dostępność tych IP nie oznacza dostępności po IPv6 każdego innego hosta („dziury” w routingu).

Źródła:

1. Prezentacja Krzysztofa Mazepy z EURONOG I PLNOG 2012 pt. IPv4 vs IPv6 IPv4 vs. – Happy Eyeballs.
2. Windows 8 moves to IPv6 Internet.

[1] Jest tylko po angielsku, więc w telegraficznym skrócie dla niespikających: w momencie połączenia host próbuje się łączyć po IPv6 i IPv4, jeśli ma łączność o zbliżonym opóźnieniu po obu protokołach, to preferuje IPv6. Zaleta jest taka, że w przypadku braku dostępności IPv6 nie czeka kilku(nastu/dziesięciu) sekund na timeout – użytkownik dostaje praktycznie bez opóźnienia content i oczka się cieszą.

[2] Konkretnie http://ipv6.msftncsi.com/ncsi.txt Zawartość jest stała i jest to po prostu Microsoft NCSI Jak widać wyżej, serwer jest Akamai.

[3] Tak, wiem, bardzo mała próbka, będzie aktualizowane wyniki z dłuższego okresu poniżej.

PS Kiedyś opisywałem, jak sprawdzić IP komputera pod różnymi systemami. Dodałem informację o sprawdzaniu łączności po IPv6.

UPDATE: Miała być statystyka z dłuższego okresu, to będzie. Minęło 16 dni. W tym czasie, przy sprawdzeniach co 5 minut, zanotowałem 75 braków odpowiedzi na ping i 26 błędów w pobraniu pliku przez WWW. Ale! Co minutę sprawdzam też, czy drugi koniec tunelu się pinguje po IPv6. Po wyeliminowaniu równoczesnego braku odpowiedzi z końca tunelu i błędów do hosta MS, zostało 49 błędów pingowania i 0 (zero) błędów pobrania pliku przez WWW. Czyli raczej błędy tunelu, niż rozwiązania MS. Jakby się ktoś zastanawiał, jak to możliwe, że plik się pobrał, przy braku odpowiedzi na ping do hosta – zapewne kwestia dłuższego timeoutu.

Recenzja testu ultrabooka.

Test ultrabooka i konkurs to jedno, teraz pora na recenzję testu, czyli co mi się podobało w teście i konkursie, a co nie.

Przede wszystkim, fajnie, że konkurs w ogóle miał miejsce – jest szansa na pomacanie sprzętu przed zakupem, zapoznania się na żywo, sprawdzenia, jak sobie Linux radzi (tylko teoretycznie niestety, patrz niżej) itp. I żadna recenzja czy parę minut klikania w sklepie tego nie zastąpią, niestety. Dowiedziałem się, że nadal nie lubię ekranów glare, że klawiatura przy 13,3″ to pełen wymiar i może być zupełnie wygodna i że touchpad może być nie tylko używalny, ale nawet wygodny. Co prawda mysz jest wygodniejsza i pewnie na biurku podłączę, ale przy dobrym touchpadzie mogę ją sobie darować przy korzystaniu mobilnym.

Sprawa druga to to, co było podkreślane od początku przez wiele osób – jeden dzień to stanowczo za mało na test. Zwyczajnie mało czasu, żeby dokładnie przeklikać wszystko i poużywać, jeśli pojawią się problemy, żeby je rozwiązać itd. Do tego dochodzi kwestia konieczności poświęcenia jednorazowo sporej ilości czasu, wypadających niespodziewanych rzeczy niezwiązanych z testem itp. Jakby do tego dodać czas na synchronizację danych (żeby móc używać komputera w takich samych warunkach, jak dotychczasowy), to robi się dramat.

Kolejna sprawa – zakres grzebania w sprzęcie i odpowiedzialności. Jak pisałem w komentarzu pod wpisem konkursowym, istnieje coś takiego jak ubezpieczenie od zepsucia sprzętu, poczynając od jego zrzucenia, zalania, aż po naprawę po np. nieudanej aktualizacji BIOSu (to ostatnie kumpel niedawno sprawdzał w praktyce). Zdecydowanie warto wydać parę zł i skorzystać, dając testującym więcej komfortu. Tak samo zmiana systemu operacyjnego w urządzeniu – to tylko komputer, komputery pracują pod różnymi OS. W przypadku tak krótkiego testu co prawda zmiana OS średnio ma sens, ale przy dłuższym teście na pewno warto zezwolić na taką zmianę, a grzebanie w partycjach to wręcz konieczność.

Kolejna kwestia, czyli bezpieczeństwo. Czyli główny powód, dla którego zrezygnowałem z testu smartphone’a. Miałem opory przed podaniem haseł do serwisów na „niepewnym” (czytaj: nie moim) systemie, który na dodatek za moment ode mnie wyjeżdża nie wiadomo dokąd (a weź tu wyczyść dokładnie Windowsa…). Ostatecznie jedynym hasłem, które podałem było to do wifi. Zakładanie testowych kont jest pracochłonne i nadal nie korzystamy z systemu identycznie, jak normalnie. A jeszcze jakbym miał swoje dane skopiować na taki system? W żadnym razie. Możliwość postawienia swojego systemu, wyczyszczenia (wyzerowania) partycji to minimum. Jak rozwiązać sprawę przywrócenia oryginalnego systemu? Prosto: pendrive przywracający domyślny system i bootowanie z USB załatwią sprawę, niezależnie co się stanie z oryginalnym systemem na dysku. Proste, wygodne, bezpieczne i działa.

Organizacyjnie: trochę do życzenia pozostawiała komunikacja dotycząca konkursu. Papiery, które miały przyjechać przed przekazaniem sprzętu, a nie przyjechały (z tego co czytam, nie tylko ja nie dostałem umowy wypożyczenia przed otrzymaniem sprzętu), trochę zamieszania z terminami. Fajnie by było, jakby w przypadku przybycia kuriera ze sprzętem, a bez umowy można się dodzwonić do kogoś i wyjaśnić (no ale ostatecznie nie mój problem, że dostaję komputer bez umowy, prawda?). Fajnie też, żeby kurier przywożąc „upominki na otarcie łez” (dziękuję, zgrabny pendrive o słusznym rozmiarze, przyda się pod linuksowe live’y) i papiery do podpisania (umowa wypożyczenia po oddaniu sprzętu? po co?) zapowiedział wcześniej, co wiezie. Albo ktoś, kto wysyła, żeby zapowiedział. Bo osoba zdatna do odbioru przesyłki może być dostępna, ale nie musi być jednocześnie osobą mogącą podpisać umowę.

Pewnie jakby konkursy tego typu się powtarzały, to się warunki dotrą i będzie lepiej. Na co – w nadchodzącym roku – liczę. 😉