DNS 동작 원리: 인터넷의 전화번호부 이해하기

DNS 동작 원리: 인터넷의 전화번호부 이해하기

DNS네트워크인터넷

DNS 동작 원리: 인터넷의 전화번호부 이해하기

웹 브라우저에 www.google.com을 입력하면 어떤 일이 벌어질까요? 사람은 도메인 이름을 사용하지만, 컴퓨터는 142.250.196.110 같은 IP 주소로 통신합니다. 이 둘을 연결해 주는 시스템이 바로 DNS(Domain Name System) 입니다. DNS는 인터넷의 전화번호부라 불리며, 하루에 수조 건의 쿼리를 처리하는 인터넷 인프라의 핵심입니다.

이 글에서는 DNS의 계층 구조, 쿼리 방식, 캐싱, 보안 프로토콜까지 체계적으로 살펴봅니다.

DNS 계층 구조

DNS는 트리(tree) 형태의 분산 계층 구조로 설계되어 있습니다. 단일 서버에 모든 레코드를 보관하는 것이 아니라, 역할에 따라 여러 단계로 분리되어 있습니다.

1. 루트 네임서버 (Root Name Server)

DNS 계층의 최상위에 위치합니다. 전 세계에 13개의 루트 서버 클러스터(A~M)가 있으며, Anycast를 통해 수백 개의 물리 서버로 분산 운영됩니다. 루트 서버는 직접 도메인 정보를 제공하지 않고, 적절한 TLD 서버의 위치를 안내합니다.

. (root)
├── com.
├── kr.
├── org.
├── net.
└── ...

2. TLD 네임서버 (Top-Level Domain)

루트 바로 아래 단계입니다. .com, .net 같은 일반 최상위 도메인(gTLD)과 .kr, .jp 같은 국가코드 최상위 도메인(ccTLD)으로 나뉩니다.

TLD 서버는 해당 도메인의 권한 네임서버(Authoritative NS) 주소를 알려줍니다.

3. 권한 네임서버 (Authoritative Name Server)

실제 DNS 레코드를 보유한 서버입니다. 도메인 관리자가 설정한 A, AAAA, MX, CNAME, TXT 등의 레코드를 저장하고 응답합니다. 예를 들어 utilo.kr의 권한 네임서버는 이 도메인에 대한 모든 DNS 레코드를 관리합니다.

레코드 타입용도예시
AIPv4 주소 매핑93.184.216.34
AAAAIPv6 주소 매핑2606:2800:220:1::
MX메일 서버 지정mail.example.com
CNAME별칭(Alias)www → example.com
TXT텍스트 정보 (SPF, DKIM 등)v=spf1 include:...
NS네임서버 지정ns1.example.com

재귀 쿼리 vs 반복 쿼리

DNS 쿼리에는 두 가지 방식이 있습니다.

재귀 쿼리 (Recursive Query)

클라이언트가 재귀 리졸버(Recursive Resolver) 에 질의하면, 리졸버가 최종 답을 찾을 때까지 다른 서버들을 순차적으로 조회합니다. 일반적으로 ISP나 공용 DNS 서비스(Google, Cloudflare)가 재귀 리졸버 역할을 합니다.

전체 조회 흐름:

  1. 사용자가 www.example.com 입력
  2. OS의 스텁 리졸버가 재귀 리졸버에 쿼리 전송
  3. 재귀 리졸버 → 루트 서버 질의 → .com TLD 서버 주소 획득
  4. 재귀 리졸버 → TLD 서버 질의 → example.com 권한 NS 주소 획득
  5. 재귀 리졸버 → 권한 NS 질의 → 최종 IP 주소 획득
  6. 재귀 리졸버가 사용자에게 결과 반환

반복 쿼리 (Iterative Query)

재귀 리졸버가 각 단계의 서버에 보내는 쿼리 방식입니다. 서버는 자신이 알고 있는 최선의 정보(referral)를 반환하고, 리졸버가 다음 서버에 다시 질의합니다. 루트, TLD, 권한 서버 간의 통신이 이 방식으로 이루어집니다.

DNS 캐시와 전파

TTL과 캐시

모든 DNS 레코드에는 TTL(Time To Live) 값이 설정되어 있습니다. 이는 해당 레코드를 캐시에 보관할 수 있는 시간(초)을 의미합니다.

example.com.   3600   IN   A   93.184.216.34
                ↑ TTL = 3600초 (1시간)

캐시는 여러 단계에서 동작합니다:

DNS 전파 (Propagation)

DNS 레코드를 변경하면 전 세계 캐시에 반영되기까지 시간이 걸립니다. 이를 DNS 전파라고 합니다. TTL이 86400(24시간)이었던 레코드를 변경하면, 최대 24시간까지 이전 값이 유지될 수 있습니다.

전파 시간을 줄이는 팁:

주요 공용 DNS 서비스

직접 DNS 서버를 운영하지 않는다면, 공용 DNS 서비스를 사용할 수 있습니다. 각각 속도, 개인정보 보호, 필터링 기능이 다릅니다.

서비스PrimarySecondary특징
Google Public DNS8.8.8.88.8.4.4빠른 속도, 글로벌 Anycast
Cloudflare1.1.1.11.0.0.1개인정보 중시, 가장 빠른 응답
Quad99.9.9.9149.112.112.112악성 도메인 자동 차단
OpenDNS208.67.222.222208.67.220.220콘텐츠 필터링, 가족 보호

국내 사용자의 경우 KT(168.126.63.1), SKT(210.220.163.82) 등 ISP DNS도 사용할 수 있지만, 속도와 프라이버시 측면에서 Cloudflare나 Google DNS를 권장합니다.

DNS over HTTPS (DoH) / DNS over TLS (DoT)

전통적인 DNS 쿼리는 UDP 53번 포트를 사용하며 평문으로 전송됩니다. 이는 네트워크상의 누구나 사용자가 어떤 사이트를 방문하는지 엿볼 수 있다는 뜻입니다.

DNS over HTTPS (DoH)

HTTPS 프로토콜(443 포트)을 통해 DNS 쿼리를 암호화합니다. 일반 웹 트래픽과 구분이 어려워 검열 우회에도 유용합니다.

https://cloudflare-dns.com/dns-query?name=example.com&type=A

DNS over TLS (DoT)

TLS 암호화를 사용하며, 전용 포트(853)를 사용합니다.

두 프로토콜 모두 개인정보를 보호하고 중간자 공격을 방지하는 데 효과적입니다. 최신 운영체제와 브라우저는 대부분 DoH를 기본 지원하므로, 설정을 확인해 활성화하는 것을 권장합니다.

DNSSEC 기초

DNSSEC(DNS Security Extensions) 은 DNS 응답의 무결성과 출처를 검증하는 보안 확장입니다. DNS 자체가 암호화되지 않는 문제와 별개로, 응답이 변조되지 않았음을 보장합니다.

동작 방식

  1. 도메인 소유자가 DNS 레코드에 디지털 서명(RRSIG) 을 추가
  2. 리졸버가 서명을 검증하여 응답이 진본인지 확인
  3. 신뢰 사슬(Chain of Trust)이 루트 서버까지 이어짐

주요 레코드 타입

DNSSEC은 DNS 캐시 포이즈닝(Cache Poisoning) 같은 공격을 방지하는 데 필수적이지만, 아직 모든 도메인이 적용하고 있지는 않습니다. .kr 도메인은 KISA를 통해 DNSSEC을 지원합니다.

DNS 문제 해결

DNS 관련 문제가 발생했을 때 유용한 진단 명령어들입니다:

# 기본 DNS 조회
nslookup example.com

# 상세 DNS 조회 (추천)
dig example.com A +short

# 특정 DNS 서버로 조회
dig @8.8.8.8 example.com

# DNS 추적 (전체 경로 확인)
dig +trace example.com

# 역방향 DNS 조회
dig -x 8.8.8.8

# Windows에서 DNS 캐시 초기화
ipconfig /flushdns

# macOS에서 DNS 캐시 초기화
sudo dscacheutil -flushcache

더 간편하게 확인하고 싶다면, ip.utilo.kr의 DNS 조회 도구를 사용해 보세요. 브라우저에서 바로 다양한 DNS 레코드를 조회할 수 있습니다.

마무리

DNS는 인터넷이 작동하는 데 있어 가장 기본적이면서도 중요한 시스템입니다. 계층적 분산 구조 덕분에 수십억 개의 도메인을 효율적으로 관리하고 있으며, DoH/DoT, DNSSEC 같은 보안 기술이 지속적으로 발전하고 있습니다.

DNS에 대해 더 깊이 알고 싶다면, DNS 조회 방법 가이드도 함께 읽어보시기 바랍니다. 직접 도메인의 DNS 레코드를 확인하고 싶다면, 아래 도구를 활용해 보세요.

DNS 조회 도구 바로가기 →

Read in English →
AD

검증된 만남, 다이아매치

학교/직장 인증 기반 프리미엄 소개팅

무료 시작하기

관련 글