์ฃผ์†Œ 1.1.1.1 ๋ฐ 1.0.0.1 ๋˜๋Š” "๊ณต์šฉ DNS ์„ ๋ฐ˜์ด ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค!"์—์„œ Cloudflare์˜ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋‚ฉ๋‹ˆ๋‹ค.

์ฃผ์†Œ 1.1.1.1 ๋ฐ 1.0.0.1 ๋˜๋Š” "๊ณต์šฉ DNS ์„ ๋ฐ˜์ด ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค!"์—์„œ Cloudflare์˜ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋‚ฉ๋‹ˆ๋‹ค.

Cloudflare ํšŒ์‚ฌ ์ œ์‹œ ์ฃผ์†Œ์˜ ๊ณต๊ฐœ DNS:

  • 1.1.1.1
  • 1.0.0.1
  • 2606 : 4700 : 4700 :: 1111
  • 2606 : 4700 : 4700 :: 1001

์ด ์ •์ฑ…์€ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์•ˆ์‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก "๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ์šฐ์„ "์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด ์„œ๋น„์Šค๋Š” ์ผ๋ฐ˜์ ์ธ DNS ์™ธ์—๋„ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์—์„œ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. DNS-over-TLS ะธ DNS๋ฅผ ํ†ตํ•œ HTTPS, ์ด๋Š” ๊ณต๊ธ‰์ž๊ฐ€ ์š”์ฒญ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๊ท€ํ•˜์˜ ์š”์ฒญ์„ ๋„์ฒญํ•˜๋Š” ๊ฒƒ์„ ํฌ๊ฒŒ ๋ฐฉ์ง€ํ•˜๊ณ  ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ๊ด‘๊ณ ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Cloudflare๋Š” ๋ฐœํ‘œ ๋‚ ์งœ(1๋…„ 2018์›” 04์ผ ๋˜๋Š” ๋ฏธ๊ตญ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ 01/XNUMX)๊ฐ€ ์šฐ์—ฐํžˆ ์„ ํƒ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. "XNUMX๊ฐœ ๋‹จ์œ„"๊ฐ€ ๋‹ค๋ฅธ ์–ด๋Š ๋‚ ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ?

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

์ƒˆ๋กœ์šด ์„œ๋น„์Šค๋Š” ์–ด๋–ป๊ฒŒ ์ด์šฉํ•˜๋‚˜์š”?

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ DNS ํด๋ผ์ด์–ธํŠธ์—์„œ ์œ„์˜ DNS ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋˜๋Š” ์‚ฌ์šฉํ•˜๋Š” ๋กœ์ปฌ DNS ์„œ๋ฒ„ ์„ค์ •์˜ ์—…์ŠคํŠธ๋ฆผ์œผ๋กœ). ์ผ๋ฐ˜์ ์ธ ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๊นŒ? ๊ตฌ๊ธ€ DNS (8.8.8.8 ๋“ฑ) ๋˜๋Š” ์•ฝ๊ฐ„ ๋œ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. Yandex ๊ณต์šฉ DNS ์„œ๋ฒ„ (77.88.8.8 ๋ฐ ๊ธฐํƒ€ ์œ ์‚ฌํ•œ ํ•ญ๋ชฉ)์„ Cloudflare์˜ ์„œ๋ฒ„๋กœ ์ „์†ก - ๊ฒฐ์ •์€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์ง€๋งŒ ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ์ • Cloudflare๊ฐ€ ๋ชจ๋“  ๊ฒฝ์Ÿ์‚ฌ๋ณด๋‹ค ๋น ๋ฅธ ์‘๋‹ต ์†๋„(๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ธก์ •์€ ํƒ€์‚ฌ ์„œ๋น„์Šค์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉฐ ํŠน์ • ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์†๋„๋Š” ๋ฌผ๋ก  ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

์ฃผ์†Œ 1.1.1.1 ๋ฐ 1.0.0.1 ๋˜๋Š” "๊ณต์šฉ DNS ์„ ๋ฐ˜์ด ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค!"์—์„œ Cloudflare์˜ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋‚ฉ๋‹ˆ๋‹ค.

์š”์ฒญ์ด ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜๋Š”(์‹ค์ œ๋กœ ์‘๋‹ต์€ ์ด๋ฅผ ํ†ตํ•ด ๋ฐ˜ํ™˜๋จ) ์–ธ๊ธ‰๋œ DNS-over-TLS ๋ฐ DNS-over-HTTPS์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ์ด๋“ค์€ "์ฆ‰์‹œ" ์ง€์›๋˜์ง€๋Š” ์•Š์ง€๋งŒ(์ €์ž๋Š” ์ด๊ฒƒ์ด "์•„์ง"์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค) ์†Œํ”„ํŠธ์›จ์–ด(๋˜๋Š” ํ•˜๋“œ์›จ์–ด์—์„œ๋„)์—์„œ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

DoH(DNS over HTTP)

์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ํ†ต์‹ ์€ HTTPS ์ฑ„๋„์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

  1. ์ฐฉ๋ฅ™ ์ง€์ (์ข…์ )์˜ ์กด์žฌ - ์ฃผ์†Œ์— ์œ„์น˜ https://cloudflare-dns.com/dns-query๊ณผ
  2. ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ์ž…๋‹ˆ๋‹ค.

์š”์ฒญ์€ ๋‹ค์Œ์— ์ •์˜๋œ DNS Wireformat ํ˜•์‹์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RFC1035 (POST ๋ฐ GET HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก) ๋˜๋Š” JSON ํ˜•์‹(GET HTTP ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ). ๊ฐœ์ธ์ ์œผ๋กœ HTTP ์š”์ฒญ์„ ํ†ตํ•ด DNS ์š”์ฒญ์„ ํ•œ๋‹ค๋Š” ์•„์ด๋””์–ด๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์ง€๋งŒ ๊ทธ ์•ˆ์—๋Š” ํ•ฉ๋ฆฌ์ ์ธ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์š”์ฒญ์€ ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ ํ•„ํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ํ†ต๊ณผํ•˜๊ณ  ์‘๋‹ต ๊ตฌ๋ฌธ ๋ถ„์„์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋ฉฐ ์š”์ฒญ ์ƒ์„ฑ์€ ํ›จ์”ฌ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋กœํ† ์ฝœ์€ ๋ณด์•ˆ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ์—์„œ ๋ฐ”๋กœ ์˜ˆ์ œ๋ฅผ ์š”์ฒญํ•˜์„ธ์š”.

DNS Wireformat ํ˜•์‹์˜ GET ์š”์ฒญ

$ curl -v "https://cloudflare-dns.com/dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB" | hexdump
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7f968700a400)
GET /dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB HTTP/2
Host: cloudflare-dns.com
User-Agent: curl/7.54.0
Accept: */*

* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
HTTP/2 200
date: Fri, 23 Mar 2018 05:14:02 GMT
content-type: application/dns-udpwireformat
content-length: 49
cache-control: max-age=0
set-cookie: __cfduid=dd1fb65f0185fadf50bbb6cd14ecbc5b01521782042; expires=Sat, 23-Mar-19 05:14:02 GMT; path=/; domain=.cloudflare.com; HttpOnly
server: cloudflare-nginx
cf-ray: 3ffe69838a418c4c-SFO-DOG

{ [49 bytes data]
100    49  100    49    0     0    493      0 --:--:-- --:--:-- --:--:--   494
* Connection #0 to host cloudflare-dns.com left intact
0000000 ab cd 81 80 00 01 00 01 00 00 00 00 03 77 77 77
0000010 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00
0000020 01 c0 0c 00 01 00 01 00 00 0a 8b 00 04 5d b8 d8
0000030 22
0000031

DNS Wireformat ํ˜•์‹์˜ POST ์š”์ฒญ

$ echo -n 'q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB' | base64 -D | curl -H 'Content-Type: application/dns-udpwireformat' --data-binary @- https://cloudflare-dns.com/dns-query -o - | hexdump

{ [49 bytes data]
100    49  100    49    0     0    493      0 --:--:-- --:--:-- --:--:--   494
* Connection #0 to host cloudflare-dns.com left intact
0000000 ab cd 81 80 00 01 00 01 00 00 00 00 03 77 77 77
0000010 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00
0000020 01 c0 0c 00 01 00 01 00 00 0a 8b 00 04 5d b8 d8
0000030 22
0000031

๋™์ผํ•˜์ง€๋งŒ JSON์„ ์‚ฌ์šฉํ•จ

$ curl 'https://cloudflare-dns.com/dns-query?ct=application/dns-json&name=example.com&type=AAAA'

{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": true,
  "CD": false,
  "Question": [
    {
      "name": "example.com.",
      "type": 1
    }
  ],
  "Answer": [
    {
      "name": "example.com.",
      "type": 1,
      "TTL": 1069,
      "data": "93.184.216.34"
    }
  ]
}

๋ถ„๋ช…ํžˆ ๋“œ๋ฌธ(์ ์–ด๋„ ํ•˜๋‚˜๋ผ๋„) ํ™ˆ ๋ผ์šฐํ„ฐ๊ฐ€ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ DNS์™€ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๋‚ด์ผ ์ง€์›์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์—ฌ๊ธฐ์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ DNS ์ž‘์—…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด๋ฏธ ๋ชจ์งˆ๋ผ๋ฅผ ๋งŒ๋“ค๊ฑฐ์•ผ, Cloudflare ์„œ๋ฒ„์—๋งŒ ์žˆ์Œ).

TLS๋ฅผ ํ†ตํ•œ DNS

๊ธฐ๋ณธ์ ์œผ๋กœ DNS ์ฟผ๋ฆฌ๋Š” ์•”ํ˜ธํ™” ์—†์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. TLS๋ฅผ ํ†ตํ•œ DNS๋Š” ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Cloudflare๋Š” ๊ทœ์ •์— ๋”ฐ๋ผ ํ‘œ์ค€ ํฌํŠธ 853์—์„œ TLS๋ฅผ ํ†ตํ•œ DNS๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. RFC7858. ์ด๋Š” cloudflare-dns.com ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•ด ๋ฐœ๊ธ‰๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ TLS 1.2 ๋ฐ TLS 1.3์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ผ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ์ž‘์—…ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • DNS ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ธฐ ์ „์— ํด๋ผ์ด์–ธํŠธ๋Š” cloudflare-dns.com TLS ์ธ์ฆ์„œ(SPKI๋ผ๊ณ  ํ•จ)์˜ base64๋กœ ์ธ์ฝ”๋”ฉ๋œ SHA256 ํ•ด์‹œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • DNS ํด๋ผ์ด์–ธํŠธ๋Š” cloudflare-dns.com:853์— ๋Œ€ํ•œ TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • DNS ํด๋ผ์ด์–ธํŠธ๊ฐ€ TLS ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • TLS ํ•ธ๋“œ์…ฐ์ดํฌ ํ”„๋กœ์„ธ์Šค ์ค‘์— cloudflare-dns.com ํ˜ธ์ŠคํŠธ๋Š” TLS ์ธ์ฆ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • TLS ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜๋ฉด DNS ํด๋ผ์ด์–ธํŠธ๋Š” ๋ณด์•ˆ ์ฑ„๋„์„ ํ†ตํ•ด DNS ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์š”์ฒญ๊ณผ ์‘๋‹ต์ด ๋„์ฒญ๋˜๊ฑฐ๋‚˜ ์Šคํ‘ธํ•‘๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • TLS ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ „์†ก๋œ ๋ชจ๋“  DNS ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. TCP๋ฅผ ํ†ตํ•ด DNS ๋ณด๋‚ด๊ธฐ.

TLS๋ฅผ ํ†ตํ•œ DNS๋ฅผ ํ†ตํ•œ ์š”์ฒญ์˜ ์˜ˆ:

$ kdig -d @1.1.1.1 +tls-ca +tls-host=cloudflare-dns.com  example.com
;; DEBUG: Querying for owner(example.com.), class(1), type(1), server(1.1.1.1), port(853), protocol(TCP)
;; DEBUG: TLS, imported 170 system certificates
;; DEBUG: TLS, received certificate hierarchy:
;; DEBUG:  #1, C=US,ST=CA,L=San Francisco,O=Cloudflare, Inc.,CN=*.cloudflare-dns.com
;; DEBUG:      SHA-256 PIN: yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc=
;; DEBUG:  #2, C=US,O=DigiCert Inc,CN=DigiCert ECC Secure Server CA
;; DEBUG:      SHA-256 PIN: PZXN3lRAy+8tBKk2Ox6F7jIlnzr2Yzmwqc3JnyfXoCw=
;; DEBUG: TLS, skipping certificate PIN check
;; DEBUG: TLS, The certificate is trusted.
;; TLS session (TLS1.2)-(ECDHE-ECDSA-SECP256R1)-(AES-256-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 58548
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 1536 B; ext-rcode: NOERROR
;; PADDING: 408 B

;; QUESTION SECTION:
;; example.com.             IN  A

;; ANSWER SECTION:
example.com.            2347    IN  A   93.184.216.34

;; Received 468 B
;; Time 2018-03-31 15:20:57 PDT
;; From 1.1.1.1@853(TCP) in 12.6 ms

์ด ์˜ต์…˜์€ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ๋˜๋Š” ๋‹จ์ผ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋กœ์ปฌ DNS ์„œ๋ฒ„์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ํ‘œ์ค€ ์ง€์›์ด ๊ทธ๋‹ค์ง€ ์ข‹์ง€๋Š” ์•Š์ง€๋งŒ ํฌ๋งํ•ฉ์‹œ๋‹ค!

๋Œ€ํ™”์˜ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” ๋‘ ๋‹จ์–ด

์•ฝ์–ด DNS๋Š” Domain Name Service(์ฆ‰, "DNS ์„œ๋น„์Šค"๋Š” ๋‹ค์†Œ ์ค‘๋ณต๋˜๋ฉฐ ์•ฝ์–ด์—๋Š” ์ด๋ฏธ "์„œ๋น„์Šค"๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Œ)๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ํŠน์ • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์ด ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— ์ฃผ์†Œ(์˜ˆ: 'https://habrahabr.ru/post/346430/"), ์ธ๊ฐ„ ์ปดํ“จํ„ฐ๋Š” ํŽ˜์ด์ง€์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์š”์ฒญ์„ ๋ณด๋‚ผ ์„œ๋ฒ„๋ฅผ ์•Œ์•„๋‚ด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. habrahabr.ru์˜ ๊ฒฝ์šฐ DNS์˜ ์‘๋‹ต์—๋Š” ์›น ์„œ๋ฒ„ IP ์ฃผ์†Œ(178.248.237.68) ํ‘œ์‹œ๊ฐ€ ํฌํ•จ๋˜๋ฉฐ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋ฏธ ์ง€์ •๋œ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด DNS ์„œ๋ฒ„๋Š” "habrahabr.ru๋ผ๋Š” ํ˜ธ์ŠคํŠธ์˜ IP ์ฃผ์†Œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์€ ํ›„ ์ง€์ •๋œ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•ด ์•„๋Š” ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์ „ ์„ธ๊ณ„์˜ ๋‹ค๋ฅธ DNS ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๊ณ , ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ฐพ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ตœ์ข… ๋‹ต๋ณ€์„ ์ฐพ์œผ๋ฉด ๋ฐœ๊ฒฌ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„์ง ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜๋ฉฐ, DNS ์„œ๋ฒ„ ์ž์ฒด์˜ ์บ์‹œ์— ์ €์žฅ๋˜๋ฏ€๋กœ ๋‹ค์Œ ๋ฒˆ์— ์œ ์‚ฌํ•œ ์งˆ๋ฌธ์— ํ›จ์”ฌ ๋” ๋น ๋ฅด๊ฒŒ ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์•„๋งˆ ์‚ฌ์ดํŠธ์—์„œ ๊ฐ€์ ธ์˜จ ์‚ฌ์ง„์ผ ๊ฒ๋‹ˆ๋‹ค. http://1.1.1.1/, ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ž‘์„ฑ์ž๋Š” DNS ํ’ˆ์งˆ์— ์ƒ๋‹นํ•œ ์ž์‹ ๊ฐ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ Cloudflare์—์„œ ๋‹ค๋ฅธ ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค).

์ฃผ์†Œ 1.1.1.1 ๋ฐ 1.0.0.1 ๋˜๋Š” "๊ณต์šฉ DNS ์„ ๋ฐ˜์ด ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค!"์—์„œ Cloudflare์˜ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋‚ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์ฐฝ์‹œ์ž์ธ Cloudflare๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloudflare๋Š” ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” CDN ๋„คํŠธ์›Œํฌ ์ค‘ ํ•˜๋‚˜(์ฝ˜ํ…์ธ  ๋ฐฐํฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ DNS ์˜์—ญ ํ˜ธ์ŠคํŒ…๋„ ํฌํ•จํ•˜๋Š” ๊ธฐ๋Šฅ)๋ฅผ ์œ ์ง€ ๋ฐ ๊ฐœ๋ฐœํ•˜์—ฌ ์ˆ˜์ž…์„ ์–ป์Šต๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ๋žŒ๋“ค์˜ ์š•๋ง, ์ž˜ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ, ๊ทธ๊ฑธ ๊ฐ€๋ฅด์ณ ๊ทธ๋“ค์ด ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ, ๊ทธ๊ฒƒ์— ์–ด๋””๋กœ ๊ฐ€์•ผ ๊ธ€๋กœ๋ฒŒ ๋„คํŠธ์›Œํฌ์—์„œ๋Š” ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ์ธ์ง€๋Š” ๋งํ•˜์ง€ ๋ง์ž - ๋”ฐ๋ผ์„œ ํšŒ์‚ฌ์˜ "๊ณ ํ•จ, ํœ˜ํŒŒ๋žŒ, ๋‚™์„œ"์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” DNS๋ฅผ ๋ณด์œ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํšŒ์‚ฌ์˜ ๋น„์ฆˆ๋‹ˆ์Šค์— ํ•ด๋ฅผ ๋ผ์น˜๋Š” ์ผ์ด ์ ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์ˆ ์  ์ด์ (์‚ฌ์†Œํ•˜์ง€๋งŒ ์ข‹์€ ์ : ํŠนํžˆ ๋ฌด๋ฃŒ DNS Cloudflare ํด๋ผ์ด์–ธํŠธ์˜ ๊ฒฝ์šฐ ํšŒ์‚ฌ์˜ DNS ์„œ๋ฒ„์— ํ˜ธ์ŠคํŒ…๋œ ๋ฆฌ์†Œ์Šค์˜ DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฆ‰์‹œ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Œ)์œผ๋กœ ์ธํ•ด ๊ฒŒ์‹œ๋ฌผ์— ์„ค๋ช…๋œ ์„œ๋น„์Šค๋ฅผ ๋”์šฑ ํฅ๋ฏธ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋งŒ ์„ค๋ฌธ ์กฐ์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ œ๋ฐœ

์ƒˆ๋กœ์šด ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

  • ์˜ˆ, ๊ฐ„๋‹จํžˆ OS ๋ฐ/๋˜๋Š” ๋ผ์šฐํ„ฐ์—์„œ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ, ๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ(HTTP๋ฅผ ํ†ตํ•œ DNS ๋ฐ TLS๋ฅผ ํ†ตํ•œ DNS)์„ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์•„๋‹ˆ์š”, ํ˜„์žฌ ์„œ๋ฒ„๊ฐ€ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค(๊ณต๊ฐœ ๊ณต๊ธ‰์ž: Google, Yandex ๋“ฑ).

  • ์•„๋‹ˆ์š”, ์ œ๊ฐ€ ์ง€๊ธˆ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€์กฐ์ฐจ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • SSL ํ„ฐ๋„๊ณผ ํ•จ๊ป˜ ์žฌ๊ท€ DNS๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

693๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 191๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ถŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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