๋„คํŠธ์›Œํฌ์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ ์„ ํƒ

๋„คํŠธ์›Œํฌ์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ ์„ ํƒ

๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์€ ๋„คํŠธ์›Œํฌ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์„œ๋น„์Šค์˜ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์งง์„์ˆ˜๋ก ์„ฑ๋Šฅ์€ ๋†’์•„์ง‘๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜ ์›น์‚ฌ์ดํŠธ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์Šคํ† ๋ฆฌ์ง€์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

์ข‹์€ ์˜ˆ๊ฐ€ DNS(Domain Name System)์ž…๋‹ˆ๋‹ค. DNS๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ์ง€๊ตฌ ์ „์ฒด์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์›น์‚ฌ์ดํŠธ์—๋“  ๊ฐ„๋‹จํžˆ ์ ‘์†ํ•˜๋ ค๋ฉด ๋จผ์ € ํ•ด๋‹น ์›น์‚ฌ์ดํŠธ์˜ IP ์ฃผ์†Œ๋ฅผ ์–ป์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ์˜์—ญ์˜ "ํŠธ๋ฆฌ"๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ†ต๊ณผํ•˜๋Š” ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ค๋ช…ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋„๋ฉ”์ธ์„ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” DNS ํ™•์ธ์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ์‚ฌ์‹ค๋งŒ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋ฅผ.

๊ทธ๋ ‡๋‹ค๋ฉด DNS ํ™•์ธ์ž ์ฃผ์†Œ๋Š” ์–ด๋””์„œ ์–ป์„ ์ˆ˜ ์žˆ๋‚˜์š”?

  1. ISP๋Š” DNS ํ™•์ธ์ž์˜ ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธํ„ฐ๋„ท์—์„œ ๊ณต๊ฐœ ํ•ด๊ฒฐ์ž์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ์œผ์„ธ์š”.
  3. ์ง์ ‘ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ํ™ˆ ๋ผ์šฐํ„ฐ์— ๋‚ด์žฅ๋œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด World Wide Web์—์„œ ๊ฑฑ์ • ์—†์ด ์„œํ•‘์„ ์ฆ๊ธธ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋งŽ์€ ์ˆ˜์˜ ๋„๋ฉ”์ธ์„ IP๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ™•์ธ์ž ์„ ํƒ์— ๋”์šฑ ์‹ ์ค‘ํ•˜๊ฒŒ ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ ์“ด ๊ฒƒ์ฒ˜๋Ÿผ ISP ํ™•์ธ์ž ์™ธ์—๋„ ๋งŽ์€ ๊ณต๊ฐœ ์ฃผ์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ๊ธฐ๋ณธ ํ™•์ธ์ž๋ณด๋‹ค ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ๋” ์ข‹๊ธฐ ๋•Œ๋ฌธ์— ํ›จ์”ฌ ๋” ์„ ํ˜ธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ๋ก์ด ์ž‘์œผ๋ฉด ์ˆ˜๋™์œผ๋กœ ์‰ฝ๊ฒŒ "ํ•‘"ํ•˜๊ณ  ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ด ์ž‘์—…์ด ๋ถˆํŽธํ•ด์ง‘๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ์ž‘์—…์„ ๋” ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ๊ธฐ๊พผ ์ฆํ›„๊ตฐ์œผ๋กœ ๊ฐ€๋“ ์ฐฌ ๋‚˜๋Š” 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 ์ฃผ์†Œ๋Š” ๋‚˜์—๊ฒŒ ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด ์ฃผ์†Œ๋Š” ์•„๋ฆ„๋‹ค์šด 1.1.1.1์ด ์—ฐ๊ฒฐ๋œ msk-ix๋ณด๋‹ค ๋‚˜์—๊ฒŒ ํ›จ์”ฌ ๋” ๊ฐ€๊นŒ์šด spb-ix์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ณด์‹œ๋‹ค์‹œํ”ผ ๊ทธ ์ฐจ์ด๋Š” ์ƒ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ€์žฅ ๋น ๋ฅธ ๊ด‘์„ ์กฐ์ฐจ๋„ ์ƒํŠธํŽ˜ํ…Œ๋ฅด๋ถ€๋ฅดํฌ์—์„œ ๋ชจ์Šคํฌ๋ฐ”๊นŒ์ง€ 10ms ์ด๋‚ด์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

PoC์—๋Š” ๊ฐ„๋‹จํ•œ ping ์™ธ์—๋„ http ๋ฐ tcp์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ์˜ ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ํŠน์ • ํ™•์ธ์ž๋ฅผ ํ†ตํ•ด ๋„๋ฉ”์ธ์„ IP๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์‹œ๊ฐ„์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Traceroute๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ๊ฐ„ ๋…ธ๋“œ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ฒฝ๋กœ๊ฐ€ ๋” ์งง์€ ํ˜ธ์ŠคํŠธ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์ฝ”๋“œ๋Š” ํˆฌ๋ฐ•ํ•˜๊ณ  ๊ฒ€์‚ฌ๊ฐ€ ๋งŽ์ด ๋ถ€์กฑํ•˜์ง€๋งŒ ๊นจ๋—ํ•œ ๋ฐ์ดํ„ฐ์—์„œ๋Š” ๊ฝค ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํ”ผ๋“œ๋ฐฑ์ด๋ผ๋„ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐํƒ€๋ฒ , ํ”„๋กœ์ ํŠธ ์•„์ด๋””์–ด๊ฐ€ ๋งˆ์Œ์— ๋“œ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ๊ธฐ์—ฌ์ž๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€