์บ์‹ฑ DNS ์„œ๋ฒ„ PowerDNS Recursor 4.6.0 ์ถœ์‹œ

์žฌ๊ท€์  ์ด๋ฆ„ ํ™•์ธ์„ ๋‹ด๋‹นํ•˜๋Š” ์บ์‹ฑ DNS ์„œ๋ฒ„ PowerDNS Recursor 4.6 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PowerDNS Recursor๋Š” PowerDNS Authoritative Server์™€ ๋™์ผํ•œ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์ง€๋งŒ PowerDNS Recursive ๋ฐ Authoritative DNS ์„œ๋ฒ„๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ๋˜์–ด ๋ณ„๋„์˜ ์ œํ’ˆ์œผ๋กœ ์ถœ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” GPLv2 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” ์›๊ฒฉ ํ†ต๊ณ„ ์ˆ˜์ง‘์„ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์ฆ‰์‹œ ์žฌ์‹œ์ž‘์„ ์ง€์›ํ•˜๋ฉฐ, Lua ์–ธ์–ด๋กœ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—”์ง„์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ, DNSSEC, DNS64, RPZ(์‘๋‹ต ์ •์ฑ… ์˜์—ญ)๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๊ณ  ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ BIND zone ํŒŒ์ผ๋กœ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด FreeBSD, Linux ๋ฐ Solaris(kqueue, epoll, /dev/poll)์—์„œ๋Š” ์ตœ์‹  ์—ฐ๊ฒฐ ๋‹ค์ค‘ํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ์ˆ˜๋งŒ ๊ฐœ์˜ ๋ณ‘๋ ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์„ฑ๋Šฅ DNS ํŒจํ‚ท ํŒŒ์„œ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์—์„œ:

  • ์ฃผ๊ธฐ์ ์œผ๋กœ DNS ์˜์—ญ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ•ด๋‹น ๋‚ด์šฉ์„ ์บ์‹œ์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” "Zone to Cache" ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์บ์‹œ๊ฐ€ ํ•ญ์ƒ "ํ•ซ" ์ƒํƒœ์— ์žˆ๊ณ  ํ•ด๋‹น ์˜์—ญ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๋ฃจํŠธ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์œ ํ˜•์˜ ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜์—ญ ๊ฒ€์ƒ‰์€ DNS AXFR, HTTP, HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋กœ์ปฌ ํŒŒ์ผ์—์„œ ๋กœ๋“œ๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋“ค์–ด์˜ค๋Š” ์•Œ๋ฆผ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ์บ์‹œ์—์„œ ํ•ญ๋ชฉ์„ ์žฌ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • DoT(TLS๋ฅผ ํ†ตํ•œ DNS)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DNS ์„œ๋ฒ„์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ DoT๋Š” DNS ์ „๋‹ฌ์ž์— ๋Œ€ํ•ด ํฌํŠธ 853์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ dot-to-auth-names ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด DNS ์„œ๋ฒ„๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜์—ดํ•˜๋Š” ๊ฒฝ์šฐ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. DoT๋กœ์˜ ์ž๋™ ์ „ํ™˜ ๋ฐ DNS ์„œ๋ฒ„ ์ง€์›๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ธ์ฆ์„œ ํ™•์ธ์€ ์•„์ง ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ํ‘œ์ค€ํ™” ์œ„์›ํšŒ์˜ ์Šน์ธ ํ›„์— ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค).
  • ๋‚˜๊ฐ€๋Š” TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๊ฐ€ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์—ฐ๊ฒฐ์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. TCP(๋ฐ DoT) ์—ฐ๊ฒฐ์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐ์€ ๋” ์ด์ƒ ์š”์ฒญ ์ฒ˜๋ฆฌ ํ›„ ์ฆ‰์‹œ ๋‹ซํžˆ์ง€ ์•Š๊ณ  ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค(๋™์ž‘์€ tcp-out-max-idle-ms ์„ค์ •์— ์˜ํ•ด ์ œ์–ด๋จ).
  • ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ†ต๊ณ„ ๋ฐ ์ •๋ณด์™€ ํ•จ๊ป˜ ์ˆ˜์ง‘๋˜๊ณ  ๋‚ด๋ณด๋‚ธ ์ธก์ •ํ•ญ๋ชฉ์˜ ๋ฒ”์œ„๊ฐ€ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ํ•ด๊ฒฐ ๋‹จ๊ณ„์˜ ์‹คํ–‰ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์‹คํ—˜์ ์ธ ์ด๋ฒคํŠธ ์ถ”์  ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์ถœ์ฒ˜ : opennet.ru

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