
한 줄 요약: DNS는 재귀 해석기가 루트→TLD→권한 있는 서버로 계층을 따라가며 이름을 IP로 바꾸고, 그 결과를 TTL 동안 캐싱하는 시스템이다.
브라우저에 blog.app.gslump.com을 입력하면, 컴퓨터는 그 이름을 IP 주소로 변환합니다. 이 변환을 DNS(Domain Name System)가 수행합니다. 인터넷의 전화번호부라고 불리는 이유입니다. 어떻게 작동하는지 풀어 설명하겠습니다.
도메인의 계층 구조: 루트, TLD, 권한 있는 서버
도메인은 역트리(뒤집힌 트리) 구조입니다. blog.app.gslump.com이라면 다음과 같이 분해됩니다:
.(루트): 최상위, 보통 생략됨com: TLD(Top-Level Domain), 최상위 도메인gslump.com: 권한 있는 서버가 관리하는 영역app.gslump.com,blog.app.gslump.com: 하위 도메인
각 계층마다 그 아래를 관리하는 권한 있는 서버(authoritative server)가 존재합니다.
재귀적 해석기(recursive resolver): 대신 찾아주는 서버
브라우저가 도메인을 전달하면, 먼저 재귀적 해석기에 조회합니다. 보통 ISP나 Google DNS(8.8.8.8), Cloudflare DNS(1.1.1.1) 같은 서버입니다. 이 해석기가 대신 계층을 따라가며 IP를 찾습니다. 사용자는 한 번만 조회하면 됩니다.
조회 과정: root에서 TLD를 거쳐 authoritative로
- 해석기가 루트 서버에 ’gslump.com을 아는가?’라고 조회합니다. 루트는 ’com TLD 담당 서버’를 알려줍니다.
- 해석기가 com TLD 서버에 ’gslump.com을 아는가?’라고 조회합니다. TLD는 ’gslump.com 권한 있는 서버’를 알려줍니다.
- 해석기가 gslump.com 권한 있는 서버에 ’blog.app.gslump.com을 아는가?’라고 조회합니다. 거기서 비로소 IP를 받습니다.
캐싱과 TTL: 한 번 찾으면 잠시 기억
매번 위 과정을 전부 거치면 느려집니다. 그래서 각 단계(브라우저, 운영체제, 해석기, 권한 있는 서버)가 결과를 캐싱합니다. TTL(Time To Live)이라는 시간 동안 기억하고, 만료되면 다시 조회합니다. TTL이 짧으면 변경이 빠르게 전파되지만 조회가 많아지고, 길면 빠르지만 전파가 느려집니다.
DNS over HTTPS/TLS: 암호화된 DNS
기존 DNS는 평문(암호화 없음)으로 동작합니다. 중간에서 누가 어떤 도메인을 조회하는지 확인할 수 있습니다. 그래서 DoH(DNS over HTTPS)와 DoT(DNS over TLS)가 등장했습니다. DNS 조회 자체를 암호화합니다. Chrome과 Firefox 등 주요 브라우저가 기본 지원을 시작했습니다.
어떻게 연결되는가
한 줄로 요약하면: 재귀적 해석기가 루트에서 TLD를 거쳐 권한 있는 서버까지 계층을 따라가며 IP를 찾고, 결과를 TTL 동안 캐싱하는 시스템입니다. ’이름에서 IP로’의 변환 하나에 전 세계 서버들이 계층적으로 협력하는 것이 DNS의 본질입니다.
출처: 위키백과: Domain Name System · RFC 1035: DNS
이미지: Pavel.satrapa, Wikimedia Commons (CC-BY-SA 2.5) — 원본