Szyfrowany DNS przegrał każdy test prędkości, który przeprowadziłem - mimo to i tak zmieniłem
DNS to nudna, ale genialna rzecz, która dopasowuje nazwy stron internetowych do liczb, dzięki czemu możesz wpisać nazwę zamiast zapamiętywać ciąg cyfr. Dzieje się to zanim strona w ogóle zacznie się ładować, dlatego ludzie obsesyjnie dbają o to, żeby było to szybkie. Ale jest haczyk. Domyślnie te zapytania odbywają się jawnie, więc twój dostawca internetu i każdy, kto obserwuje, może zobaczyć każdą odwiedzaną przez ciebie stronę. Szyfrowany DNS rozwiązuje to, utrzymując twoje zapytania w prywatności zamiast pozostawiać je na widoku.
Więc zmieniłem, całkowicie oczekując, że ulepszenie prywatności będzie też ulepszeniem prędkości. Nie było. Mój dostawca internetu wygrał, i to nie minimalnie, ale miażdżąco. Zwykły DNS mojego dostawcy odpowiedział na typowe zapytanie w 38 milisekund. Najszybsza szyfrowana opcja, którą testowałem, Cloudflare przez HTTPS, zajęła 167. To ponad cztery razy wolniej, a każdy inny szyfrowany serwer był jeszcze wolniejszy. Potem zrobiłem rzecz, która prawdopodobnie brzmi paradoksalnie. Zostawiłem ten wolny, ponieważ najszybszy serwer DNS nie zawsze jest tym, którego powinieneś używać.
Zwykły DNS dostawcy usług internetowych przewyższa każdy szyfrowany resolver
Różnica nie była mała
Przeprowadziłem ten sam test na pięć sposobów: domyślny resolver mojego dostawcy internetu, zwykły 1.1.1.1 Cloudflare oraz punkty końcowe DNS-over-HTTPS dla Cloudflare, Quad9 i NextDNS — pięćdziesiąt domen, trzy przebiegi każda, 150 zapytań na resolver, wszystko z jednej linii. Podaję medianę zamiast średniej, i jest ku temu powód, do którego wrócę.
|
Rozwiązywacz | Typ | Mediana | p95 |
|---|---|---|---|
ISP | Samolot (Do53) | 38 ms | 202 ms |
Cloudflare 1.1.1.1 | Samolot (Do53) |
60 ms | 97 ms |
Cloudflare DoH | Zaszyfrowany | 167 ms | 323 ms |
Quad9 DoH | Zaszyfrowany | 257 ms | 543 ms |
|
NextDNS DoH | Zaszyfrowany | 280 ms | 452 ms |
Mediana ma tu znaczenie, ponieważ opisuje typowe wyszukiwanie. Według tego kryterium, mój ISP był najszybszy na liście z czasem 38 ms, a trzy szyfrowane serwery DNS mieściły się w przedziale od 167 do 280 ms. DoH od Cloudflare był najlepszy spośród szyfrowanych serwerów, a mimo to zajmował ponad cztery razy więcej czasu niż serwer DNS, który mój router udostępnia za darmo.
Jedną rzeczą, którą warto tutaj zauważyć, jest to, że mój dostawca usług internetowych również odnotował najgorszy wynik całego testu, pojedyncze wyszukiwanie, które zatrzymało się na prawie dziesięć sekund. Ten skok jest dokładnie powodem, dla którego ufam medianie bardziej niż średniej. Jeden falstart podciągnął średnią ISP do 193 ms i sprawił, że wyglądała ona na znacznie wolniejszą niż w rzeczywistości. Lokalny resolver jest szybki w dobry dzień i od czasu do czasu kapryśny, co jest uczciwym opisem większości DNS-ów ISP.
To szyfrowanie zajmuje czas, a nie dostawca
DoH płaci podatek od uścisku dłoni, którego zwykły DNS omija
Łatwo założyć, że mój dostawca internetu jest po prostu bliżej niż serwery Cloudflare. To jest część prawdy, ale nie cała historia, ponieważ zwykły 1.1.1.1 Cloudflare osiągnął 60 ms, zdecydowanie wyprzedzając każdy szyfrowany resolver, w tym własny DoH Cloudflare. Ta sama firma, ta sama sieć, a jedyna zmiana to szyfrowanie. Różnica między 60 ms a 167 ms to cena otoczenia zapytania protokołem HTTPS.
Zwykłe zapytanie DNS to jedna mała paczka wysłana przez port UDP 53 i jedna paczka zwrotna. DNS-over-HTTPS wysyła to samo pytanie w ramach pełnego połączenia TLS przez HTTPS, co oznacza uzgadnianie połączenia, sprawdzanie certyfikatów i konfigurację połączenia zanim rzeczywiste zapytanie zostanie wysłane. W przypadku zimnego połączenia to narzut jest większością opóźnienia widocznego w tabeli.
Odległość nadal się nakłada na to. Z Indii najbliższy punkt obecności Cloudflare, Quad9 lub NextDNS to dłuższa podróż niż do resolvera mojego dostawcy internetu, znajdującego się jeden skok dalej, więc również wymiana kluczy odbywa się dalej. Połączenie kosztu szyfrowania i geografii sprawia, że różnica 4-krotna zaczyna mieć sens.
Mój wynik nie jest przypadkiem; to geografia
To, gdzie mieszkasz, decyduje o tym, czy DoH wygra
Zanim założyłem, że coś źle skonfigurowałem, sprawdziłem, czy inni ludzie zauważają ten sam wzorzec. Globalne badanie porównujące DoH z tradycyjnym DNS wykazało, że odpowiedź w dużej mierze zależy od miejsca, w którym się znajdujesz. Naukowcy stwierdzili, że użytkownicy w gospodarkach o niższych dochodach, gdzie infrastruktura internetowa jest słabsza, mają około dwa razy większe prawdopodobieństwo spowolnienia po przejściu na DoH w porównaniu z użytkownikami w bogatszych gospodarkach.
To samo badanie wykazało, że tylko około 8,8% mierzonych gospodarek faktycznie uzyskało szybszy DNS dzięki DoH niż bez niego. Mój kraj nie należał do tego szczęśliwego mniejszościowego grona, a moje wyniki niemal idealnie pokrywają się z ustaleniami. Gdybym przeprowadził to z Niemiec lub USA, gdzie publiczne serwery DNS utrzymują gęste klastry serwerów, różnica byłaby znacznie mniejsza. Chociaż nadal nie byłoby to w stanie pokonać zwykłego DNS.
Wniosek nie jest taki, że szyfrowany DNS jest wolny. Wniosek jest taki, że szyfrowany DNS jest wolny stąd. To rozróżnienie jest warte podkreślenia, zanim skopiujesz benchmark, który ktoś opublikował z innego kontynentu, ponieważ najszybszy resolver na wykresie nie zawsze jest tym, który warto zachować.
Dlaczego wciąż korzystam z wolniejszej opcji
Ten wskaźnik mierzy moment, w którym rzadko żyjesz
Pomimo wolniejszego czasu reakcji, pozostałem przy zaszyfrowanym DNS i to z dobrego powodu. Mój skrypt mierzył każde zapytanie jako świeże, zimne, otwierając za każdym razem nowe zaszyfrowane połączenie. To najostrzejsze możliwe odczytanie DoH, ponieważ prawdziwa przeglądarka nie zachowuje się w ten sposób. Otwiera zaszyfrowane połączenie raz i ponownie używa go dla tysięcy zapytań, więc podatek za nawiązywanie połączenia, który zmierzyłem, płacony jest jednokrotnie, a nie przy każdej domenie.
Do tego dochodzi pamięć podręczna wyników DNS. Gdy Twój system rozwiąże youtube.com, nie pyta ponownie, dopóki rekord nie wygaśnie, więc szybkość resolvera jest odczuwalna tylko przy pierwszej wizycie na stronie od dłuższego czasu. Jednorazowa kara 130 ms przy zimnym odczycie jest niewidoczna w porównaniu z sekundą lub dwiema, jakie zajmuje załadowanie nowoczesnej strony. Naprawdę nie czuję różnicy podczas zwykłego przeglądania.
Czego nie mogę odzyskać od rozwiązywacza ISP, to prywatność. Każde zwykłe zapytanie przekazuje mojemu dostawcy domenę, mój adres IP i znacznik czasu w czytelnym tekście, co jest dokładnym powodem, dla którego przestałem ufać domyślnemu DNS mojego routera. Szyfrowany DNS zamienia tę czytelną listę w nieprzezroczysty strumień, którego nie mogą rozgryźć. Poświęciłem różnicę prędkości, której i tak nigdy nie zauważam, na korzyść prywatności, którą szczerze cenię, i na tych warunkach, to nie jest trudna decyzja do podjęcia.
Teraz ta wymiana niekoniecznie jest wolna dla każdego. Jeśli gonisz każdą milisekundę w rywalizacji gamingowej, albo korzystasz z połączenia mobilnego o wysokim opóźnieniu, gdzie zimne wyszukiwania naprawdę bolą, lokalny resolver jest szybszy i to poczujesz. Dla wszystkich innych spowolnienie istnieje niemal wyłącznie w benchmarku.
W teorii wolniejszy, w praktyce lepszy
Zdecydowałem się na DoH od Cloudflare jako mój codzienny resolver, głównie dlatego, że był najszybszą z zaszyfrowanych opcji, a ten narzut związany z połączeniem znika, gdy połączenie pozostaje otwarte. Quad9 wybieram wtedy, gdy jurysdykcja szwajcarska i ścisła polityka braku logów są ważniejsze niż kilka ostatnich milisekund, a NextDNS jest tym, gdzie mogę zdecydować dokładnie, co ma być zablokowane na każdym urządzeniu. Wszystkie trzy przegrały mój test prędkości, ale wszystkie wciąż wygrywają względem pozwolenia mojemu dostawcy internetu na odczytywanie każdego mojego zapytania.
Oczywiście, szedłem do tego spodziewając się, że szyfrowany DNS będzie szybszy lub przynajmniej na równi z domyślnym DNS, ale okazało się, że jest czterokrotnie wolniejszy z mojego punktu widzenia, i i tak go zostawiłem, ponieważ liczba, która przegrała w teście wydajności, to liczba, której nigdy nie zauważam. Jeśli resolver twojego ISP jest jeden przeskok dalej i szybki, DoH prawdopodobnie również przegra w twoim teście. To w porządku. Prędkość, której się wyrzekasz, to prędkość, której i tak nigdy byś nie odczuł.








