DNS: 이름을 주소로 바꾸기
루트 네임서버 13개는 12개 기관이 전 세계 2047대의 기계로 운영합니다(root-servers.org, 2026년 10월 17일).
이제 HOSTS.TXT 파일을 내려받는 컴퓨터는 없습니다. 지금 우리는 주소창에 198.51.100.20이 아니라 example.com을 치고, 모든 이름이 적힌 목록을 내려받는 사람도 없습니다. 그래도 라우터는 여전히 숫자만 알아듣습니다. 그래서 브라우저가 웹사이트로 패킷을 하나라도 보내려면 먼저 이름이 주소로 바뀌어야 합니다. 이 일을 하는 것이 도메인 네임 시스템(DNS)이고, Cloudflare 안내서는 DNS를 인터넷의 전화번호부라고 부릅니다.
도메인 이름은 나무를 따라 내려가는 길입니다
www.example.com을 오른쪽부터 읽어 보세요. 맨 위에는 보이지 않는 점으로 적는 루트가 있습니다. 그 아래가 com, org, kr 같은 최상위 도메인(TLD)입니다. com 아래에 example이, 그 아래에 www가 있습니다. 점으로 나뉜 조각 하나하나를 레이블이라고 하고, RFC 1035는 레이블 하나에 63바이트, 이름 전체에 255바이트까지 허용합니다. 나뭇가지마다 맡아 운영하는 기관이 다르기 때문에 컴퓨터 한 대가 세상의 모든 이름을 알 필요가 없습니다. HOSTS.TXT가 풀지 못한 문제를 이렇게 풀었습니다. 우리나라 사이트 주소 끝에 자주 붙는 kr도 이 나무의 한 가지입니다.
서버 네 종류, 단계 여덟 개
Cloudflare는 조회 한 번에 등장하는 서버를 네 가지로 나눕니다. 재귀 리졸버는 보통 통신사나 공개 DNS 서비스가 운영하며, 나 대신 여기저기 물으러 다닙니다. 루트 서버는 TLD 서버들이 어디 있는지 압니다. com 서버 같은 TLD 서버는 그 아래 도메인마다 어느 서버가 기록을 갖고 있는지 압니다. 도메인의 권한 있는 서버는 그 도메인의 실제 기록을 갖고 있다가 마지막 답을 줍니다. 캐시에 아무것도 없으면 조회는 여덟 단계를 거칩니다. 내 컴퓨터가 리졸버에 묻습니다. 리졸버가 루트에 묻고, 루트는 com 서버를 알려 줍니다. 리졸버가 com에 묻고, com은 도메인의 네임서버를 알려 줍니다. 리졸버가 그 네임서버에 묻고, 네임서버가 주소로 답하면, 리졸버가 그 주소를 내게 돌려줍니다. 학교 와이파이에 붙어 있다면 이때 묻는 리졸버는 대개 그 네트워크가 DHCP로 알려 준 곳입니다.
끌어서 돌리고, 휠이나 두 손가락으로 확대하세요.
두 번째 조회가 바로 끝나는 까닭
조회할 때마다 여덟 단계를 거친다면 DNS는 느려지고, 루트 서버는 쏟아지는 질문에 파묻힐 겁니다. 그래서 한 번 받은 답은 브라우저, 운영체제, 리졸버에 캐시로 남겨 둡니다. 기록마다 도메인 주인이 정한 유효 시간(TTL)이 초 단위로 붙어 있습니다. TTL 3600은 「이 답을 한 시간 동안 다시 써도 된다」는 뜻입니다. TTL을 짧게 두면 사이트를 다른 서버로 빨리 옮길 수 있고, 길게 두면 조회 횟수가 줄어듭니다. 루트 서버도 여러 곳에 퍼져 있습니다. a부터 m까지 이름이 붙은 루트 서버 13개는 2026년 10월 17일 기준 2047개의 인스턴스로 돌아가고 있었습니다.
질문 두 종류, 포트 하나
조회 한 번 안에는 성격이 다른 질문 두 가지가 섞여 있습니다. 내 컴퓨터는 리졸버에 재귀 질의를 보냅니다. 「마지막 답이나 오류를 달라」는 뜻입니다. 리졸버는 루트, TLD, 권한 있는 서버에 차례로 반복 질의를 보내고, 각 서버는 자기가 가진 것 가운데 가장 나은 답을 줍니다. 그 답은 대개 다음에 물어볼 서버를 알려 주는 정도입니다. DNS 메시지는 53번 포트로 갑니다. 질문도 답도 패킷 하나에 들어가니 보통 UDP를 쓰고, 큰 답이나 서버끼리 기록을 넘길 때는 TCP를 씁니다. RFC 7766은 TCP 지원을 제대로 된 DNS 구현이라면 빠짐없이 갖춰야 할 기능으로 정했습니다. 실제 조회도 직접 볼 수 있습니다. 대부분의 컴퓨터에서 nslookup example.com을 치면 어느 리졸버에 물었는지와 돌려받은 주소가 나옵니다.
레코드에는 주소 말고도 담기는 것이 있습니다
| 레코드 | 담는 것 | 예 |
|---|---|---|
| A | IPv4 주소 | www.example.com → 198.51.100.20 |
| AAAA | IPv6 주소 (RFC 3596) | www.example.com → 2001:db8::20 |
| CNAME | 대신 찾을 다른 이름 | shop.example.com → example.com |
| MX | 도메인의 메일 서버 | example.com → mail.example.com |
| NS | 권한 있는 네임서버 | example.com → ns1.example.com |
- 캐시가 없을 때 www.example.com을 찾습니다. 리졸버가 묻는 서버를 순서대로 놓으세요.
- www.example.com의 마지막 답을 주는 서버는 어느 것입니까?
- example.com의 권한 있는 서버
- 루트 서버
- com TLD 서버
- 웹 서버
- Cloudflare 설명에서 캐시가 없는 조회는 몇 단계입니까?
- IPv6 주소를 담는 레코드는 무엇입니까?
- AAAA
- A
- MX
- CNAME
- 어떤 레코드의 TTL이 3600입니다. 캐시는 몇 분 동안 다시 쓸 수 있습니까?
- RFC 1035에서 레이블 하나(example 같은)의 최대 길이는 몇 바이트입니까?
- 이름이 붙은 루트 서버는 몇 개입니까?
- 10초 전에 찾은 이름을 브라우저 캐시가 60초 동안 보관합니다. 지금 다시 찾으면 컴퓨터 밖으로 나가는 DNS 메시지는 몇 개입니까?
- MX 레코드는 무엇에 씁니까?
- 도메인의 메일 서버를 알려 줌
- 웹 페이지를 저장함
- IPv6 주소를 담음
- 다른 레코드의 TTL을 정함
- DNS는 무엇을 대신했습니까?
- 모든 컴퓨터에 복사한 HOSTS.TXT 파일 하나
- 전화망
- IP 주소
- 라우터
- 「DNS 서버에 웹 페이지가 저장돼 있다.」 DNS는 주소, 메일 서버, 다른 이름 같은 레코드로만 답합니다. 페이지는 DNS가 알려 준 주소의 웹 서버에서 따로 받아 옵니다. 전화번호부에 가게 전화번호는 있어도 가게 물건은 없는 것과 같습니다.
- 「사이트 주소를 바꾸면 모두가 곧바로 새 주소로 간다.」 브라우저, 운영체제, 리졸버는 TTL이 끝날 때까지 옛 답을 계속 씁니다. TTL이 3600이면 최대 한 시간 동안 옛 주소로 가는 사람이 생길 수 있습니다. 그래서 사이트를 옮기기 전에 TTL을 미리 짧게 줄여 두기도 합니다.
- 「루트 서버는 컴퓨터 13대다.」 이름이 a부터 m까지 13개이고, 운영 기관은 12곳입니다. 2026년 10월 17일에는 전 세계 2047개 인스턴스에서 답하고 있었습니다.
- 「내 컴퓨터가 루트 서버에 직접 묻는다.」 내 컴퓨터는 재귀 리졸버에 한 번 물을 뿐입니다. 루트에서 TLD 서버, 권한 있는 서버까지 다니는 일은 리졸버가 하고, 결과만 돌려줍니다.
- DNS는 이름을 주소로 바꾸며, 이름은 나무를 따라 오른쪽부터 읽습니다.
- 재귀 리졸버 → 루트 → TLD → 권한 있는 서버. 캐시가 없으면 여덟 단계입니다.
- 답은 레코드의 TTL(초) 동안 브라우저, OS, 리졸버에 캐시됩니다.
- A는 IPv4, AAAA는 IPv6, CNAME은 별칭, MX는 메일, NS는 네임서버입니다.
이 과정의 출처 (28)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then operators and papers, history sources last)
- IETF RFCs (rfc-editor.org): RFC 768 UDP (1980, 8-byte header)
- RFC 791 IPv4 (1981, 32-bit addresses, "does not provide a reliable communication facility", TTL field "measured in units of seconds" but every module must decrease it by at least one, so it is only an upper bound)
- RFC 792 ICMP (Time Exceeded)
- RFC 801 NCP/TCP transition plan (1 January 1983)
- RFC 894 Ethernet (1500-byte payload)
- RFC 1034 and RFC 1035 DNS (1987, HOSTS.TXT kept by SRI-NIC, labels up to 63 octets and names up to 255, TTL in seconds)
- RFC 1122 (127.0.0.0/8 loopback)
- RFC 1918 private addresses (10/8, 172.16/12, 192.168/16)
- RFC 2131 DHCP, RFC 3022 NAT, RFC 3596 AAAA records, RFC 3849 and RFC 5737 documentation addresses, RFC 4271 BGP-4, RFC 4291 IPv6 text form, RFC 6298 TCP retransmission timer (initial RTO 1 second)
- RFC 6335 port ranges (0-1023, 1024-49151, 49152-65535)
- RFC 7766 DNS over TCP, RFC 8200 IPv6 (128-bit addresses, Hop Limit)
- RFC 8446 TLS 1.3 (one round-trip handshake)
- RFC 9000 QUIC and RFC 9114 HTTP/3, RFC 9110 HTTP semantics (status code classes)
- RFC 9293 TCP (three-way handshake, sequence numbers)
- IANA: ip-parameters registry (recommended default TTL 64)
- IPv4 free pool depleted 3 February 2011 (NRO and ARIN announcements)
- Official documentation: MDN Web Docs "How does the Internet work?" (45 cables for 10 computers, switches, routers, MAC and IP addresses, internet and web)
- "What is a URL?", "HTTP response status codes" (developer.mozilla.org)
- Cloudflare Learning Center: "What is DNS?" (four kinds of DNS server, 8 steps of an uncached lookup, browser and OS caches, TTL)
- "What is HTTP/3?" (cloudflare.com/learning)
- Google Chrome Help, "Browse in Incognito mode" (support.google.com/chrome/answer/95464, checked 2026-10-19: Incognito limits what is saved to the device; websites and organisations that manage your network, like your school, employer or internet service provider, may be able to observe your activity)
- Operators and papers: root-servers.org (13 root name servers run by 12 organisations, 2047 instances on 2026-10-17)
- Jacobson and Karels 1988, Congestion Avoidance and Control (loss mostly congestion)
- History blocks only: UCLA Samueli School of Engineering, Internet50 (first ARPANET message "LO", UCLA to SRI, 29 October 1969, 22:30)
- historyofinformation.com and Wikipedia ARPANET (Kline)
- Spiceworks/SRI history (HOSTS.TXT kept by SRI-NIC)
- Numbers (2^32, 2^96, 45 and 6 cables, packet counts, round-trip times)
확인한 날: 2026-10-17