도메인을 설정하고 나서 “왜 아직 안 보여요?”라는 질문이 가장 흔합니다. DNS가 어떻게 동작하고 전파에 왜 시간이 걸리는지 알면, 기다리는 시간이 답답하지 않고 문제 진단도 빨라집니다.
브라우저에 example.com을 입력하면 일어나는 일
핵심 단계는 다섯 가지입니다.
① 브라우저: "example.com이 뭐지?"
② 로컬 DNS(ISP/8.8.8.8): 캐시 확인 → 없으면 외부 조회
③ 루트 → TLD → 권한 DNS 순차 조회로 IP를 알아냄
④ 로컬 DNS가 브라우저에 IP 반환 (캐시)
⑤ 브라우저가 그 IP로 HTTP/HTTPS 요청
이 모든 게 평소엔 0.1초 안에 끝나서 우리가 의식하지 못할 뿐입니다.
DNS의 4계층 구조
1) 루트 DNS (.)
- 13개 서버군 (실제로는 anycast로 전 세계 수백 노드)
- “어디서 .com을 찾을지” 알려줌
- 운영: ICANN 산하 + 협력 기관
2) TLD DNS (.com, .net, .kr 등)
- 해당 TLD의 권한 DNS 위치를 알려줌
- 운영: 레지스트리 (예: .com은 VeriSign)
3) 권한 DNS (Authoritative)
- 도메인 소유자가 지정한 네임서버
- 실제 A/AAAA/MX/TXT 레코드 보유
- 운영: 도메인 등록업체 또는 별도 DNS 제공자(Cloudflare, Route53 등)
4) 재귀 DNS (Recursor)
- ISP가 운영하거나 공개 DNS(8.8.8.8, 1.1.1.1)
- 위 3계층을 돌며 답을 찾고 캐시
- 사용자에게 가장 가깝게 배치됨
DNS 레코드의 종류
| 타입 | 역할 | 예시 값 |
|---|---|---|
| A | 도메인 → IPv4 | 203.0.113.10 |
| AAAA | 도메인 → IPv6 | 2001:db8::10 |
| CNAME | 다른 도메인의 별명 | www → example.com |
| MX | 메일 서버 위치 | mail.example.com (우선순위 10) |
| TXT | 임의 텍스트 (SPF·DKIM·인증) | “v=spf1 ip4:…” |
| NS | 권한 네임서버 지정 | ns1.example.com |
| CAA | SSL 인증서 발급 제한 | “letsencrypt.org” |
| SRV | 서비스 위치 | _sip._tcp 등 |
| PTR | IP → 도메인 (역방향) | mail.example.com |
가장 자주 다루는 것은 A·CNAME·MX·TXT 네 가지입니다.
TTL이란
각 DNS 레코드에는 TTL (Time-To-Live) 이 있습니다. “이 응답을 몇 초 동안 캐시해도 되는가”를 의미합니다.
- TTL 60 (1분) → 캐시 짧음, 변경이 빨리 반영됨, 권한 DNS 부하 큼
- TTL 3600 (1시간) → 균형, 일반적
- TTL 86400 (24시간) → 캐시 오래, 변경 반영 느림
중요: 큰 변경을 앞두고 있다면 변경 며칠 전에 TTL을 짧게 낮춰두는 것이 좋습니다. 변경 시점에는 이미 짧은 TTL이 전 세계에 캐시되어, 변경 반영이 빨라집니다.
변경 5일 전: TTL 86400 → 3600으로 낮춤 (구 TTL이 남아 있으니 다음 갱신부터 적용)
변경 1일 전: TTL 3600 → 300으로 낮춤
변경 당일: 레코드 변경 (300초 내 반영)
변경 후 1일: TTL 다시 3600으로 복귀
“DNS 전파”가 시간이 걸리는 진짜 이유
DNS는 전 세계가 한 번에 갱신되는 시스템이 아닙니다. 각 재귀 DNS는 이전 응답을 TTL 만큼 캐시해 두고, 만료될 때까지 갱신하지 않습니다.
예시 — 변경을 12:00에 했고 TTL이 3600(1시간)이라면:
- 캐시 만료가 11:30이었던 서버 → 12:30에 갱신 (30분 지연)
- 캐시 만료가 11:55이었던 서버 → 12:55에 갱신 (55분 지연)
- 캐시 만료가 12:01이었던 서버 → 13:01에 갱신 (1시간 지연)
결국 TTL만큼은 무조건 기다려야 합니다. 게다가 일부 ISP·기기는 TTL을 무시하고 더 오래 캐시하기도 합니다.
현실적 기대치:
| TTL | 80% 전파 | 99% 전파 |
|---|---|---|
| 60s | 5분 | 30분 |
| 300s | 30분 | 2시간 |
| 3600s | 2시간 | 6~24시간 |
| 86400s | 12시간 | 24~48시간 |
흔한 트러블슈팅
Q. dig은 새 IP를 보여주는데 브라우저는 옛 IP로 가요
- 운영체제 또는 브라우저 캐시 잔여 가능성
- 윈도우:
ipconfig /flushdns - macOS:
sudo dscacheutil -flushcache - 크롬:
chrome://net-internals/#dns→ Clear host cache - 모바일: 와이파이 껐다 켜기
Q. 일부 사람만 보이고 일부는 안 보입니다
- ISP별 DNS 캐시 차이 — TTL 만료까지 기다리거나
- 사용자가 1.1.1.1 / 8.8.8.8 같은 공개 DNS로 전환하면 바로 보일 수 있음
Q. 변경했는데 24시간 이상 그대로입니다
- 권한 DNS에 실제로 변경됐는지 확인 (NS 직접 dig)
- 도메인이 만료되어 등록업체의 주차 페이지로 돌아갔을 가능성
- DNSSEC 설정에 문제가 있을 수 있음
# 권한 NS 직접 조회 (캐시 우회)
dig @ns1.cloudflare.com example.com A
DNS 변경 작업 체크리스트
이사·서버 교체 등 큰 DNS 변경 시:
- 며칠 전 TTL을 300 이하로 낮춤
- 변경 직전 백업 (현재 레코드 스크린샷 / 텍스트 저장)
- 변경 후 권한 DNS에서 직접 확인 (
dig @ns1) - 외부 모니터링 도구로 전파 추적 (whatsmydns.net)
- 48시간 후 TTL 원상복구
- 옛 서버는 최소 7일 유지 (옛 캐시 따라간 사용자 위해)
DNS 관리 도구 추천
도메인 등록업체 기본 DNS는 기능이 단순한 경우가 많습니다. 본격적으로 운영한다면 별도 DNS 서비스를 권합니다.
| 서비스 | 특징 |
|---|---|
| Cloudflare DNS | 무료, 빠름, DNSSEC 자동, 변경 즉시 |
| AWS Route 53 | 강력한 라우팅 정책, 헬스체크 |
| Google Cloud DNS | 안정적, Google 인프라 |
| 가비아 DNS | 한국어, 한국 등록업체 통합 |
| BIND 자체 운영 | 무료지만 운영 부담 |
이 중 가장 가성비·성능 모두 좋은 게 Cloudflare입니다. 무료 플랜만으로도 대부분 충분합니다.
자주 묻는 질문
Q. 도메인을 옮겨도 DNS 레코드는 따라오나요?
- 자동으로는 안 옵니다. 새 등록업체에서 다시 입력해야 합니다.
Q. 네임서버를 바꾸면 즉시 적용되나요?
- TLD에서 새 NS로 안내하기까지 보통 1~2시간, 완전 전파는 24~48시간.
Q. CNAME과 ALIAS는 뭐가 다른가요?
- CNAME은 표준이지만 루트 도메인(@)에는 사용 불가
- ALIAS/ANAME은 일부 제공자의 확장으로, 루트에도 사용 가능
Q. DNS over HTTPS(DoH) / DNS over TLS(DoT)는 뭔가요?
- DNS 쿼리 자체를 암호화해 도청·변조를 막는 방식. 브라우저·OS에서 점점 기본화되는 추세입니다.
마무리
DNS는 한 번 이해해 두면 호스팅·이메일·SSL 등 거의 모든 인터넷 작업에서 기준이 됩니다. TTL을 미리 낮추기·권한 DNS를 직접 확인하기·변경 후 모니터링 세 가지만 기억하면 큰 사고는 피할 수 있습니다.
TCP-80.NET의 호스팅 서비스는 DNS 설정 가이드를 텔레그램 @tcp80net으로 한국어 안내합니다. 도메인 신청은 일본 도메인 등록 페이지에서 가능합니다.