Válasszuk ki a legközelebbi csomópontokat a hálózatban

Válasszuk ki a legközelebbi csomópontokat a hálózatban

A hálózati késések jelentős hatással vannak az alkalmazások vagy szolgáltatások teljesítményére, amelyek a hálózattal kommunikálnak. Minél kisebb a késés, annál jobb a teljesítmény. Ez mindenféle hálózati szolgáltatásra vonatkozik, kezdve a hagyományos weboldalaktól az adatbázisokig vagy hálózati tárolókig.

Jó példa erre a Domain Name System (DNS). A DNS természeténél fogva elosztott rendszer, amelynek gyökércsomópontjai a világ minden táján szétszóródnak. Ahhoz, hogy egyszerűen meglátogassunk egy weboldalt, először meg kell szereznünk annak IP-címét.

Nem fogom leírni az egész folyamatot, amely a domain zónák "fáján" való rekurzív áthaladást jelenti, csak annyit mondok, hogy a domain IP-címre történő átkonvertálásához DNS feloldóra van szükségünk, amely elvégzi mindezt helyettünk.

Tehát honnan szerezzük be a DNS feloldó címét?

  1. Az internetszolgáltató biztosítja a saját DNS feloldója címét.
  2. Kereshetünk az interneten egy nyilvános feloldó címét.
  3. Megcsinálhatjuk a sajátunkat, vagy használhatjuk a háztartási routerünkben található beépített feloldót.

Bármelyik lehetőség lehetővé teszi, hogy gondtalanul böngésszünk az interneten, de ha nagy mennyiségű domaint kell IP-címre konvertálnunk, akkor a feloldó választására érdemes alaposabban ránézni.

Ahogy már említettem, az internetszolgáltató feloldója mellett sok nyilvános cím is létezik, például érdemes megnézni ezt a listát. Néhány közülük sokkal kedvezőbb lehet, mivel jobb hálózati kapcsolattal rendelkezik, mint az "alapértelmezett" feloldó.

Amikor a lista kicsi, könnyen meg lehet "pingelni" kézzel, és össze lehet hasonlítani a késési időket, de ha legalább a fent említett lista egyikét vesszük, akkor ez a tevékenység már nem annyira kellemes.

Ezért ennek a feladatnak a megkönnyítése érdekében, tele voltam imposter-szindrómával, készítettem egy Go proof-of-conceptet az ötletemhez, amelyet úgy neveztem el, hogy get-closer.

Példaként nem fogom ellenőrizni az összes feloldót, csak a legnépszerűbbekre korlátozom magam.

$ get-closer ping -f dnsresolver.txt -b=0 --count=10
Közel legjobb gazdagépek:
	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]

Amikor régen a feloldómat választottam, csak az alap címek (1.1.1.1, 8.8.8.8, 9.9.9.9) ellenőrzésére korlátozódtam, hiszen annyira szépek, és mit is várhatunk a nem szép tartalék címektől.

De ha van egy automatizált mód az késleltetések összehasonlítására, miért ne lehetne bővíteni a listát...

A teszt szerint számomra a 'tartalék' Cloudflare cím alkalmasabb, mivel az spb-ix-re csatlakozik, amely rám sokkal közelebb van, mint az msk-ix, amelybe a szép 1.1.1.1 kapcsolódik.

A különbség, ahogy látja, jelentős, mert még a leggyorsabb fényimpulzusnak sem sikerül kevesebb mint 10 ms alatt eljutnia Szentpétervárról Moszkvába.

A sima pingelésen túl a PoC-ban van lehetőség a késleltetések összehasonlítására más protokollok, például HTTP és TCP tekintetében, valamint a domainek IP-címekké alakításának ideje egy adott resolveren keresztül.

A tervek között szerepel az uzek számának összehasonlítása a hosztok között traceroute segítségével, hogy könnyebben megtalálhatóak legyenek azok a hosztok, amelyekhez rövidebb út vezet.

A kód nyers, hiányzik belőle sok ellenőrzés, de tiszta adatokon egészen jól működik. Értékelném a visszajelzéseket, csillagokat a GitHubon, és ha valakinek tetszik a projekt ötlete, akkor szívesen látom a hozzájárulókat.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster