Ena od funkcij Chromiuma ustvarja ogromno obremenitev korenskih strežnikov DNS

Ena od funkcij Chromiuma ustvarja ogromno obremenitev korenskih strežnikov DNS

Brskalnik Chromium, uspešen odprtokodni starš brskalnika Google Chrome in novega Microsoft Edge, je bil deležen precejšnje negativne pozornosti zaradi funkcije, ki je bila mišljena z dobrimi nameni: preverja, ali ponudnik internetnih storitev uporabnika "krade" neobstoječe rezultate poizvedbe domene .

Detektor preusmeritve intraneta, ki ustvarja lažne poizvedbe za naključne "domene", za katere je statistično malo verjetno, da obstajajo, je odgovoren za približno polovico celotnega prometa, ki ga prejmejo korenski strežniki DNS po vsem svetu. Inženir Verisign Matt Thomas je napisal obsežen post na blogu APNIC z opisom problema in oceno njegovega obsega.

Kako se običajno izvaja razrešitev DNS

Ena od funkcij Chromiuma ustvarja ogromno obremenitev korenskih strežnikov DNS
Ti strežniki so najvišji organ, na katerega se morate obrniti za razrešitev .com, .net itd., tako da vam bodo povedali, da frglxrtmpuf ni domena najvišje ravni (TLD).

DNS ali sistem domenskih imen je sistem, s katerim lahko računalniki razrešijo nepozabna imena domen, kot je arstechnica.com, v veliko manj uporabniku prijazne naslove IP, kot je 3.128.236.93. Brez DNS internet ne bi obstajal na način, ki bi ga ljudje lahko uporabljali, kar pomeni, da je nepotrebna obremenitev infrastrukture na višji ravni resničen problem.

Nalaganje ene same sodobne spletne strani lahko zahteva neverjetno število iskanj DNS. Na primer, ko smo analizirali domačo stran ESPN, smo prešteli 93 ločenih imen domen, od a.espncdn.com do z.motads.com. Vse so potrebne, da se stran v celoti naloži!

Za prilagoditev te vrste delovne obremenitve za iskalnik, ki mora služiti celotnemu svetu, je DNS zasnovan kot hierarhija na več ravneh. Na vrhu te piramide so korenski strežniki – vsaka domena najvišje ravni, kot je .com, ima svojo družino strežnikov, ki so najvišja avtoriteta za vsako domeno pod njimi. En korak naprej od teh strežniki so sami korenski strežniki, od a.root-servers.net za m.root-servers.net.

Kako pogosto se to zgodi?

Zahvaljujoč večnivojski hierarhiji predpomnjenja infrastrukture DNS zelo majhen odstotek svetovnih poizvedb DNS doseže korenske strežnike. Večina ljudi dobi informacije o razreševalniku DNS neposredno od ponudnika internetnih storitev. Ko mora naprava uporabnika vedeti, kako priti do določenega spletnega mesta, se zahteva najprej pošlje strežniku DNS, ki ga upravlja ta lokalni ponudnik. Če lokalni strežnik DNS ne pozna odgovora, posreduje zahtevo svojim »posredovalcem« (če je določeno).

Če niti DNS strežnik lokalnega ponudnika niti "posredovalni strežniki", določeni v njegovi konfiguraciji, nimajo predpomnjenega odgovora, se zahteva dvigne neposredno na avtoritativni domenski strežnik zgoraj tistega, ki ga poskušate pretvoriti. Kdaj домен.com to bo pomenilo, da se zahteva pošlje avtoritativnim strežnikom same domene com, ki se nahajajo na gtld-servers.net.

Sistem gtld-servers, na katerega je bila vložena zahteva, odgovori s seznamom avtoritativnih imenskih strežnikov za domeno domain.com ter vsaj enim zapisom povezave, ki vsebuje naslov IP enega takega imenskega strežnika. Nato se odgovori pomaknejo navzdol po verigi - vsak posrednik posreduje te odgovore navzdol do strežnika, ki jih je zahteval, dokler odgovor končno ne doseže strežnika lokalnega ponudnika in uporabnikovega računalnika. Vsi ta odgovor shranijo v predpomnilnik, da ne bi po nepotrebnem motili sistemov višje ravni.

V večini primerov zapisi imenskega strežnika za domena.com bo že predpomnjen na enem od teh posrednikov, tako da korenski strežniki ne bodo moteni. Vendar zaenkrat govorimo o tipu URL-ja, ki ga poznamo – tistem, ki se pretvori v običajno spletno mesto. Zahteve za Chrome so na ravni zgoraj to, na koraku samih grozdov root-servers.net.

Preverjanje kraje Chromium in NXDomain

Ena od funkcij Chromiuma ustvarja ogromno obremenitev korenskih strežnikov DNS
Chromium preveri, ali me ta strežnik DNS zavaja? predstavljajo skoraj polovico vsega prometa, ki doseže Verisignovo gručo korenskih strežnikov DNS.

Brskalnik Chromium, nadrejeni projekt Google Chroma, novega Microsoft Edge in nešteto manj znanih brskalnikov, želi uporabnikom zagotoviti enostavno iskanje v enem samem polju, včasih imenovanem "Naslovna vrstica". Z drugimi besedami, uporabnik v isto besedilno polje na vrhu okna brskalnika vnese dejanske URL-je in poizvedbe iskalnika. Še en korak k poenostavitvi uporabnika tudi ne prisili, da vnese del URL-ja z http:// ali https://.

Čeprav je to priročno, ta pristop zahteva, da brskalnik razume, kaj je treba šteti za URL in kaj za iskalno poizvedbo. V večini primerov je to precej očitno - na primer, niz s presledki ne more biti URL. Toda stvari lahko postanejo težje, če upoštevate intranete – zasebna omrežja, ki lahko uporabljajo tudi zasebne domene najvišje ravni za razreševanje resničnih spletnih mest.

Če uporabnik na intranetu svojega podjetja vnese »trženje« in ima intranet podjetja interno spletno mesto z istim imenom, potem Chromium prikaže informacijsko polje z vprašanjem, ali želi iskati »trženje« ali iti na https://marketing. To morda ne drži, vendar mnogi ponudniki internetnih storitev in javnih ponudnikov Wi-Fi "ugrabijo" vsak napačno črkovani URL in uporabnika preusmerijo na stran, polno pasic.

Naključna generacija

Razvijalci Chromiuma niso želeli, da bi uporabniki v običajnih omrežjih vsakič, ko iščejo posamezno besedo, videli informacijsko polje z vprašanjem, kaj so mislili, zato so izvedli preizkus: Ko zaženejo brskalnik ali spremenijo omrežje, Chromium izvede iskanje DNS na treh naključno generirane "domene" najvišje ravni, dolge od sedem do petnajst znakov. Če se katera koli od teh zahtev vrneta z istim naslovom IP, potem Chromium domneva, da lokalno omrežje "ugrabi" napake NXDOMAIN, ki bi jih moral prejeti, tako da brskalnik vse vnesene enobesedne poizvedbe do nadaljnjega šteje za poskuse iskanja.

Na žalost v omrežjih, ki ne krajo rezultatov poizvedb DNS, se te tri operacije običajno dvignejo na sam vrh, vse do samih korenskih imenskih strežnikov: lokalni strežnik ne ve, kako rešiti qwajuixk, zato to zahtevo posreduje svojemu posredovalcu, ki stori enako, dokler končno a.root-servers.net ali eden od njegovih "bratov" ne bo prisiljen reči "Oprosti, toda to ni domena."

Ker obstaja približno 1,67*10^21 možnih lažnih domenskih imen, dolgih od sedem do petnajst znakov, so najpogostejša vsak iz teh testov, izvedenih na "poštenem" omrežju, pride do korenskega strežnika. To znese toliko pol od skupne obremenitve korenskega DNS-ja glede na statistične podatke iz tega dela gruč root-servers.net, ki so v lasti družbe Verisign.

Zgodovina se ponavlja

To ni prvič, da je projekt ustvarjen z najboljšimi nameni ni uspelo ali skoraj preplavil javni vir z nepotrebnim prometom - to nas je takoj spomnilo na dolgo in žalostno zgodovino strežnika D-Link in Poul-Henning Kampa NTP (Network Time Protocol) sredi 2000-ih.

Leta 2005 je razvijalec FreeBSD Poul-Henning, ki je bil tudi lastnik edinega danskega strežnika Stratum 1 Network Time Protocol, prejel nepričakovan in visok račun za preneseni promet. Skratka, razlog je bil v tem, da so razvijalci D-Linka zapisali naslove strežnikov Stratum 1 NTP, vključno s strežnikom Kampa, v strojno programsko opremo linije stikal, usmerjevalnikov in dostopnih točk podjetja. To je nemudoma povečalo promet Kampinega strežnika za devetkrat, zaradi česar je danska internetna izmenjava (danska točka internetne izmenjave) spremenila svojo tarifo iz »brezplačne« v »9 $ na leto«.

Težava ni bila v tem, da je bilo usmerjevalnikov D-Link preveč, ampak v tem, da so bili »izven linije«. Podobno kot DNS mora tudi NTP delovati v hierarhični obliki – strežniki Stratum 0 posredujejo informacije strežnikom Stratum 1, ti posredujejo informacije strežnikom Stratum 2 in tako naprej po hierarhiji. Običajni domači usmerjevalnik, stikalo ali dostopna točka, kot je tista, ki jo je D-Link programiral z naslovi strežnika NTP, bi pošiljala zahteve strežniku Stratum 2 ali Stratum 3.

Projekt Chromium je, verjetno z najboljšimi nameni, ponovil težavo NTP v težavi DNS in naložil korenske strežnike interneta z zahtevami, ki jih nikoli niso bili namenjeni obravnavanju.

Obstaja upanje za hitro rešitev

Projekt Chromium ima odprto kodo hrošček, ki za rešitev te težave zahteva privzeto onemogočanje zaznavalnika preusmeritve intraneta. Projektu Chromium moramo priznati priznanje: napaka je bila najdena pred temkako mu je Matt Thomas iz Verisigna pritegnil veliko pozornosti s svojim na tešče na blogu APNIC. Hrošč je bil odkrit junija, a je ostal pozabljen do Thomasove objave; Po postu je začel biti pod strogim nadzorom.

Upamo, da bo težava kmalu odpravljena in korenskim strežnikom DNS ne bo več treba vsak dan odgovarjati na približno 60 milijard lažnih poizvedb.

O pravicah oglaševanja

Epski strežniki - Je VPS v sistemu Windows ali Linux z zmogljivimi procesorji družine AMD EPYC in zelo hitrimi pogoni Intel NVMe. Pohitite z naročilom!

Ena od funkcij Chromiuma ustvarja ogromno obremenitev korenskih strežnikov DNS

Vir: www.habr.com

Dodaj komentar