DNS - Google.com에 접속하면 무슨 일이 일어날까?
네트워크
By Jeongmin Seo•5월 15일, 2024년
목차
DNS
Domain Name System
도메인 이름(예: google.com)을 IP 주소로 변환해주는 시스템
작동 과정
- 사용자가 브라우저에 도메인 입력
- 로컬 캐시 확인 → 없으면 DNS 서버로 쿼리
- 루트 DNS → TLD DNS → 권한 있는 DNS 서버 차례로 탐색
- 최종 IP 주소 응답
- IP 주소로 실제 서버에 접속
캐싱 단계
1. 브라우저 캐시 (Browser Cache)
- 위치: 웹 브라우저 내부 (Chrome, Firefox 등)
- 내용: 최근 방문한 도메인의 DNS 응답(IP 주소, TTL)
- TTL(유효기간): 네임서버가 제공한 TTL 값에 따라 결정 (몇 초 ~ 수 시간)
특징
- 가장 먼저 확인하는 캐시
- 같은 브라우저 탭/창에서 같은 사이트 재방문 시 매우 빠름
- 브라우저 종료 시 캐시가 일부/전체 삭제될 수 있음
예시
google.com → 142.250.206.78 (남은 TTL 200초)
2. 운영체제(OS) 캐시
- 위치: OS의 DNS Resolver
- Windows:
DNS Client Service
- macOS:
mDNSResponder
- Linux:
systemd-resolved
등
- Windows:
- 내용: 브라우저나 다른 애플리케이션이 요청했던 DNS 응답
- TTL: 네임서버 TTL을 그대로 따르지만, 일부 OS는 TTL이 지나기 전에도 캐시를 조기 삭제
특징
- 브라우저에 캐시가 없으면 OS에 질의
- 메모리 수준에서 매우 빠르게 응답 가능
- 확인/삭제 명령어
- Windows:
ipconfig /displaydns
- macOS:
sudo killall -HUP mDNSResponder
- Windows:
3. 로컬 DNS 서버 캐시 (ISP나 회사 네트워크의 Resolver)
- 위치:
- ISP의 DNS 서버
- 사내 네트워크 DNS 서버
- 퍼블릭 DNS (예: Google DNS
8.8.8.8
, Cloudflare DNS1.1.1.1
)
- 내용: 해당 DNS 서버가 과거에 처리한 DNS 요청 결과
- TTL: 네임서버 설정 TTL 값 그대로 반영
특징
- 여러 사용자가 공유하는 캐시
- 다른 사용자가 먼저 방문한 사이트는 즉시 응답 가능
- 브라우저/OS에 캐시가 없어도, 이 단계에서 대부분 요청이 종료됨
4. 권한 있는 네임서버 (Authoritative Name Server)
- 위치: 해당 도메인의 최종 DNS 정보를 보관하는 서버
(예: Cloudflare, AWS Route53, 네임닷컴 등) - 역할:
- 로컬 DNS 서버 캐시 만료 시 최종 질의 대상
- A 레코드, MX 레코드, CNAME, NS 등 실제 DNS 데이터 제공
- 특징:
- 요청이 여기까지 가면 네트워크 지연이 가장 큼
- TTL 값이 여기서 결정됨
- 데이터 변경 시 이 서버에 반영 후, TTL 만료 시 다른 캐시들이 갱신됨