Jedna od značajki Chromiuma stvara veliko opterećenje korijenskih DNS poslužitelja

Jedna od značajki Chromiuma stvara veliko opterećenje korijenskih DNS poslužitelja

Preglednik Chromium, uspješan roditelj otvorenog koda Google Chromea i novog Microsoft Edgea, dobio je značajnu negativnu pozornost zbog značajke koja je bila namijenjena s dobrim namjerama: provjerava krade li korisnikov ISP "krade" rezultate upita nepostojeće domene .

Intranet detektor preusmjeravanja, koji stvara lažne upite za nasumične "domene" za koje je statistički malo vjerojatno da postoje, odgovoran je za otprilike polovicu ukupnog prometa koji primaju korijenski DNS poslužitelji diljem svijeta. Verisignov inženjer Matt Thomas napisao je opširno pošta na blogu APNIC-a opisujući problem i procjenjujući njegove razmjere.

Kako se obično izvodi DNS razrješenje

Jedna od značajki Chromiuma stvara veliko opterećenje korijenskih DNS poslužitelja
Ovi poslužitelji su najviše tijelo kojem biste se trebali obratiti za rješavanje .com, .net itd. kako bi vam rekli da frglxrtmpuf nije domena najviše razine (TLD).

DNS ili Domain Name System je sustav pomoću kojeg računala mogu razlučiti nezaboravna imena domena poput arstechnica.com u IP adrese koje su manje jednostavne za korištenje kao što je 3.128.236.93. Bez DNS-a Internet ne bi postojao na način koji bi ljudi mogli koristiti, što znači da je nepotrebno opterećenje infrastrukture na višoj razini pravi problem.

Učitavanje jedne moderne web stranice može zahtijevati nevjerojatan broj DNS pretraživanja. Na primjer, kada smo analizirali ESPN-ovu početnu stranicu, izbrojali smo 93 odvojena naziva domena, u rasponu od a.espncdn.com do z.motads.com. Sve su one neophodne da bi se stranica u potpunosti učitala!

Kako bi se prilagodio ovoj vrsti posla za tražilicu koja treba služiti cijelom svijetu, DNS je dizajniran kao hijerarhija na više razina. Na vrhu ove piramide su korijenski poslužitelji - svaka domena najviše razine, kao što je .com, ima vlastitu obitelj poslužitelja koji su najviši autoritet za svaku domenu ispod njih. Jedan korak gore od ovih poslužitelji su sami korijenski poslužitelji, od a.root-servers.net na m.root-servers.net.

Koliko često se to događa?

Zahvaljujući višerazinskoj hijerarhiji predmemoriranja DNS infrastrukture, vrlo mali postotak svjetskih DNS upita dolazi do korijenskih poslužitelja. Većina ljudi dobiva informacije o DNS razrjeđivaču izravno od svog ISP-a. Kada korisnikov uređaj treba znati kako doći do određene web stranice, zahtjev se prvo šalje DNS poslužitelju kojim upravlja taj lokalni pružatelj usluga. Ako lokalni DNS poslužitelj ne zna odgovor, prosljeđuje zahtjev vlastitim "prosljeđivačima" (ako je navedeno).

Ako niti DNS poslužitelj lokalnog pružatelja usluga niti "poslužitelji za prosljeđivanje" navedeni u njegovoj konfiguraciji nemaju odgovor u predmemoriji, zahtjev se podiže izravno autoritativnom poslužitelju domene iznad onaj koji pokušavate pretvoriti. Kada домен.com to će značiti da se zahtjev šalje mjerodavnim poslužiteljima same domene com, koji se nalaze na gtld-servers.net.

Sistem gtld-servers, na koji je upućen zahtjev, odgovara popisom autoritativnih imenskih poslužitelja za domenu domain.com, kao i najmanje jednim zapisom veze koji sadrži IP adresu jednog takvog imenskog poslužitelja. Zatim se odgovori kreću niz lanac - svaki prosljeđivač prosljeđuje te odgovore poslužitelju koji ih je zatražio, sve dok odgovor konačno ne stigne do poslužitelja lokalnog pružatelja usluga i računala korisnika. Svi oni pohranjuju ovaj odgovor u predmemoriju kako ne bi nepotrebno ometali sustave više razine.

U većini slučajeva zapisi poslužitelja imena za domena.com će već biti predmemorirana na jednom od ovih prosljeđivača, tako da korijenski poslužitelji neće biti ometani. Međutim, za sada govorimo o vrsti URL-a koji nam je poznat – onom koji se pretvara u običnu web stranicu. Chromeovi zahtjevi su na razini iznad ovo, na koraku samih grozdova root-servers.net.

Chromium i NXDomain provjera krađe

Jedna od značajki Chromiuma stvara veliko opterećenje korijenskih DNS poslužitelja
Chromium provjerava "vara li me ovaj DNS poslužitelj?" čine gotovo polovicu ukupnog prometa koji doseže Verisignov klaster korijenskih DNS poslužitelja.

Preglednik Chromium, roditeljski projekt Google Chromea, novog Microsoft Edgea i bezbrojnih manje poznatih preglednika, želi korisnicima pružiti jednostavno pretraživanje u jednom okviru, koji se ponekad naziva i "Omnibox". Drugim riječima, korisnik unosi stvarne URL-ove i upite tražilice u isto tekstualno polje na vrhu prozora preglednika. Poduzimajući još jedan korak prema pojednostavljenju, također ne prisiljava korisnika da unese dio URL-a sa http:// ili https://.

Koliko god to bilo zgodno, ovaj pristup zahtijeva da preglednik razumije što treba smatrati URL-om, a što upitom za pretraživanje. U većini slučajeva to je prilično očito - na primjer, niz s razmacima ne može biti URL. Ali stvari mogu postati složenije kada uzmete u obzir intranete—privatne mreže koje također mogu koristiti privatne domene najviše razine za rješavanje stvarnih web stranica.

Ako korisnik na intranetu svoje tvrtke upiše "marketing", a intranet tvrtke ima internu web stranicu s istim nazivom, Chromium prikazuje okvir s informacijama pitajući korisnika želi li pretražiti "marketing" ili otići na https://marketing. Ovo možda nije slučaj, ali mnogi ISP-ovi i javni Wi-Fi pružatelji "otimaju" svaki pogrešno napisani URL, preusmjeravajući korisnika na neku stranicu ispunjenu natpisima.

Nasumično generiranje

Razvojni programeri Chromiuma nisu željeli da korisnici na uobičajenim mrežama vide informativni okvir koji ih pita što misle svaki put kada pretražuju jednu riječ, pa su implementirali test: kada pokrenu preglednik ili promijene mrežu, Chromium izvodi DNS traženje na tri nasumično generirane "domene" najviše razine, duge sedam do petnaest znakova. Ako bilo koja dva od ovih zahtjeva vrate istu IP adresu, tada Chromium pretpostavlja da lokalna mreža "otima" pogreške NXDOMAIN, koje bi trebao primiti, tako da preglednik sve unesene upite od jedne riječi smatra pokušajima pretraživanja do daljnjega.

Nažalost, u mrežama koje ne kradu rezultate DNS upita, ove tri operacije se obično penju na sam vrh, sve do samih korijenskih poslužitelja imena: lokalni poslužitelj ne zna kako riješiti qwajuixk, pa taj zahtjev prosljeđuje svom prosljeđivaču, koji čini isto, dok konačno a.root-servers.net ili netko od njegove "braće" neće biti prisiljen reći "Oprosti, ali ovo nije domena."

Budući da postoji otprilike 1,67*10^21 mogućih lažnih naziva domena duljine od sedam do petnaest znakova, najčešći svaki od ovih testova izvedenih na "poštenoj" mreži, dolazi do korijenskog poslužitelja. Ovo iznosi isto toliko pola od ukupnog opterećenja korijenskog DNS-a, prema statistici iz tog dijela klastera root-servers.net, koji su u vlasništvu Verisigna.

Povijest se ponavlja

Ovo nije prvi put da je projekt nastao u najboljoj namjeri neuspjeh ili gotovo preplavio javni resurs nepotrebnim prometom - ovo nas je odmah podsjetilo na dugu i tužnu povijest D-Link i Poul-Henning Kampovog NTP (Network Time Protocol) poslužitelja sredinom 2000-ih.

Godine 2005., programer FreeBSD-a, Poul-Henning, koji je također bio vlasnik jedinog danskog servera Stratum 1 Network Time Protocol, primio je neočekivani i veliki račun za preneseni promet. Ukratko, razlog je bio taj što su programeri D-Linka upisali adrese Stratum 1 NTP poslužitelja, uključujući poslužitelj Kampa, u firmware linije preklopnika, usmjerivača i pristupnih točaka tvrtke. Ovo je trenutačno deveterostruko povećalo promet Kampinog poslužitelja, zbog čega je Danish Internet Exchange (Danska Internet Exchange Point) promijenio svoju tarifu s "Besplatno" na "9 USD godišnje".

Problem nije bio u tome što je bilo previše D-Link usmjerivača, već u tome što su bili "izvan linije". Slično kao i DNS, NTP mora funkcionirati u hijerarhijskom obliku - poslužitelji sloja 0 prosljeđuju informacije poslužiteljima sloja 1, koji prosljeđuju informacije poslužiteljima sloja 2, i tako dalje niz hijerarhiju. Tipični kućni usmjerivač, preklopnik ili pristupna točka poput one koju je D-Link programirao s adresama NTP poslužitelja slali bi zahtjeve poslužitelju Stratum 2 ili Stratum 3.

Projekt Chromium, vjerojatno s najboljom namjerom, preslikao je problem NTP-a na problem DNS-a, učitavajući korijenske internetske poslužitelje zahtjevima koje nikad nisu trebali obraditi.

Ima nade za brzo rješenje

Projekt Chromium ima otvoreni kod buba, što zahtijeva onemogućavanje detektora preusmjeravanja intraneta prema zadanim postavkama da bi se riješio ovaj problem. Moramo odati priznanje projektu Chromium: greška je pronađena prije togakako mu je Matt Thomas iz Verisigna svojim objaviti na APNIC blogu. Greška je otkrivena u lipnju, ali je ostala zaboravljena sve do Thomasove objave; Nakon posta, počeo je biti pod strogim nadzorom.

Nadamo se da će problem uskoro biti riješen i da root DNS poslužitelji više neće morati odgovarati na procijenjenih 60 milijardi lažnih upita svaki dan.

O pravima oglašavanja

Epski poslužitelji - Je VPS na Windowsima ili Linux sa snažnim procesorima obitelji AMD EPYC i vrlo brzim Intel NVMe diskovima. Požurite s narudžbom!

Jedna od značajki Chromiuma stvara veliko opterećenje korijenskih DNS poslužitelja

Izvor: www.habr.com

Dodajte komentar