Jedna od karakteristika Chromiuma stvara ogromno opterećenje na root DNS serverima

Jedna od karakteristika Chromiuma stvara ogromno opterećenje na root DNS serverima

Chromium preglednik, uspješan open-source roditelj Google Chromea i novog Microsoft Edgea, dobio je značajnu negativnu pažnju zbog funkcije koja je bila namijenjena s dobrim namjerama: provjerava da li korisnikov ISP "krade" nepostojeće rezultate upita za domenu .

Intranet Redirect Detector, koji stvara lažne upite za nasumične "domene" za koje je statistički malo vjerovatno da će postojati, odgovoran je za otprilike polovinu ukupnog prometa koji primaju root DNS serveri širom svijeta. Verisign inženjer Matt Thomas napisao je poduže post na blogu APNIC opisuje problem i procjenjuje njegove razmjere.

Kako se obično izvodi DNS razlučivanje

Jedna od karakteristika Chromiuma stvara ogromno opterećenje na root DNS serverima
Ovi serveri su najviše ovlaštenje koje trebate kontaktirati da biste riješili .com, .net, itd., tako da će vam reći da frglxrtmpuf nije domen najvišeg nivoa (TLD).

DNS, ili Sistem imena domena, je sistem pomoću kojeg računari mogu da razlože nezaboravna imena domena kao što je arstechnica.com u mnogo manje prilagođene IP adrese 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 na infrastrukturi višeg nivoa pravi problem.

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

Da bi se prilagodio ovom opterećenju pretraživača koji treba da opslužuje cijeli svijet, DNS je dizajniran kao hijerarhija na više nivoa. Na vrhu ove piramide su korijenski serveri - svaki domen najvišeg nivoa, kao što je .com, ima svoju porodicu servera koji su najviši autoritet za svaki domen ispod njih. Jedan korak gore od ovih serveri su sami root serveri, iz a.root-servers.net do m.root-servers.net.

Koliko često se to događa?

Zahvaljujući hijerarhiji keširanja na više nivoa DNS infrastrukture, vrlo mali postotak svjetskih DNS upita stiže do root servera. Većina ljudi dobija informacije o DNS rezoluču direktno od svog ISP-a. Kada korisnikov uređaj treba da zna kako doći do određene web stranice, zahtjev se prvo šalje na DNS server kojim upravlja taj lokalni provajder. Ako lokalni DNS server ne zna odgovor, prosljeđuje zahtjev vlastitim „prosljeđivačima“ (ako je navedeno).

Ako ni DNS server lokalnog provajdera ni "serveri za prosljeđivanje" navedeni u njegovoj konfiguraciji nemaju keširani odgovor, zahtjev se podiže direktno autoritativnom serveru domene viši onaj koji pokušavate pretvoriti. Kada домен.com to će značiti da se zahtjev šalje autoritativnim serverima samog domena com, koji se nalaze na adresi gtld-servers.net.

sistem gtld-servers, na koji je zahtjev upućen, odgovara listom ovlaštenih servera imena za domen domain.com, kao i najmanje jednim linkom koji sadrži IP adresu jednog takvog servera imena. Zatim se odgovori kreću niz lanac - svaki prosljeđivač prosljeđuje ove odgovore serveru koji ih je zatražio, sve dok odgovor konačno ne stigne do servera lokalnog provajdera i računara korisnika. Svi oni keširaju ovaj odgovor kako ne bi nepotrebno ometali sisteme višeg nivoa.

U većini slučajeva, zapisi servera imena za domain.com će već biti keširan na jednom od ovih prosljeđivača, tako da korijenski serveri neće biti ometani. Međutim, za sada govorimo o tipu URL-a koji nam je poznat – o onom koji se pretvara u običan web sajt. Chrome zahtjevi su na nivou viši ovo, na stepenu samih klastera root-servers.net.

Provjera krađe Chromium-a i NXDomain-a

Jedna od karakteristika Chromiuma stvara ogromno opterećenje na root DNS serverima
Chromium provjerava "da li me ovaj DNS server zavarava?" čine skoro polovinu ukupnog saobraćaja koji doseže Verisignov klaster root DNS servera.

Chromium pretraživač, roditeljski projekat Google Chrome-a, novog Microsoft Edge-a i bezbroj manje poznatih pretraživača, želi korisnicima pružiti lakoću pretraživanja u jednom okviru, koji se ponekad naziva i "Omnibox". Drugim riječima, korisnik unosi i stvarne URL adrese i upite tražilice u isto tekstualno polje na vrhu prozora pretraživača. Poduzimajući još jedan korak ka pojednostavljenju, to također ne prisiljava korisnika da unese dio URL-a http:// ili https://.

Koliko god ovo bio prikladan, ovaj pristup zahtijeva od pretraživača da razumije šta treba smatrati URL-om, a šta upitom za pretragu. U većini slučajeva ovo je prilično očigledno - 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šeg nivoa za rješavanje stvarnih web stranica.

Ako korisnik na intranetu svoje kompanije upiše "marketing", a intranet kompanije ima internu web stranicu s istim imenom, tada Chromium prikazuje okvir s informacijama u kojem korisnika pita da li želi tražiti "marketing" ili otići na https://marketing. Ovo možda nije slučaj, ali mnogi ISP-ovi i javni Wi-Fi provajderi „otimaju“ svaki pogrešno napisani URL, preusmjeravajući korisnika na neku stranicu ispunjenu banerima.

Slučajna generacija

Chromium programeri nisu željeli da korisnici na redovnim mrežama vide okvir s informacijama u kojem se pitaju šta misle svaki put kada pretražuju jednu riječ, pa su implementirali test: kada pokrenu preglednik ili promijene mrežu, Chromium vrši DNS pretraživanja na tri nasumično generisani "domeni" najvišeg nivoa, dužine od sedam do petnaest znakova. Ako se bilo koja dva od ovih zahtjeva vrate s istom IP adresom, onda Chromium pretpostavlja da lokalna mreža "otima" greške NXDOMAIN, koje bi trebao primiti, tako da pretraživač sve unesene upite od jedne riječi smatra pokušajima pretraživanja do daljnjeg.

Nažalost, u mrežama koje ne kradu rezultate DNS upita, ove tri operacije se obično penju na sam vrh, sve do samih root servera imena: lokalni server ne zna kako da riješi qwajuixk, pa prosljeđuje ovaj zahtjev svom špediteru, koji čini isto, sve dok konačno a.root-servers.net ili neko od njegove „braće“ neće biti primoran da kaže „Izvini, ali ovo nije domena“.

Budući da postoji otprilike 1,67*10^21 mogućih lažnih imena domena u rasponu od sedam do petnaest znakova u dužini, najčešći svaki iz ovih testova izvedenih na “poštenoj” mreži, dolazi do root servera. To je isto toliko polovina od ukupnog opterećenja na root DNS-u, prema statistici tog dijela klastera root-servers.net, koji su u vlasništvu Verisign-a.

Istorija se ponavlja

Ovo nije prvi put da je projekat nastao u najboljim namjerama nije uspjelo ili gotovo preplavili javni resurs nepotrebnim saobraćajem - ovo nas je odmah podsjetilo na dugu i tužnu povijest NTP (Network Time Protocol) servera D-Link-a i Poul-Henning Kampa sredinom 2000-ih.

Godine 2005, FreeBSD programer Poul-Henning, koji je također posjedovao jedini danski Stratum 1 Network Time Protocol server, primio je neočekivani i veliki račun za preneseni promet. Ukratko, razlog je bio taj što su programeri D-Link-a upisali adrese Stratum 1 NTP servera, uključujući i Kampa server, u firmver linije prekidača, rutera i pristupnih tačaka kompanije. Ovo je momentalno povećalo saobraćaj na serveru Kampe devet puta, što je uzrokovalo da Danska Internet Exchange (Danska Internet Exchange Point) promijeni svoju tarifu sa "Besplatne" na "9 USD godišnje".

Problem nije bio u tome što je bilo previše D-Link rutera, već u tome što su bili "izvan linije". Slično kao i DNS, NTP mora funkcionisati u hijerarhijskom obliku - Stratum 0 serveri prosleđuju informacije serverima Stratum 1, koji prenose informacije serverima Stratum 2, i tako dalje niz hijerarhiju. Tipičan kućni ruter, komutator ili pristupna tačka poput one koju je D-Link programirao sa adresama NTP servera slao bi zahtjeve Stratum 2 ili Stratum 3 serveru.

Chromium projekat, vjerovatno u najboljoj namjeri, replicirao je NTP problem u DNS problemu, učitavajući korijenske servere Interneta zahtjevima koje nikada nisu trebali rješavati.

Postoji nada za brzo rješenje

Chromium projekat ima otvoreni kod bug, što zahtijeva deaktiviranje Intranet Redirect Detector po defaultu da bi se riješio ovaj problem. Moramo odati priznanje Chromium projektu: greška je pronađena pre togakako mu je Verisignov Matt Thomas privukao veliku pažnju svojim posta na APNIC blogu. Greška je otkrivena u junu, ali je ostala zaboravljena do Thomasovog posta; Nakon posta počeo je biti pod strogim nadzorom.

Nadamo se da će problem uskoro biti riješen, a root DNS serveri više neće morati da odgovaraju na procijenjenih 60 milijardi lažnih upita svakog dana.

O pravima reklame

Epic serveri Je VPS na Windows-u ili Linux sa moćnim procesorima porodice AMD EPYC i veoma brzim Intel NVMe drajvovima. Požurite da naručite!

Jedna od karakteristika Chromiuma stvara ogromno opterećenje na root DNS serverima

izvor: www.habr.com

Dodajte komentar