Üks Chromiumi funktsioonidest tekitab juur-DNS-serveritele tohutu koormuse

Üks Chromiumi funktsioonidest tekitab juur-DNS-serveritele tohutu koormuse

Chromiumi brauser, Google Chrome'i ja uue Microsoft Edge'i edukas avatud lähtekoodiga vanem, on pälvinud märkimisväärset negatiivset tähelepanu heade kavatsustega mõeldud funktsioonile: see kontrollib, kas kasutaja Interneti-teenuse pakkuja "varastab" olematuid domeenipäringu tulemusi. .

Intraneti ümbersuunamise detektor, mis loob võltspäringuid juhuslike "domeenide" jaoks, mille olemasolu on statistiliselt ebatõenäoline, vastutab ligikaudu poole kogu liiklusest, mida juur-DNS-serverid kogu maailmas saavad. Verisigni insener Matt Thomas kirjutas pika kirja postitus APNIC blogis, kus kirjeldatakse probleemi ja hinnatakse selle ulatust.

Kuidas DNS-i lahendamine tavaliselt toimub

Üks Chromiumi funktsioonidest tekitab juur-DNS-serveritele tohutu koormuse
Need serverid on kõrgeim asutus, millega peaksite ühendust võtma, et lahendada .com, .net jne, et nad teataks teile, et frglxrtmpuf ei ole tippdomeen (TLD).

DNS ehk domeeninimesüsteem on süsteem, mille abil arvutid saavad meeldejäävad domeeninimed, nagu arstechnica.com, muuta palju vähem kasutajasõbralikeks IP-aadressideks, nagu 3.128.236.93. Ilma DNS-ita ei eksisteeriks Internet viisil, mida inimesed saaksid kasutada, mis tähendab, et ülemise taseme infrastruktuuri tarbetu koormus on tõeline probleem.

Ühe kaasaegse veebilehe laadimine võib nõuda uskumatult palju DNS-i otsinguid. Näiteks ESPN-i kodulehte analüüsides loendasime 93 eraldi domeeninime, alates a.espncdn.com kuni z.motads.com. Kõik need on vajalikud lehe täielikuks laadimiseks!

Kogu maailma teenindava otsingumootori seda tüüpi töökoormuse kohandamiseks on DNS loodud mitmetasandilise hierarhiana. Selle püramiidi ülaosas on juurserverid – igal tippdomeenil, näiteks .com-il, on oma serverite perekond, mis on iga nende all oleva domeeni kõrgeim autoriteet. Üks samm üles need serverid on juurserverid ise a.root-servers.net kuni m.root-servers.net.

Kui tihti seda juhtub?

Tänu DNS-infrastruktuuri mitmetasandilisele vahemällu salvestamise hierarhiale jõuab juurserveritesse väga väike protsent maailma DNS-päringutest. Enamik inimesi saab oma DNS-i lahendaja teabe otse oma Interneti-teenuse pakkujalt. Kui kasutaja seade peab teadma, kuidas konkreetsele veebisaidile pääseda, saadetakse esmalt päring selle kohaliku teenusepakkuja hallatavale DNS-serverile. Kui kohalik DNS-server vastust ei tea, edastab ta päringu oma edasisaatjatele (kui see on määratud).

Kui ei kohaliku teenusepakkuja DNS-serveril ega selle konfiguratsioonis määratud "edasitusserveritel" pole vahemällu salvestatud vastust, suunatakse päring otse autoriteetsele domeeniserverile üle mida proovite teisendada. Millal домен.com see tähendab, et päring saadetakse domeeni enda autoriteetsetele serveritele com, mis asuvad aadressil gtld-servers.net.

Süsteem gtld-servers, millele päring tehti, vastab domeeni domain.com autoriteetsete nimeserverite loendiga, samuti vähemalt ühe lingikirjega, mis sisaldab ühe sellise nimeserveri IP-aadressi. Järgmisena liiguvad vastused ahelas allapoole – iga ekspediitor edastab need vastused neid küsinud serverile, kuni lõpuks jõuab vastus kohaliku pakkuja serverisse ja kasutaja arvutisse. Kõik nad salvestavad selle vastuse vahemällu, et mitte kõrgema taseme süsteeme asjatult häirida.

Enamasti salvestab nimeserver domain.com on juba vahemällu ühes neist edasisaatjatest, nii et juurservereid ei häirita. Praegu räägime aga meile tuttava URL-i tüübist – sellest, mis teisendatakse tavaliseks veebisaidiks. Chrome'i taotlused on tasemel üle seda klastrite endi astmel root-servers.net.

Chromiumi ja NXDomaini varguse kontroll

Üks Chromiumi funktsioonidest tekitab juur-DNS-serveritele tohutu koormuse
Chromium kontrollib "kas see DNS-server lollitab mind?" moodustavad peaaegu poole kogu liiklusest, mis jõuab Verisigni juur-DNS-serverite klastrisse.

Chromiumi brauser, Google Chrome'i, uue Microsoft Edge'i ja lugematute vähemtuntud brauserite põhiprojekt, soovib pakkuda kasutajatele lihtsat otsimist ühes kastis, mida mõnikord nimetatakse ka omnikastiks. Teisisõnu sisestab kasutaja brauseriakna ülaosas samale tekstiväljale nii päris URL-id kui ka otsingumootori päringud. Astudes veel ühe sammu lihtsustamise suunas, ei sunni see kasutajat sisestama osa URL-ist http:// või https://.

Nii mugav kui see ka pole, nõuab see lähenemine, et brauser mõistaks, mida tuleks pidada URL-iks ja mida otsingupäringuks. Enamikul juhtudel on see üsna ilmne – näiteks ei saa tühikutega string olla URL. Kuid asjad võivad muutuda keerulisemaks, kui arvestada sisevõrke – privaatvõrke, mis võivad tõeliste veebisaitide lahendamiseks kasutada ka privaatseid tippdomeene.

Kui kasutaja sisestab oma ettevõtte siseveebis sõna "turundus" ja ettevõtte siseveebis on sama nimega siseveebisait, kuvab Chromium teabekasti, mis küsib kasutajalt, kas ta soovib otsida sõna "turundus" või minna https://marketing. See ei pruugi nii olla, kuid paljud Interneti-teenuse pakkujad ja avalikud WiFi-teenuse pakkujad "kaaperdavad" iga valesti kirjutatud URL-i, suunates kasutaja mõnele bänneriga täidetud lehele.

Juhuslik genereerimine

Chromiumi arendajad ei soovinud, et tavavõrkude kasutajad näeksid teabekasti, mis küsib, mida nad mõtlevad iga kord, kui nad ühe sõna otsisid, mistõttu nad rakendasid testi: brauseri käivitamisel või võrkude vahetamisel teeb Chromium DNS-i otsinguid kolmel. juhuslikult genereeritud "domeenid" tipptasemel, seitsme kuni viieteistkümne tähemärgi pikkused. Kui kaks neist päringutest naasevad sama IP-aadressiga, eeldab Chromium, et kohalik võrk kaaperdab vead NXDOMAIN, mille ta peaks vastu võtma, nii et brauser käsitleb kõiki sisestatud ühesõnalisi päringuid kuni edasise teatamiseni otsingukatsetena.

Kahjuks võrkudes, mis ei varastada DNS-päringute tulemusi, tõusevad need kolm toimingut tavaliselt kõige kõrgemale, kuni juurnimeserveriteni: kohalik server ei tea, kuidas lahendada qwajuixk, seega edastab selle päringu edasisaatjale, kes teeb sama kuni lõpuks a.root-servers.net või üks tema "vendadest" ei ole sunnitud ütlema "Vabandust, aga see pole domeen".

Kuna võimalikke võltsdomeeninimesid on ligikaudu 1,67*10^21 pikkusega seitsme kuni viieteistkümne tähemärgini, on kõige levinum igaüks nendest "ausas" võrgus tehtud testidest jõuab see juurserverisse. See on sama palju pool juur-DNS-i kogukoormusest vastavalt klastrite selle osa statistikale root-servers.net, mis kuuluvad Verisignile.

Ajalugu kordab ennast

See pole esimene kord, kui projekt loodi parimate kavatsustega ebaõnnestunud või peaaegu ujutas üle avaliku ressursi tarbetu liiklusega – see tuletas meile kohe meelde D-Linki ja Poul-Henning Kampi NTP (Network Time Protocol) serveri pikka ja kurba ajalugu 2000. aastate keskel.

2005. aastal sai FreeBSD arendaja Poul-Henning, kellele kuulus ka Taani ainus Stratum 1 Network Time Protocol server, ootamatu ja suure arve edastatud liikluse eest. Lühidalt öeldes oli põhjus selles, et D-Linki arendajad kirjutasid Stratum 1 NTP-serverite, sealhulgas Kampa serveri aadressid ettevõtte lülitite, ruuterite ja pääsupunktide rea püsivarasse. See suurendas koheselt Kampa serveriliiklust üheksa korda, mistõttu Taani Interneti-vahetuspunkt (Taani Interneti-vahetuspunkt) muutis oma tariifi "Tasuta" asemel "9 dollarit aastas".

Probleem polnud selles, et D-Linki ruutereid oli liiga palju, vaid selles, et need olid rivist väljas. Sarnaselt DNS-iga peab NTP toimima hierarhilisel kujul – Stratum 0 serverid edastavad teavet Stratum 1 serveritele, mis edastavad teavet Stratum 2 serveritele ja nii edasi hierarhias allapoole. Tüüpiline koduruuter, lüliti või pääsupunkt, nagu see, mille D-Link oli programmeerinud NTP-serveri aadressidega, saadaks päringuid Stratum 2 või Stratum 3 serverile.

Chromiumi projekt, ilmselt parimate kavatsustega, kordas NTP probleemi DNS-i probleemis, laadides Interneti juurserverid päringutega, mida nad kunagi ei pidanud käsitlema.

On lootust kiirele lahendusele

Chromiumi projektil on avatud lähtekood viga, mis nõuab selle probleemi lahendamiseks vaikimisi sisevõrgu ümbersuunamisdetektori keelamist. Peame Chromiumi projektile tunnustust andma: viga leiti enne sedakuidas Verisigni Matt Thomas tõi talle omaga palju tähelepanu paastumine APNIC ajaveebis. Viga avastati juunis, kuid jäi kuni Thomase postituseni unustusse; Pärast paastumist hakkas ta olema hoolika järelevalve all.

Loodetavasti laheneb probleem peagi ja juur-DNS-serverid ei pea enam iga päev vastama hinnanguliselt 60 miljardile võltspäringule.

Reklaamide õiguste kohta

Eepilised serverid - Kas VPS Windowsis või Linux võimsate AMD EPYC perekonna protsessorite ja väga kiirete Inteli NVMe draividega. Kiirusta tellima!

Üks Chromiumi funktsioonidest tekitab juur-DNS-serveritele tohutu koormuse

Allikas: www.habr.com

Lisa kommentaar