Π˜Π·Π±ΠΎΡ€ Π½Π° Π½Π°Ρ˜Π±Π»ΠΈΡΠΊΠΈΡ‚Π΅ јазли Π²ΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°

Π˜Π·Π±ΠΎΡ€ Π½Π° Π½Π°Ρ˜Π±Π»ΠΈΡΠΊΠΈΡ‚Π΅ јазли Π²ΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°

ЛатСнтноста Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈΠΌΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ влијаниС Π²Ρ€Π· пСрформанситС Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ ΠΈΠ»ΠΈ услугитС ΠΊΠΎΠΈ ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°Π°Ρ‚ со ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. ΠšΠΎΠ»ΠΊΡƒ Π΅ ΠΏΠΎΠΌΠ°Π»Π° латСнтноста, Ρ‚ΠΎΠ»ΠΊΡƒ Π΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° Сфикасноста. Ова Π²Π°ΠΆΠΈ Π·Π° сСкоја ΠΌΡ€Π΅ΠΆΠ½Π° услуга, ΠΎΠ΄ ΠΎΠ±ΠΈΡ‡Π½Π° Π²Π΅Π±-Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π΄ΠΎ Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈΠ»ΠΈ ΠΌΡ€Π΅ΠΆΠ½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅.

Π”ΠΎΠ±Π°Ρ€ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ систСмот Π·Π° имиња Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΈ (DNS). DNS ΠΏΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° Π΅ дистрибуиран систСм, со корСнски јазли расфрлани Π½ΠΈΠ· Ρ†Π΅Π»Π°Ρ‚Π° ΠΏΠ»Π°Π½Π΅Ρ‚Π°. Π—Π° Сдноставно ΠΏΡ€ΠΈΡΡ‚Π°ΠΏΡƒΠ²Π°ΡšΠ΅ Π΄ΠΎ која Π±ΠΈΠ»ΠΎ Π²Π΅Π±-страница, ΠΏΡ€Π²ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја Π΄ΠΎΠ±ΠΈΠ΅Ρ‚Π΅ Π½Π΅Ρ˜Π·ΠΈΠ½Π°Ρ‚Π° IP адрСса.

НСма Π΄Π° Π³ΠΎ опишам Ρ†Π΅Π»ΠΈΠΎΡ‚ процСс Π½Π° Ρ€Π΅ΠΊΡƒΡ€Π·ΠΈΠ²Π½ΠΎ ΠΏΠΎΠΌΠΈΠ½ΡƒΠ²Π°ΡšΠ΅ Π½ΠΈΠ· β€žΠ΄Ρ€Π²ΠΎΡ‚ΠΎβ€œ Π½Π° домСнскитС Π·ΠΎΠ½ΠΈ, Ρ‚ΡƒΠΊΡƒ ќС сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°ΠΌ Π½Π° Ρ„Π°ΠΊΡ‚ΠΎΡ‚ Π΄Π΅ΠΊΠ° Π·Π° Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π΄ΠΎΠΌΠ΅Π½ Π²ΠΎ IP адрСса, ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ Π½ΠΈ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΡƒΠ²Π°Ρ‡ Π½Π° DNS кој ќС ја Π·Π°Π²Ρ€ΡˆΠΈ Ρ†Π΅Π»Π°Ρ‚Π° ΠΎΠ²Π°Π° Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° нас.

Π—Π½Π°Ρ‡ΠΈ, ΠΊΠ°Π΄Π΅ ја Π΄ΠΎΠ±ΠΈΠ²Π°Ρ‚Π΅ адрСсата Π½Π° Ρ€Π΅Π·ΠΎΠ»ΡƒΡ‚ΠΎΡ€ΠΎΡ‚ DNS?

  1. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€ΠΎΡ‚ ја Π΄Π°Π²Π° адрСсата Π½Π° ΡΠ²ΠΎΡ˜ΠΎΡ‚ Ρ€Π΅Π·ΠΎΠ»ΡƒΡ‚ΠΎΡ€ Π·Π° DNS.
  2. ΠΠ°Ρ˜Π΄Π΅Ρ‚Π΅ ја адрСсата Π½Π° јавСн Ρ€Π°Π·Ρ€Π΅ΡˆΡƒΠ²Π°Ρ‡ Π½Π° Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.
  3. Π—Π΅ΠΌΠ΅Ρ‚Π΅ Π³ΠΎ Π²Π°ΡˆΠΈΠΎΡ‚ сопствСн ΠΈΠ»ΠΈ користСтС Π³ΠΎ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΠΎΡ‚ Π²ΠΎ Π²Π°ΡˆΠΈΠΎΡ‚ домашСн Ρ€ΡƒΡ‚Π΅Ρ€.

Π‘ΠΈΠ»ΠΎ која ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ ќС Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π±Π΅Π·Π³Ρ€ΠΈΠΆΠ½ΠΎ ΡΡƒΡ€Ρ„Π°ΡšΠ΅ Π½Π° World Wide Web, Π½ΠΎ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚Π΅ Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ Π΄ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ IP, Ρ‚ΠΎΠ³Π°Ρˆ Ρ‚Ρ€Π΅Π±Π° ΠΏΠΎΠ²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ Π΄Π° пристапитС ΠΊΠΎΠ½ ΠΈΠ·Π±ΠΎΡ€ΠΎΡ‚ Π½Π° Ρ€Π΅Π·ΠΎΠ»ΡƒΡ‚ΠΎΡ€.

Како ΡˆΡ‚ΠΎ вСќС напишав, ΠΏΠΎΠΊΡ€Π°Ρ˜ Ρ€Π°Π·Ρ€Π΅ΡˆΡƒΠ²Π°Ρ‡ΠΎΡ‚ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€ΠΎΡ‚, ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ јавни адрСси, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ²Π°Π° листа. НСкои ΠΎΠ΄ Π½ΠΈΠ² ΠΌΠΎΠΆΠ΅Π±ΠΈ сС ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠΏΠΎΠΆΠ΅Π»Π½ΠΈ бидСјќи ΠΈΠΌΠ°Π°Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π° ΠΌΡ€Π΅ΠΆΠ½Π° ΠΊΠΎΠ½Π΅ΠΊΡ†ΠΈΡ˜Π° ΠΎΠ΄ стандардниот Ρ€Π΅Π·ΠΎΠ»ΡƒΡ‚ΠΎΡ€.

Кога списокот Π΅ ΠΌΠ°Π», ΠΌΠΎΠΆΠ΅Ρ‚Π΅ лСсно Π΄Π° Π³ΠΎ β€žΠΏΠΈΠ½Π³ΡƒΠ²Π°Ρ‚Π΅β€œ Ρ€Π°Ρ‡Π½ΠΎ ΠΈ Π΄Π° Π³ΠΈ спорСдуватС Π²Ρ€Π΅ΠΌΠΈΡšΠ°Ρ‚Π° Π½Π° ΠΎΠ΄Π»ΠΎΠΆΡƒΠ²Π°ΡšΠ΅, Π½ΠΎ Π°ΠΊΠΎ Π΄ΡƒΡ€ΠΈ ΠΈ Π³ΠΎ Π·Π΅ΠΌΠ΅Ρ‚Π΅ списокот спомСнат ΠΏΠΎΠ³ΠΎΡ€Π΅, Ρ‚ΠΎΠ³Π°Ρˆ ΠΎΠ²Π°Π° Π·Π°Π΄Π°Ρ‡Π° вСќС станува Π½Π΅ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π½Π°.

Π—Π°Ρ‚ΠΎΠ°, Π·Π° Π΄Π° ја олСснам ΠΎΠ²Π°Π° Π·Π°Π΄Π°Ρ‡Π°, јас, исполнСт со синдром Π½Π° ΠΈΠ·ΠΌΠ°ΠΌΠ½ΠΈΠΊ, скицирав Π΄ΠΎΠΊΠ°Π· Π·Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΎΡ‚ Π½Π° ΠΌΠΎΡ˜Π°Ρ‚Π° идСја Π½Π° Go Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° сС Π΄ΠΎΠ±Π»ΠΈΠΆΠΈ.

Како ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΌΠ° Π΄Π° ја ΠΏΡ€ΠΎΠ²Π΅Ρ€Π°ΠΌ Ρ†Π΅Π»Π°Ρ‚Π° листа Π½Π° Ρ€Π΅ΡˆΠ°Π²Π°Ρ‡ΠΈ, Ρ‚ΡƒΠΊΡƒ ќС сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°ΠΌ само Π½Π° Π½Π°Ρ˜ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΈΡ‚Π΅.

$ 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]

Π•Π΄Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅, ΠΊΠΎΠ³Π° ΠΈΠ·Π±ΠΈΡ€Π°Π² Ρ€Π΅Π·ΠΎΠ»ΡƒΡ‚ΠΎΡ€ Π·Π° сСбС, сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ² само Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π³Π»Π°Π²Π½ΠΈΡ‚Π΅ адрСси (1.1.1.1, 8.8.8.8, 9.9.9.9) - Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π½Π° ΠΊΡ€Π°ΠΈΡˆΡ‚Π°Ρ‚Π°, Ρ‚ΠΈΠ΅ сС Ρ‚ΠΎΠ»ΠΊΡƒ ΡƒΠ±Π°Π²ΠΈ, ΠΈ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‡Π΅ΠΊΡƒΠ²Π°Ρ‚Π΅ ΠΎΠ΄ Π³Ρ€Π΄ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ адрСси.

Но, бидСјќи постои Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄ΠΎΡ†Π½Π΅ΡšΠ°Ρ‚Π°, Π·ΠΎΡˆΡ‚ΠΎ Π΄Π° Π½Π΅ ја ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΡ‚Π΅ листата...

Како ΡˆΡ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ° тСстот, β€žΡ€Π΅Π·Π΅Ρ€Π²Π½Π°Ρ‚Π°β€œ адрСса Π½Π° Cloudflare ΠΌΠΈ Π΅ посоодвСтна, бидСјќи Π΅ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½Π° Π²ΠΎ spb-ix, ΡˆΡ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³Ρƒ поблиску Π΄ΠΎ ΠΌΠ΅Π½Π΅ ΠΎΠ΄ msk-ix, Π½Π° ΠΊΠΎΠ΅ Π΅ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½Π° прСкрасната 1.1.1.1.

Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π°, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π΅ Π·Π½Π°Ρ‡Π°Ρ˜Π½Π°, бидСјќи Π΄ΡƒΡ€ΠΈ ΠΈ Π½Π°Ρ˜Π±Ρ€Π·ΠΈΠΎΡ‚ Π·Ρ€Π°ΠΊ свСтлина Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° стигнС ΠΎΠ΄ Π‘Π°Π½ΠΊΡ‚ ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ Π΄ΠΎ Москва Π·Π° ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ ΠΎΠ΄ 10 ms.

ΠŸΠΎΠΊΡ€Π°Ρ˜ Сдноставниот ΠΏΠΈΠ½Π³, PoC ΠΈΠΌΠ° моТност ΠΈ Π΄Π° Π³ΠΈ спорСдува Π΄ΠΎΡ†Π½Π΅ΡšΠ°Ρ‚Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС http ΠΈ tcp, ΠΊΠ°ΠΊΠΎ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ IP ΠΏΡ€Π΅ΠΊΡƒ спСцифичСн Ρ€Π΅Π·ΠΎΠ»ΡƒΡ‚ΠΎΡ€.

Има ΠΏΠ»Π°Π½ΠΎΠ²ΠΈ Π΄Π° сС спорСди Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° јазли ΠΏΠΎΠΌΠ΅Ρ“Ρƒ хостовитС ΠΊΠΎΠΈ користат Ρ‚Ρ€Π°ΠΊΠ΅Ρ€ΡƒΡ‚ Π·Π° полСсно Π΄Π° сС Π½Π°Ρ˜Π΄Π°Ρ‚ хостови ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ‚ ΠΏΠΎΠΊΡ€Π°Ρ‚ΠΎΠΊ ΠΏΠ°Ρ‚ Π΄ΠΎ Π½ΠΈΠ².

ΠšΠΎΠ΄ΠΎΡ‚ Π΅ Π³Ρ€ΡƒΠ±, ΠΌΡƒ нСдостигаат ΠΊΡƒΠΏ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π½ΠΎ доста Π΄ΠΎΠ±Ρ€ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° Π½Π° чисти ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π‘ΠΈ Π³ΠΎ Ρ†Π΅Π½Π΅Π» сСкој ΠΏΠΎΠ²Ρ€Π°Ρ‚Π΅Π½ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ github, ΠΈ Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΠΌΡƒ ΠΌΡƒ сС Π΄ΠΎΠΏΠ°Π΄Π½Π° ΠΈΠ΄Π΅Ρ˜Π°Ρ‚Π° Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚, Ρ‚ΠΎΠ³Π°Ρˆ Π΄ΠΎΠ±Ρ€Π΅Π΄ΠΎΡ˜Π΄Π΅ Π΄Π° станСтС соработник.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€