Izbira najbližjih vozlišč v omrežju

Izbira najbližjih vozlišč v omrežju

Zakasnitev omrežja pomembno vpliva na delovanje aplikacij ali storitev, ki komunicirajo z omrežjem. Nižja kot je zakasnitev, večja je zmogljivost. To velja za katero koli omrežno storitev, od navadnega spletnega mesta do baze podatkov ali omrežne shrambe.

Dober primer je sistem domenskih imen (DNS). DNS je po naravi porazdeljen sistem s korenskimi vozlišči, razpršenimi po celem planetu. Če želite preprosto dostopati do katerega koli spletnega mesta, morate najprej pridobiti njegov naslov IP.

Ne bom opisoval celotnega procesa rekurzivnega prehoda skozi »drevo« domenskih con, ampak se bom omejil na dejstvo, da za pretvorbo domene v naslov IP potrebujemo razreševalec DNS, ki bo opravil vse to delo za nas.

Torej, kje dobite naslov razreševalnika DNS?

  1. Ponudnik internetnih storitev zagotovi naslov svojega razreševalnika DNS.
  2. Poiščite naslov javnega razreševalnika na internetu.
  3. Izberite svojega ali uporabite tistega, ki je vgrajen v domači usmerjevalnik.

Katera koli od teh možnosti vam bo omogočila brezskrbno brskanje po svetovnem spletu, če pa morate pretvoriti veliko število domen v IP, morate k izbiri razreševalnika pristopiti bolj previdno.

Kot sem že napisal, poleg razreševalnika ISP obstaja veliko javnih naslovov, na primer lahko preverite ta seznam. Nekateri od njih so morda veliko bolj zaželeni, ker imajo boljšo omrežno povezljivost kot privzeti razreševalec.

Ko je seznam majhen, ga lahko preprosto ročno "pingate" in primerjate zakasnitvene čase, če pa vzamete celo zgoraj omenjeni seznam, postane to opravilo že neprijetno.

Zato, da bi olajšal to nalogo, sem, poln sindroma prevaranta, skiciral dokaz koncepta svoje ideje na Go, imenovan približaj se.

Kot primer ne bom preverjal celotnega seznama razreševalcev, ampak se bom omejil le na najbolj priljubljene.

$ get-closer ping -f dnsresolver.txt -b=0 --count=10
Closest hosts:
	1.0.0.1 [3.4582ms]
	8.8.8.8 [6.7545ms]
	1.1.1.1 [12.6773ms]
	8.8.4.4 [16.6361ms]
	9.9.9.9 [40.0525ms]

Nekoč, ko sem zase izbiral razreševalnik, sem se omejil samo na preverjanje glavnih naslovov (1.1.1.1, 8.8.8.8, 9.9.9.9) - navsezadnje so tako lepi in kaj lahko pričakujete od grdi rezervni naslovi.

Ker pa obstaja avtomatiziran način za primerjavo zamud, zakaj ne bi razširili seznama ...

Kot je pokazal test, mi bolj ustreza “rezervni” naslov Cloudflare, saj je vtaknjen v spb-ix, ki mi je veliko bližji od msk-ix, ki ima vtaknjeno prelepo 1.1.1.1.

Razlika je, kot lahko vidite, precejšnja, saj tudi najhitrejši svetlobni žarek ne more doseči od Sankt Peterburga do Moskve v manj kot 10 ms.

Poleg preprostega pinga ima PoC tudi možnost primerjave zakasnitev za druge protokole, kot sta http in tcp, kot tudi čas za pretvorbo domen v IP prek določenega razreševalca.

Obstajajo načrti za primerjavo števila vozlišč med gostitelji z uporabo traceroute, da bi olajšali iskanje gostiteljev, ki imajo krajšo pot do njih.

Koda je surova, manjka ji kup preverjanj, a na čistih podatkih kar dobro deluje. Hvaležen bi bil za vsako povratno informacijo, zvezdice naprej github, in če je komu všeč ideja o projektu, dobrodošli, da postanete sodelavec.

Vir: www.habr.com

Dodaj komentar