Jedna z funkcí prohlížeče Chromium vytváří obrovské zatížení kořenových serverů DNS

Jedna z funkcí prohlížeče Chromium vytváří obrovské zatížení kořenových serverů DNS

Prohlížeč Chromium, prosperující open source rodič Google Chrome a nového Microsoft Edge, získal značnou negativní pozornost kvůli funkci, která byla zamýšlena s dobrými úmysly: kontroluje, zda ISP uživatele „nekrade“ neexistující výsledky dotazů na doménu. .

Intranet Redirect Detector, která vytváří falešné dotazy pro náhodné „domény“, u nichž je statisticky nepravděpodobné, že by existovaly, je zodpovědná za přibližně polovinu celkového provozu přijatého kořenovými servery DNS po celém světě. Inženýr Verisign Matt Thomas napsal dlouhý zveřejnit na blogu APNIC popisující problém a hodnocení jeho rozsahu.

Jak se obvykle provádí překlad DNS

Jedna z funkcí prohlížeče Chromium vytváří obrovské zatížení kořenových serverů DNS
Tyto servery jsou nejvyšší autoritou, na kterou byste se měli obrátit při řešení .com, .net atd., aby vám řekli, že frglxrtmpuf není doména nejvyšší úrovně (TLD).

DNS neboli Domain Name System je systém, pomocí kterého mohou počítače překládat zapamatovatelné názvy domén, jako je arstechnica.com, na mnohem méně uživatelsky přívětivé IP adresy, jako je 3.128.236.93. Bez DNS by internet neexistoval způsobem, který by lidé mohli používat, což znamená, že zbytečné zatížení infrastruktury vyšší úrovně je skutečným problémem.

Načtení jedné moderní webové stránky může vyžadovat neuvěřitelné množství vyhledávání DNS. Když jsme například analyzovali domovskou stránku ESPN, napočítali jsme 93 samostatných doménových jmen, od a.espncdn.com po z.motads.com. Všechny jsou nutné pro plné načtení stránky!

Aby se přizpůsobil tomuto typu zátěže pro vyhledávač, který musí obsluhovat celý svět, je DNS navržen jako víceúrovňová hierarchie. Na vrcholu této pyramidy jsou kořenové servery – každá doména nejvyšší úrovně, například .com, má svou vlastní rodinu serverů, které jsou nejvyšší autoritou pro každou doménu pod nimi. O krok výš tyto servery jsou samotné kořenové servery, od a.root-servers.net na m.root-servers.net.

Jak často se to děje?

Díky víceúrovňové hierarchii mezipaměti infrastruktury DNS se velmi malé procento světových dotazů DNS dostává na kořenové servery. Většina lidí získává informace o DNS resolveru přímo od svého ISP. Když zařízení uživatele potřebuje vědět, jak se dostat na konkrétní webovou stránku, je nejprve odeslán požadavek na server DNS spravovaný tímto místním poskytovatelem. Pokud lokální DNS server nezná odpověď, předá požadavek svým vlastním „forwarderům“ (pokud jsou specifikovány).

Pokud ani server DNS místního poskytovatele ani „servery pro přesměrování“ uvedené v jeho konfiguraci nemají odpověď uloženou v mezipaměti, požadavek je předán přímo autoritativnímu doménovému serveru. nad ten, který se pokoušíte převést. Když домен.com to bude znamenat, že požadavek je odeslán na autoritativní servery samotné domény com, které se nacházejí na gtld-servers.net.

systém gtld-servers, na který byl požadavek podán, odpoví seznamem autoritativních jmenných serverů pro doménu domain.com a také alespoň jedním záznamem odkazu obsahujícím IP adresu jednoho takového jmenného serveru. Dále se odpovědi pohybují v řetězci - každý předávající předává tyto odpovědi dolů na server, který si je vyžádal, dokud odpověď nakonec nedorazí na server místního poskytovatele a na počítač uživatele. Všechny tuto odpověď ukládají do mezipaměti, aby zbytečně nerušily systémy vyšší úrovně.

Ve většině případů názvový server zaznamenává pro doména.com budou již uloženy v mezipaměti na jednom z těchto serverů pro předávání, takže kořenové servery nebudou narušeny. Zatím však mluvíme o typu URL, který známe – o té, která je převedena na běžný web. Požadavky Chrome jsou na úrovni nad to na stupni samotných shluků root-servers.net.

Kontrola krádeže Chromium a NXDomain

Jedna z funkcí prohlížeče Chromium vytváří obrovské zatížení kořenových serverů DNS
Chromium zkontroluje, zda mě tento server DNS oklame? představují téměř polovinu veškerého provozu dosahujícího cluster kořenových serverů DNS společnosti Verisign.

Prohlížeč Chromium, mateřský projekt Google Chrome, nový Microsoft Edge a nespočet méně známých prohlížečů, chce uživatelům poskytnout snadné vyhledávání v jediném poli, kterému se někdy říká „Omnibox“. Jinými slovy, uživatel zadává jak skutečné adresy URL, tak dotazy vyhledávače do stejného textového pole v horní části okna prohlížeče. Učiní další krok ke zjednodušení a také nenutí uživatele zadávat část adresy URL http:// nebo https://.

Jakkoli je to pohodlné, tento přístup vyžaduje, aby prohlížeč porozuměl tomu, co by mělo být považováno za URL a co by mělo být považováno za vyhledávací dotaz. Ve většině případů je to docela zřejmé – například řetězec s mezerami nemůže být URL. Ale věci mohou být složitější, když vezmete v úvahu intranety - soukromé sítě, které mohou také používat soukromé domény nejvyšší úrovně k řešení skutečných webových stránek.

Pokud uživatel na intranetu své společnosti zadá „marketing“ a intranet společnosti má interní web se stejným názvem, Chromium zobrazí informační okno s dotazem, zda chce vyhledat „marketing“ nebo přejít na https://marketing. Nemusí tomu tak být, ale mnoho ISP a veřejných poskytovatelů Wi-Fi „unese“ každou chybně napsanou adresu URL a přesměruje uživatele na nějakou stránku plnou bannerů.

Náhodné generování

Vývojáři Chromia nechtěli, aby uživatelé v běžných sítích viděli informační pole s dotazem, co mají na mysli pokaždé, když hledají jedno slovo, a tak zavedli test: Když spustí prohlížeč nebo změní sítě, Chromium provede vyhledávání DNS na třech náhodně generované "domény" nejvyšší úrovně, sedm až patnáct znaků dlouhé. Pokud se kterékoli dva z těchto požadavků vrátí se stejnou IP adresou, Chromium předpokládá, že chyby „unáší“ místní síť NXDOMAIN, který by měl obdržet, takže prohlížeč až do odvolání považuje všechny zadané jednoslovné dotazy za pokusy o hledání.

Bohužel v sítích, že ne krást výsledky dotazů DNS, tyto tři operace se obvykle dostanou na vrchol, až k samotným kořenovým jmenným serverům: místní server neví, jak to vyřešit qwajuixk, tak předá tento požadavek svému přeposílání, který udělá totéž, až nakonec a.root-servers.net nebo jeden z jeho „bratrů“ nebude nucen říci „Promiň, ale tohle není doména“.

Protože existuje přibližně 1,67*10^21 možných falešných doménových jmen o délce od sedmi do patnácti znaků, nejčastější každý z těchto testů provedených na „čestné“ síti se dostane na kořenový server. To činí tolik polovina z celkového zatížení kořenového DNS, podle statistik z této části clusterů root-servers.net, které jsou ve vlastnictví Verisign.

Historie se opakuje

Není to poprvé, co projekt vznikl s nejlepšími úmysly nepodařilo nebo málem zahltil veřejný zdroj zbytečným provozem – to nám okamžitě připomnělo dlouhou a smutnou historii NTP (Network Time Protocol) serveru D-Link a Poul-Henning Kampa v polovině 2000.

V roce 2005 obdržel vývojář FreeBSD Poul-Henning, který také vlastnil jediný dánský server Stratum 1 Network Time Protocol, neočekávaný a velký účet za přenášený provoz. Stručně řečeno, důvodem bylo, že vývojáři D-Link zapsali adresy NTP serverů Stratum 1, včetně serveru Kampa, do firmwaru firemní řady přepínačů, směrovačů a přístupových bodů. To okamžitě zvýšilo provoz na serveru Kampa devítinásobně, což způsobilo, že dánská internetová burza (Internet Exchange Point v Dánsku) změnila svůj tarif z „zdarma“ na „9 000 $ ročně“.

Problém nebyl v tom, že by bylo příliš mnoho směrovačů D-Link, ale v tom, že byly „mimo čáru“. Podobně jako DNS musí NTP fungovat v hierarchické formě – servery vrstvy 0 předávají informace serverům vrstvy 1, které předávají informace serverům vrstvy 2, a tak dále v hierarchii. Typický domácí router, přepínač nebo přístupový bod, jako je ten, který D-Link naprogramoval s adresami NTP serveru, by posílal požadavky na server Stratum 2 nebo Stratum 3.

Projekt Chromium, pravděpodobně s nejlepšími úmysly, replikoval problém NTP v problému DNS a zatěžoval kořenové servery internetu požadavky, které nikdy neměly zpracovávat.

Existuje naděje na rychlé řešení

Projekt Chromium má otevřený zdroj chyba, což vyžaduje k vyřešení tohoto problému ve výchozím nastavení deaktivovat detektor přesměrování intranetu. Musíme pochválit projekt Chromium: chyba byla nalezena dřívejak mu Matt Thomas z Verisignu přinesl velkou pozornost svými půst na blogu APNIC. Chyba byla objevena v červnu, ale zůstala zapomenuta až do Thomasova příspěvku; Po půstu začal být pod přísným dohledem.

Doufáme, že problém bude brzy vyřešen a kořenové servery DNS již nebudou muset odpovídat na odhadovaných 60 miliard falešných dotazů každý den.

Jako reklama

Epické servery - Je VPS na Windows nebo Linux s výkonnými procesory rodiny AMD EPYC a velmi rychlými disky Intel NVMe. Pospěšte si s objednávkou!

Jedna z funkcí prohlížeče Chromium vytváří obrovské zatížení kořenových serverů DNS

Zdroj: www.habr.com

Přidat komentář