본문으로 건너뛰기
ipaddress.si
DNS1분 분량

DNS는 어떻게 작동할까?

이름을 입력해서 주소를 얻기까지. 리졸버, 루트 서버, TLD, 캐시, TTL을 쉬운 말로 설명합니다.

글: ipaddress.si

컴퓨터는 IP 주소로 연결하고, 사람은 이름을 기억합니다. 도메인 네임 시스템(DNS)이 그 사이를 번역합니다. 초당 수십억 번, 대부분은 캐시에서, 몇 밀리초 만에 이루어집니다.

등장인물

  • 스텁 리졸버: 운영체제나 브라우저에 들어 있는 작은 DNS 클라이언트.
  • 재귀 리졸버: 답을 찾는 일을 맡는 서버. 통신사가 운영하거나 1.1.1.1, 8.8.8.8 같은 공개 서비스가 있습니다.
  • 루트 서버: 각 최상위 도메인을 어디에서 찾을지 압니다.
  • TLD 서버: .com, .kr, .si 등을 맡으며, 각 도메인을 담당하는 네임서버를 압니다.
  • 권한 있는 네임서버: 도메인의 실제 레코드를 가지고 있습니다.

조회 과정, 단계별로

www.example.com을 열었는데 캐시된 것이 없을 때:

  1. 기기가 재귀 리졸버에 www.example.com의 A(IPv4)와 AAAA(IPv6) 레코드를 묻습니다.
  2. 리졸버가 루트 서버에 묻고, .com 서버 목록을 받습니다.
  3. .com 서버에 묻고, example.com의 네임서버(NS 레코드)를 받습니다.
  4. example.com의 네임서버 중 하나에 묻고, 주소를 받습니다.
  5. 리졸버가 답을 여러분에게 돌려주고 캐시에 저장합니다.

캐시와 TTL

모든 레코드에는 초 단위의 TTL(유효 시간)이 있습니다. 리졸버는 그 시간 동안 답을 보관한 뒤 다시 묻습니다. DNS가 빠른 이유이자, 변경이 시간이 걸리는 이유입니다. TTL이 1시간인 레코드는 변경 후에도 최대 1시간 동안 캐시에서 제공될 수 있습니다. 계획된 이전 전에는 TTL을 낮춰 두세요.

주소만이 아닙니다

DNS는 세상에 이런 것도 알려 줍니다.

  • 메일을 어디로 배달할지(MX),
  • 어떤 이름이 별칭인지(CNAME),
  • 어떤 서버가 메일을 보낼 수 있고 어떤 인증 기관이 인증서를 발급할 수 있는지(SPF·DMARC용 TXT, CAA),
  • 어떤 서버가 권한을 가지는지(NS, SOA),
  • 그리고 거꾸로, IP 주소가 어떤 이름에 해당하는지(PTR).

각각 짧은 가이드가 있습니다: A, AAAA, CNAME, MX, TXT, NS.

보안: DNSSEC와 암호화된 DNS

DNSSEC은 DNS에 게시된 서명을 이용해, 리졸버가 답이 정말로 도메인 소유자에게서 왔는지 확인할 수 있게 합니다. DNS over HTTPS와 DNS over TLS는 여러분과 리졸버 사이의 연결을 암호화해 같은 네트워크의 다른 사람이 질의를 읽거나 바꾸지 못하게 합니다. 서로 다른 문제를 해결하며, 함께 쓰면 좋습니다.

실시간으로 보기

DNS 조회는 흔히 쓰는 모든 레코드 유형을 실시간으로 조회하고 TTL과 DNSSEC 상태를 보여 줍니다. cloudflare.com으로 시험해 보세요.

  • 프라이버시1분 분량

    CGNAT(통신사급 NAT)란?

    통신사가 공인 IPv4 주소 하나를 수백 명의 가입자와 나눠 쓰게 할 수 있는 이유, 확인하는 방법, 그리고 그로 인해 안 되는 것들.

  • IP 주소1분 분량

    IP 주소는 왜 바뀔까?

    유동 할당, 공유기 재시작, 모바일 네트워크, IPv6 개인정보 보호 주소까지. IP가 일정하지 않은 일상적인 이유.

  • IP 주소1분 분량

    공인 IP 주소와 사설 IP 주소

    노트북 주소는 192.168로 시작하는데 웹사이트에는 다른 주소가 보이는 이유와, 그것이 연결과 개인정보에 갖는 의미.