Lupta pentru serverul DNS rădăcină

Fără îndoială, nimeni nu poate spune dacă această schemă este capabilă să reziste la atacurile distribuite DoS cu numărul existent de servere DNS rădăcină în cazul utilizării rețelelor bot cu milioane de gazde.







Să vedem că "băieții buni" responsabili de performanța serverelor DNS rădăcină sunt combătuți de "băieți răi" care ar putea ataca aceste servere.

Pentru a înțelege de ce serverele DNS rădăcină sunt atacate, trebuie să înțelegeți cum funcționează acest sistem. Din punct de vedere grafic, structura DNS este cel mai corect reprezentată ca arbore.

Lupta pentru serverul DNS rădăcină

Caching-ul este benefic pentru toată lumea. Mai puține cereri la serverele rădăcină și TLD, mai puțin traficul este cheltuit de serverul DNS al furnizorului, mai puțin timp clientul așteaptă un răspuns de la serverul DNS al furnizorului.

Din punct de vedere global, efectul pozitiv cel mai puternic al caching-ului este obținut de serverele rădăcină. Și totuși, datorită cache, sarcina grea în DNS este necesar, nu pe serverele root, deoarece acestea oferă informații numai despre serverele TLD, și server-TLD, deoarece acestea trebuie să ofere răspunsuri la solicitările de sute ca rădăcină de nord, și pe milioane de domenii. TLD de Nord, de obicei, rădăcină puternică, atât în ​​ceea ce privește banda de rețea, asigurând buna funcționare a acestora, precum și în ceea ce privește resursele de calcul ale serverelor.

Din punct de vedere tehnic, este mai ușor să umpleți un server TLD. Cu toate acestea, în ciuda acestui fapt, acestea sunt atacate cel mai adesea, și anume servere rădăcină, deoarece, după ce au tăiat o ramură, chiar una foarte mare, cum ar fi com, net sau org. tu doar, taie o parte din copac, dar nu toate DNS. Uciderea rădăcină, veți obține efectul maxim.

Pe baza cunoștințelor despre cache, putem trage o altă concluzie interesantă. Dacă dezactivați simultan toate serverele rădăcină, atunci Internetul nu va muri imediat. Cu toate acestea, mulți utilizatori finali vor avea probleme aproape imediat. În prezent, toate serverele DNS rădăcină procesează, în general, zeci sau chiar sute de mii de cereri pe secundă.

În general, problema cu atacurile distribuite de DoS asupra serverelor DNS rădăcină nu este că nu au timp să proceseze cererile. Principala problemă este că acestea devin inaccesibile în rețea. De fapt, pentru a provoca o negare a serviciului pentru întregul sistem DNS, este suficient ca atacatorul să dezactiveze în același timp 13 puncte de rețea distribuite geografic. Desigur, puteți înregistra câteva zeci de servere ca root. Cu toate acestea, acest lucru este dificil din punctul de vedere al faptului că va fi necesar să modificați setările de software pentru toți clienții. În plus, un astfel de sistem nu garantează o distribuție rațională a traficului între serverele rădăcină.

Ca o altă soluție pentru a face față atacurilor distribuite DoS, în prezent se implementează un sistem extrem de scalabil folosind orice post. Gândiți-vă ce este.

Cuvantul anycast este format din doua cuvinte engleze - orice, aruncare, sau, in termeni de retea, difuzate. În general, rețeaua distinge patru metode de difuzare - difuzare, multicast, unicast și orice.

Dacă deschideți Wikipedia prin distribuție, atunci veți vedea 4 fotografii frumoase care le ilustrează. Permiteți-mi să le folosesc.

Pentru a înțelege cum funcționează Anycast, trebuie să aveți o idee despre modul în care funcționează rutarea în rețele folosind IP.

Dacă două gazde care participă la schimbul de date unul cu celălalt se află pe subrețele diferite, atunci pachetele dintre ele sunt livrate prin intermediul unor dispozitive de rețea speciale, numite routere.

Adesea, două gazde la distanță de pe Internet sunt legate între ele prin conexiuni redundante. Uneori, pachetul de date trimis de gazda A poate ajunge teoretic la gazda B în zeci de moduri diferite. Nu este faptul că, în cazul în care un pachet de la gazdă A a trecut prin 3 router specifice, pachetul de retur de la gazda B va veni prin același router 3. Prezența legăturilor redundante 2 oferă avantaje majore, primul - eșecul unuia dintre link-uri nu va însemna indisponibilitatea grupului gazdă, al doilea - sarcina în transmisia de date pot fi distribuite între diferitele canale, rezultând în general de lățime de bandă crește de rețea.

Cu toate acestea, aceasta este mai mult o excepție decât regula.

Amuzanți, dar chiar și cei cu experiență nu prezintă întotdeauna în mod clar ceea ce servește ca un criteriu pentru a decide cu privire la direcția pachetelor pe un anumit traseu. Cea mai simplă sarcină, în imaginea de mai jos, le introduce într-o stupoare.

Lupta pentru serverul DNS rădăcină

Întrebare: va pachetul de gazdă 192.168.0.2 să părăsească interfața superioară sau inferioară?

Răspunsul corect este din partea de sus. De ce? Deoarece atunci când alegeți cea mai bună rută, următoarele 3 reguli funcționează în mod consecvent.

2) Dacă prefixele sunt egale, atunci este selectat un traseu cu un protocol de rutare cu prioritate mai mare.

3) Dacă ambele prefixe sunt egale și protocoalele sunt aceleași, atunci se declanșează valoarea internă a protocolului de rutare.

În acest exemplu, a funcționat prima regulă.

Și acum un pic mai detaliat. Ce este un prefix? Un prefix este o metodă de descriere a subrețelei. Prefixul este format din două părți, cel din stânga este identificatorul de subrețea, cel din dreapta este lungimea acestui identificator.

În rutare, subrețelele sunt descrise folosind prefixe, dar nu identificatori de subrețea și mască. Înregistrarea 192.168.0.0/28 descrie subrețelei prefix care succesiv 28 unități (lungime prefix), care este echivalent cu scris masca 192.168.0.0 255.255.255.240. În general, există câteva diferențe subtile între materie, dar măștile sunt folosite pentru a calcula dacă gazda se referă la un anumit prefixe subretea sunt folosite pentru a descrie informațiile importante de rutare cu privire la localizarea subrețele. Există încă unele diferențe minore în acest context.

Rutele pot fi introduse de mânere în configurația routerului, aceasta se numește rutare statică și poate apărea acolo în mod automat, folosind protocoale de rutare dinamice.

Principiul de bază al rutei dinamice este simplu. Fiecare router știe despre mai multe rețele disponibile prin intermediul acestuia. După activarea rutei dinamice, routerele vecine încep să schimbe informații despre rețelele disponibile prin intermediul acestora. În final, fiecare router există o prezentare completă a tuturor subrețele în cadrul sistemului de rutare autonom, după un schimb complet de informații de rutare (de exemplu, care sunt subrețea prin care sunt disponibile interfețe, cât de departe sunt localizate). În cazul în care apar anumite evenimente, de exemplu, o legătură între routere dispare sau dacă anumite subrețele sunt adăugate / șterse, tabelele de rutare sunt recalculate automat.

Câteva cuvinte despre prioritățile protocoalelor de rutare. Rutarea statică are cea mai mare prioritate, diferite protocoale dinamice de rutare au propria lor prioritate. In exemplul de mai sus, în cazul în care potrivirea prefixului de subrețea, pachetul în conformitate cu a doua regulă, ar fi trecut prin interfața de jos. Prioritatea protocoalelor de rutare este locala pentru fiecare router. Dacă routerul A a primit o rută pentru 192.168.0.0/28 rețea printr-o rută statică, și Router-ul B, au primit de la traseu 192.168.0.0/28 routere A și C pe OSPF, router-ul B în alegerea priorităților este ghidat metrici OSPF. Adică, router-ul nu-i pasă cum învățau vecinii despre acest sau acel traseu, este important doar cum și ce a învățat despre el.







Acum merită să explicăm ce sunt metricile protocoalelor de rutare. Metricile sunt câteva atribute interne ale protocolului de rutare, pe baza cărora se iau decizii de transmitere a pachetului către una sau altă cale. Dacă utilizați rutarea statică, atunci, firește, setați manual valorile atunci când înregistrați un traseu. În cazul rutei dinamice, valorile, cum ar fi ruta, sunt cel mai adesea calculate automat, cu toate acestea, ele pot fi schimbate manual, forțând routerul să lase pachetele de-a lungul căii necesare.

Diferitele protocoale de rutare dinamică calculează metricile în diferite moduri. De exemplu, să examinăm criteriile pentru selectarea rutei utilizând protocolul de rutare OSPF dinamic.

OSPF - Calea cea mai scurta deschisa in primul rand, este liber sa se traduca drept cel mai bun (traseu) - cu cea mai mica cale disponibila. Aceasta înseamnă că, în cazul conexiunilor echivalente (viteză) dintre nodurile rețelei, se selectează ruta cu cele mai puține routere prin care va urma. Lungimea căii este afectată automat de viteza cu care rulează interfața. De exemplu, dacă interfața rulează la 100Mbps, calea spre vecin va fi 1, dacă 10Mbps, atunci va fi de 10, și așa mai departe. Puteți influența distanța și pixurile. Pentru a face acest lucru, setați pur și simplu parametrul bandwith pe interfața dorită (capacitate), care nu afectează viteza fizică a interfeței, dar afectează procesul de luare a deciziei de rutare.

În concluzie, aș vrea să explic de ce regulile de rutare funcționează exact în acest mod, dar nu într-o ordine diferită. De fapt, totul este foarte simplu și logic.

Regula numărul 1.

Regula 2.

Metricile diferitelor protocoale de rutare nu sunt comestibile. Este mult mai ușor să acordați prioritate unui protocol de rutare în raport cu altul decât, nu este clar cum, pentru a compara prioritățile metricilor diferitelor protocoale de rutare.

Regula 3.

Este doar a treia deoarece primele 2 locuri sunt deja ocupate de J

Pentru a înțelege cum este organizat anycast în rețelele IP, înțelegerea principiilor de rutare descrise mai sus este suficientă.

Pentru a descrie activitatea oricărui mesaj, considerați o rețea în care protocolul funcționează prin rutare dinamică, cu logica cea mai simplificată de selectare a traseului din diverse locuri către gazda 192.168.0.2.

Lupta pentru serverul DNS rădăcină

Să presupunem că funcționează același OSPF, legăturile dintre routere au aceeași lățime de bandă, iar parametrul bandwith nu este configurat nicăieri. Criteriul pentru alegerea unei rute în acest caz este doar numărul de routere prin care trebuie să treacă pachetele. Săgețile de culori diferite indică calea pachetelor pentru a ajunge la server.

Și acum, pentru aceeași rețea, vom include un alt server fizic cu aceeași adresă IP în routerul F. Acest router, la rândul său, va forța să anunțe același prefix prin el însuși.

Lupta pentru serverul DNS rădăcină

Evident, în acest caz, o parte din trafic va merge la un server, parte la altul.

Astfel, 2 sau mai multe servere diferite, dar echivalente cu același IP pot fi incluse în diferite locații geografice. O astfel de schemă nu numai că nu contravine principiilor de rutare, dar aș spune chiar că se potrivește organic în ele.

În ceea ce-i privește pe utilizatorii finali, pentru aceștia, o astfel de schemă este transparentă, mai mult, ei beneficiază de acest lucru, din moment ce mai puțini routere pe care le transmite pachetul, cu atât mai bine în termeni de întârzieri. În ceea ce privește serverele anycast, acest lucru este, de asemenea, transparent pentru ei. Ei funcționează la fel ca în cazul unicastului.

În acest sistem există o singură ambuscadă. Să presupunem că un utilizator care lucrează prin Router B descarcă un fișier mare pe ftp de la un server care rulează prin routerul A. În acest moment, conexiunea dintre A și B este întreruptă. În cazul în care nu au fost pentru Anycast-bine, tabela de rutare a reconstruit, astfel încât sacii vor merge la by-pass, dar încă a ajuns la serverul care trece prin A, iar injecția să nu fie întreruptă. În cazul Anycast-lea comută de utilizator pentru serverul care rulează router F. Deoarece strat de transport ftp foloseste TCP, care este axat pe sesiune, apoi pompate către utilizatorul este întreruptă. Nu voi explica în detaliu de ce este așa, deoarece acest lucru depășește domeniul de aplicare al articolului. În general, în ceea ce privește posibilitatea utilizării normale a protocoalelor orientate pe sesiuni cu schemele anycast, din punct de vedere global asupra funcționării internetului, opiniile experților sunt împărțite. Unii cred că nu este recomandabil, ca și plină de frecvente „drop-off“ (care foarte puțini oameni capabili să explice în mod adecvat de ce anterior nu a existat o pauză, dar acum ei au J), în timp ce alții spun că semnificativ „sparge“ nu va, și o va dovedi în practică.

Prezența o varietate de protocoale de rutare în rețea și diferitele valori în rapoarte nu afectează sănătatea generală a Anycast-urilor, acești parametri pot afecta doar sarcina unui anumit server, ca și în cazul în care conectarea la și deconectarea de la acest server utilizator cu acces la rețea printr-o varietate de routere.

Acum înapoi la berbecile noastre, adică servere DNS rădăcină.

Principiul de a lucra cu orice post de radio la scară globală este același ca și în rețelele locale. În Internetul global, protocolul BGP este folosit ca protocol dinamic de rutare.

dig + norec @X.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT

Dacă aveți abilitatea de a da astfel de comenzi de la diferite servere geografice de la distanță în rețea, puteți verifica cu ușurință că cererile din diferite sisteme independente provin de la servere fizice diferite.

Aș dori să subliniez diversele topologii utilizate de diferitele organizații responsabile de serverele rădăcină. Înainte de a descrie ce topologie este utilizată, trebuie să introduceți 2 concepte pentru serverele DNS anycast. Există așa-numitele servere locale de root anycast și servere globale anycast. Serverele globale sunt servere disponibile pe o bază globală, adică teoretic pe toată lumea pe Internet, deși, datorită valorilor BGP, fiecare dintre acestea este disponibil numai din anumite locuri. Serverele locale sunt disponibile numai clienților mai multor furnizori din apropiere. Reglementarea unui server global sau local este implicat în protocolul BGP. Conform căruia serverele (locale sau globale) și în ce proporție sunt utilizate în organizarea oricăror formate, există 3 scheme.

Uniform (plat) - constă numai în servere globale, utilizate pentru serverele J-root.

Ierarhică (ierarhică) constă din mai multe servere globale situate geografic și un set de servere locale utilizate pentru serverele F-root.

Un hibrid este alcătuit din servere globale distribuite geografic și distribuite, de asemenea, servere locale utilizate pentru servere K-rădăcină.

Lupta pentru serverul DNS rădăcină

Lupta pentru serverul DNS rădăcină

După cum puteți vedea, printre diferitele organizații responsabile de serverele rădăcinoase există abordări diferite. Fiecare dintre aceste scheme este eficace, care dintre ele este mai eficientă este o problemă care nu este complet determinată.

Potrivit tuturor rapoartelor, rezultatele testelor confirmă eficacitatea oricăror servere DNS rădăcinoase în orice mod global, problemele cu funcționarea DNS folosind tcp nu sunt semnificative.

Conform cercetărilor efectuate pentru a identifica eficiența distribuției traficului în servere rădăcină la nivel mondial în cadrul, găsit următoarele: Serverele sunt alocate în mod eficient, în ceea ce privește poziția geografică a utilizatorului (și, prin urmare, în termeni de timp întârzieri de răspuns de la server).

Faptul că serverele sunt distribuite geografic fac din DoS un atac mai complex. Un botnet care poate dezactiva toate serverele rădăcină trebuie, de asemenea, să fie distribuit global. La urma urmei, daca, sa zicem, gazdele unei retele de bot atac sunt concentrate in principal in Europa, sud-americanii nici macar nu vor suspecta ca se va face un atac asupra DNS root-ului.

Pe Internet puteți găsi o mulțime de informații despre tehnologia Anycast și în special despre utilizarea acesteia pentru DNS. În ceea ce privește domeniul de aplicare al acestui articol, atunci mă voi limita la acest lucru.

Fără îndoială, nimeni nu poate spune dacă această schemă este capabilă să reziste la atacurile distribuite DoS cu numărul existent de servere DNS rădăcină în cazul utilizării rețelelor bot cu milioane de gazde. Un lucru este clar, sistemul extrem de scalabil, și chiar dacă, în ciuda tuturor, băieții răi vor fi în măsură să umple sistemul CDN la nivel mondial, băieții buni vor fi în măsură să răspundă-l amplifica. Se pare că băieții buni câștigă.

Grigory Sandul, [email protected]

  • Lupta pentru serverul DNS rădăcină
  • Lupta pentru serverul DNS rădăcină
  • Lupta pentru serverul DNS rădăcină
  • Lupta pentru serverul DNS rădăcină







Articole similare

Trimiteți-le prietenilor: