๊ณต์œ ๊ธฐ ๋ณด์•ˆ/๋ชจ์˜ํ•ดํ‚น

03. DNS ์„œ๋ฒ„ ๊ธฐ์ดˆ

Jaeyoon ยท ๊ฐœ๋… ํ•™์Šต DNS ์งˆ์˜, ๋ ˆ์ฝ”๋“œ, ์บ์‹œ, dnsmasq/BIND9, ๋‚ด๋ถ€ ์‹ค์Šต ๋„๋ฉ”์ธ

DNS๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

DNS ๋„๋ฉ”์ธ IP ๋ณ€ํ™˜
DNS๋Š” ์‚ฌ๋žŒ์ด ์ฝ๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ปดํ“จํ„ฐ๊ฐ€ ์ ‘์†ํ•  IP ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ” ์ค€๋‹ค.

DNS๋Š” ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์‰ฌ์šด ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ปดํ“จํ„ฐ๊ฐ€ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ” ์ฃผ๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” school-login.test ๊ฐ™์€ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์ง€๋งŒ, ์‹ค์ œ ๋„คํŠธ์›Œํฌ๋Š” 192.168.56.x ๊ฐ™์€ IP ์ฃผ์†Œ๋ฅผ ๋ชฉ์ ์ง€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ์—์„œ DNS๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ „ํ™˜์ ์ž…๋‹ˆ๋‹ค. DNS ์‘๋‹ต IP๊ฐ€ ์ •์ƒ ์›น ์„œ๋ฒ„๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉด ์ •์ƒ ํŽ˜์ด์ง€๊ฐ€ ์—ด๋ฆฌ๊ณ , ์‹ค์Šต์šฉ ๊ฒฝ๊ณ  ํŽ˜์ด์ง€ ์„œ๋ฒ„๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉด ๊ฐ™์€ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•ด๋„ ๋‹ค๋ฅธ ํ™”๋ฉด์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.

์ด ์žฅ์˜ ๋ชฉํ‘œ๋Š” DNS ์„œ๋ฒ„๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ์šด์˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, โ€œ๋ฌด์—‡์„ ๋ฌผ์–ด๋ดค๊ณ , ์–ด๋–ค IP๋ฅผ ๋ฐ›์•˜์œผ๋ฉฐ, ๊ทธ ๋‹ค์Œ ์–ด๋””๋กœ ์ ‘์†ํ–ˆ๋Š”๊ฐ€โ€๋ฅผ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ์œผ๋กœ ๋ณด๋Š” DNS ํ๋ฆ„

DNS ๊ธฐ๋ณธ ๋™์ž‘ ์ˆœ์„œ
์‚ฌ์šฉ์ž๊ฐ€ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•˜๋ฉด DNS ์งˆ์˜์™€ ์‘๋‹ต์„ ๊ฑฐ์ณ ์›น ์„œ๋ฒ„ IP๋ฅผ ์–ป๋Š”๋‹ค.
DNS ์‘๋‹ต IP๋Š” ์ดํ›„ ์›น ์ ‘์† ๋ชฉ์ ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ Wireshark์—์„œ๋Š” DNS Response์˜ Answers ์˜์—ญ๊ณผ ์ดํ›„ TCP ๋ชฉ์ ์ง€ IP๋ฅผ ํ•จ๊ป˜ ๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์‰ฝ๊ฒŒ ๋งํ•˜๋ฉดDNS๋Š” ์ธํ„ฐ๋„ท์˜ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์€ ์ด๋ฆ„์„ ๊ธฐ์–ตํ•˜๊ณ , ์ปดํ“จํ„ฐ๋Š” ๋ฒˆํ˜ธ(IP)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „ํ™”๋ฒˆํ˜ธ๋ถ€๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ ค์ฃผ๋ฉด ๊ฐ™์€ ์ด๋ฆ„์„ ๋ˆŒ๋Ÿฌ๋„ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ „ํ™”๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
DNS ๊ณ„์ธต ๊ตฌ์กฐ
DNS ๊ณ„์ธต ๊ตฌ์กฐ Wikimedia Commons
DNS ํ•ด์„ ๊ตฌ์กฐ
DNS ํ•ด์„ ํ๋ฆ„ Wikimedia Commons
์‹ค์ œ ํ™˜๊ฒฝ์˜ DNS
์‹ค์ œ ํ™˜๊ฒฝ์˜ DNS Wikimedia Commons

DNS ์งˆ์˜์™€ ์‘๋‹ต

DNS ์งˆ์˜์™€ ์‘๋‹ต ๊ตฌ์กฐ
DNS Query๋Š” ์งˆ๋ฌธ์ด๊ณ  DNS Response๋Š” ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ IP๋ฅผ ์•Œ๋ ค ์ฃผ๋Š” ๋‹ต์ด๋‹ค.

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

Wireshark์—์„œ๋Š” DNS Query์™€ DNS Response๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Query๋Š” โ€œ๋ฌด์—‡์„ ๋ฌผ์–ด๋ดค๋Š”๊ฐ€โ€์ด๊ณ , Response๋Š” โ€œ์–ด๋–ค IP๋ฅผ ๋ฐ›์•˜๋Š”๊ฐ€โ€์ž…๋‹ˆ๋‹ค. DNS๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ๋Š” ์งˆ๋ฌธ๊ณผ ๋‹ต์„ ํ•ญ์ƒ ํ•œ ์Œ์œผ๋กœ ๋ณด๋Š” ์Šต๊ด€์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ณ„์ธต ๊ตฌ์กฐ

DNS ์žฌ๊ท€ ์งˆ์˜ ํ๋ฆ„
Local DNS๊ฐ€ Root, TLD, Authoritative DNS๋ฅผ ๊ฑฐ์ณ ์ตœ์ข… IP ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •

๋„๋ฉ”์ธ์€ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ํฐ ๋ฒ”์œ„์—์„œ ์ž‘์€ ๋ฒ”์œ„๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด www.example.com์—์„œ com์€ ์ตœ์ƒ์œ„ ๋„๋ฉ”์ธ์— ๊ฐ€๊น๊ณ , example์€ ๊ทธ ์•„๋ž˜ ๋„๋ฉ”์ธ, www๋Š” ํŠน์ • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์‹ค์ œ ์ธํ„ฐ๋„ท์—์„œ๋Š” Root, TLD, Authoritative DNS ๊ฐ™์€ ๊ณ„์ธต์„ ๊ฑฐ์ณ ๋‹ต์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ํ”„๋กœ์ ํŠธ์˜ ๋‚ด๋ถ€ ์‹ค์Šต๋ง์—์„œ๋Š” ๊ตฌ์กฐ๋ฅผ ๋‹จ์ˆœํ™”ํ•ด์„œ .test ๋„๋ฉ”์ธ๊ณผ ๋‚ด๋ถ€ DNS ์„œ๋ฒ„๋งŒ์œผ๋กœ ์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ ˆ์ฝ”๋“œ์™€ TTL

์ฃผ์š” DNS ๋ ˆ์ฝ”๋“œ ์ข…๋ฅ˜
A, AAAA, CNAME, MX, NS, TXT, PTR ๋ ˆ์ฝ”๋“œ๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ DNS ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค.

A ๋ ˆ์ฝ”๋“œ๋Š” ๋„๋ฉ”์ธ์„ IPv4 ์ฃผ์†Œ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์‹ค์Šต์—์„œ๋Š” school-login.test๊ฐ€ ์ •์ƒ ์•ˆ๋‚ด ํŽ˜์ด์ง€ IP ๋˜๋Š” ๊ต์œก์šฉ ๊ฒฝ๊ณ  ํŽ˜์ด์ง€ IP๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CNAME์€ ๋ณ„์นญ, MX๋Š” ๋ฉ”์ผ ์„œ๋ฒ„, NS๋Š” ๋„ค์ž„์„œ๋ฒ„, TXT๋Š” ๋ฌธ์ž์—ด ์ •์ฑ… ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” A ๋ ˆ์ฝ”๋“œ์™€ TTL๋งŒ ํ™•์‹คํžˆ ์ดํ•ดํ•ด๋„ ํ”„๋กœ์ ํŠธ ์„ค๋ช…์—๋Š” ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

TTL์€ DNS ์‘๋‹ต์„ ์–ผ๋งˆ ๋™์•ˆ ์บ์‹œํ• ์ง€ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. TTL์ด ๊ธธ๋ฉด ์„ค์ •์„ ๋ฐ”๊ฟ”๋„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด์ „ ์‘๋‹ต์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์บ์‹œ๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๋Š” ์ด์œ 

DNS ์บ์‹œ์™€ TTL
TTL์€ DNS ์‘๋‹ต์„ ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ์บ์‹œ์— ์ €์žฅํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

DNS ์บ์‹œ๋Š” ๊ฐ™์€ ๋„๋ฉ”์ธ์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ฌผ์–ด๋ณด์ง€ ์•Š๋„๋ก ์‘๋‹ต์„ ์ž ์‹œ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์บ์‹œ๊ฐ€ ์žˆ์œผ๋ฉด ์›น ์ ‘์†์ด ๋นจ๋ผ์ง€๊ณ  DNS ์„œ๋ฒ„์˜ ๋ถ€๋‹ด๋„ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณต๋ถ€ํ•  ๋•Œ๋Š” โ€œ์„ค์ •์„ ๋ฐ”๊ฟจ๋Š”๋ฐ ์™œ ๊ฒฐ๊ณผ๊ฐ€ ๊ทธ๋Œ€๋กœ์ง€?โ€๋ผ๋Š” ํ˜ผ๋ž€์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด school-login.test์˜ IP๋ฅผ ๋ฐ”๊ฟจ๋Š”๋ฐ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ฌ์ „ํžˆ ์ด์ „ ์„œ๋ฒ„๋กœ ์ ‘์†ํ•œ๋‹ค๋ฉด, DNS ์„œ๋ฒ„ ์„ค์ •์ด ํ‹€๋ฆฐ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด์ „ ์‘๋‹ต์„ ์บ์‹œ์— ๋“ค๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ DNS๋ฅผ ํ™•์ธํ•  ๋•Œ๋Š” ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ, ์šด์˜์ฒด์ œ DNS ์บ์‹œ, DNS ์„œ๋ฒ„ ์บ์‹œ๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์ƒ๊ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

DNS ์บ์‹œ ์‚ญ์ œ์™€ ์žฌ์กฐํšŒ
์บ์‹œ๋ฅผ ๋น„์šด ๋’ค ๋‹ค์‹œ ์กฐํšŒํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ DNS ์‘๋‹ต์„ ํ™•์ธํ•˜๊ธฐ ์‰ฝ๋‹ค.
nslookup school-login.test
dig school-login.test
dig @192.168.56.10 school-login.test

resolvectl status
resolvectl flush-caches
ipconfig /flushdns

์ •์ƒ ์‘๋‹ต๊ณผ ์ด์ƒ ์‘๋‹ต

์ •์ƒ DNS์™€ ์ด์ƒ DNS ๋น„๊ต
๊ฐ™์€ ๋„๋ฉ”์ธ์ด๋ผ๋„ DNS ์‘๋‹ต IP๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉด ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ ‘์†๋  ์ˆ˜ ์žˆ๋‹ค.
์ƒํƒœ์งˆ์˜ ๋„๋ฉ”์ธ์‘๋‹ต IP๋ธŒ๋ผ์šฐ์ € ๊ฒฐ๊ณผ์ดํ•ด ํฌ์ธํŠธ
์ •์ƒschool-login.test์ •์ƒ ์›น ์„œ๋ฒ„ IP์ •์ƒ ์•ˆ๋‚ด ํŽ˜์ด์ง€์ด๋ฆ„๊ณผ ๋ชฉ์ ์ง€๊ฐ€ ์˜๋„๋Œ€๋กœ ์—ฐ๊ฒฐ๋จ
์ด์ƒ ์‘๋‹ตschool-login.test๋‹ค๋ฅธ ์›น ์„œ๋ฒ„ IP๋‹ค๋ฅธ ํŽ˜์ด์ง€ ํ‘œ์‹œ๋„๋ฉ”์ธ์€ ๊ฐ™์ง€๋งŒ ๋ชฉ์ ์ง€ IP๊ฐ€ ๋‹ฌ๋ผ์ง
์บ์‹œ ์ž”์กดschool-login.test์ด์ „ ์‘๋‹ต IP๊ฒฐ๊ณผ ์ง€์—ฐTTL๊ณผ ์บ์‹œ๋ฅผ ํ•จ๊ป˜ ํ™•์ธํ•ด์•ผ ํ•จ

์ •์ƒ ์‘๋‹ต๊ณผ ์ด์ƒ ์‘๋‹ต์„ ๋น„๊ตํ•  ๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ์ค€์€ ๋„๋ฉ”์ธ ์ด๋ฆ„์ด ์•„๋‹ˆ๋ผ ์‘๋‹ต์œผ๋กœ ๋ฐ›์€ IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๊ฐ™์€ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด๋„ DNS๊ฐ€ ๋‹ค๋ฅธ IP๋ฅผ ์•Œ๋ ค์ฃผ๋ฉด ๊ฒฐ๊ตญ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ฐœ๋… ๋ณต์Šต

๋‚ด๋ถ€ ์‹ค์Šต ๋„๋ฉ”์ธ ๊ตฌ์กฐ
๋‚ด๋ถ€ ํ•™์Šต๋ง์—์„œ๋Š” .test, .local ๊ฐ™์€ ํ…Œ์ŠคํŠธ ๋„๋ฉ”์ธ์œผ๋กœ DNS ํ๋ฆ„์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ตํž ์ˆ˜ ์žˆ๋‹ค.

DNS์˜ ํ•ต์‹ฌ์€ โ€œ์ด๋ฆ„์„ ์ฃผ์†Œ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •โ€์ž…๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ ์ด๋ฆ„์€ ์‚ฌ๋žŒ์ด ๊ธฐ์–ตํ•˜๊ธฐ ์ข‹๊ณ , IP ์ฃผ์†Œ๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ํ†ต์‹ ํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค. DNS๋Š” ์ด ๋‘˜ ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ๋ฒˆ์—ญ๊ธฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

A ๋ ˆ์ฝ”๋“œ๋Š” IPv4 ์ฃผ์†Œ๋ฅผ ์•Œ๋ ค ์ฃผ๊ณ , CNAME์€ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉฐ, NS๋Š” ๊ถŒํ•œ ์žˆ๋Š” ๋„ค์ž„์„œ๋ฒ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. TTL์€ ์‘๋‹ต์„ ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ๊ธฐ์–ตํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐœ๋…๋“ค์ด ํ•ฉ์ณ์ ธ์„œ ์šฐ๋ฆฌ๊ฐ€ ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•œ ์ด๋ฆ„์ด ์‹ค์ œ ์„œ๋ฒ„ ์ ‘์†์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

DNS๋ฅผ ์ดํ•ดํ•˜๋ฉด ์›น ์ ‘์† ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๊ฐ€ ์•ˆ ์—ด๋ฆด ๋•Œ ์„œ๋ฒ„๊ฐ€ ๊บผ์ง„ ๊ฒƒ์ธ์ง€, DNS๊ฐ€ ์ž˜๋ชป๋œ IP๋ฅผ ์•Œ๋ ค ์ค€ ๊ฒƒ์ธ์ง€, ์บ์‹œ ๋•Œ๋ฌธ์— ์ด์ „ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์ธ์ง€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.