DNS - Google.com에 접속하면 무슨 일이 일어날까?

DNS를 정말 간단하게 정리해보자
네트워크
By Jeongmin Seo5월 16일, 2024년

DNS

Domain Name System

도메인 이름(예: google.com)을 IP 주소로 변환해주는 시스템

작동 과정

  1. 사용자가 브라우저에 도메인 입력
  2. 로컬 캐시 확인 → 없으면 DNS 서버로 쿼리
  3. 루트 DNS → TLD DNS → 권한 있는 DNS 서버 차례로 탐색
  4. 최종 IP 주소 응답
  5. IP 주소로 실제 서버에 접속

캐싱 단계

1. 브라우저 캐시 (Browser Cache)

  • 위치: 웹 브라우저 내부 (Chrome, Firefox 등)
  • 내용: 최근 방문한 도메인의 DNS 응답(IP 주소, TTL)
  • TTL(유효기간): 네임서버가 제공한 TTL 값에 따라 결정 (몇 초 ~ 수 시간)

특징

  1. 가장 먼저 확인하는 캐시
  2. 같은 브라우저 탭/창에서 같은 사이트 재방문 시 매우 빠름
  3. 브라우저 종료 시 캐시가 일부/전체 삭제될 수 있음

예시
google.com → 142.250.206.78 (남은 TTL 200초)


2. 운영체제(OS) 캐시

  • 위치: OS의 DNS Resolver
    • Windows: DNS Client Service
    • macOS: mDNSResponder
    • Linux: systemd-resolved
  • 내용: 브라우저나 다른 애플리케이션이 요청했던 DNS 응답
  • TTL: 네임서버 TTL을 그대로 따르지만, 일부 OS는 TTL이 지나기 전에도 캐시를 조기 삭제

특징

  1. 브라우저에 캐시가 없으면 OS에 질의
  2. 메모리 수준에서 매우 빠르게 응답 가능
  3. 확인/삭제 명령어
    • Windows: ipconfig /displaydns
    • macOS: sudo killall -HUP mDNSResponder

3. 로컬 DNS 서버 캐시 (ISP나 회사 네트워크의 Resolver)

  • 위치:
    • ISP의 DNS 서버
    • 사내 네트워크 DNS 서버
    • 퍼블릭 DNS (예: Google DNS 8.8.8.8, Cloudflare DNS 1.1.1.1)
  • 내용: 해당 DNS 서버가 과거에 처리한 DNS 요청 결과
  • TTL: 네임서버 설정 TTL 값 그대로 반영

특징

  1. 여러 사용자가 공유하는 캐시
  2. 다른 사용자가 먼저 방문한 사이트는 즉시 응답 가능
  3. 브라우저/OS에 캐시가 없어도, 이 단계에서 대부분 요청이 종료됨

4. 권한 있는 네임서버 (Authoritative Name Server)

  • 위치: 해당 도메인의 최종 DNS 정보를 보관하는 서버
    (예: Cloudflare, AWS Route53, 네임닷컴 등)
  • 역할:
    • 로컬 DNS 서버 캐시 만료 시 최종 질의 대상
    • A 레코드, MX 레코드, CNAME, NS 등 실제 DNS 데이터 제공
  • 특징:
    1. 요청이 여기까지 가면 네트워크 지연이 가장 큼
    2. TTL 값이 여기서 결정됨
    3. 데이터 변경 시 이 서버에 반영 후, TTL 만료 시 다른 캐시들이 갱신됨