LETO

DNS

DNS는 도메인 이름을 IP 주소로 바꿔 주는 전 세계 분산 데이터베이스이자 질의 규칙입니다. 웹, 메일, API 연결이 모두 DNS 질의에서 시작됩니다.

작성

DNS(Domain Name System)는 사람이 읽는 도메인 이름(example.co.kr)을 컴퓨터가 쓰는 IP 주소(203.0.113.10)로 바꿔 주는 전 세계 분산 데이터베이스이자 그 질의 규칙입니다. 브라우저 접속, 메일 전송, API 호출은 모두 DNS 질의로 시작하므로, DNS가 잘못되면 서버가 정상이어도 서비스는 멈춥니다. 회사 도메인 관리에서 DNS 설정은 등록·갱신만큼 중요한 항목입니다.

두 종류의 서버

구분재귀 리졸버 (recursive resolver)권한 네임서버 (authoritative nameserver)
역할사용자를 대신해 답을 찾아다니고 캐시특정 도메인의 원본 레코드를 보관하고 답변
누가 운영통신사, 회사 네트워크, 8.8.8.8 같은 공개 리졸버DNS 호스팅 업체 또는 도메인 소유자
도메인 소유자가 설정하지 않음레코드를 여기에 입력

도메인 소유자가 관리하는 것은 권한 네임서버 쪽입니다. 리졸버는 사용자 환경마다 다르며 소유자가 손댈 수 없습니다.

질의 흐름 4단계

리졸버가 www.example.co.kr의 주소를 처음 찾을 때 거치는 순서입니다.

  1. 루트 서버에 질의

    ".kr은 누가 담당하는가"를 묻습니다. 루트 서버는 .kr 레지스트리의 네임서버를 알려 줍니다.

  2. 레지스트리(TLD) 서버에 질의

    ".kr 서버에 example.co.kr의 네임서버가 어디인가"를 묻습니다. 레지스트리는 등록 시 지정한 네임서버(위임 정보)를 알려 줍니다.

  3. 권한 네임서버에 질의

    도메인의 네임서버에 "www.example.co.kr의 A 레코드"를 묻습니다. 여기서 실제 IP 주소가 나옵니다.

  4. 캐시 후 응답

    리졸버는 받은 답을 TTL 시간만큼 캐시에 두고 사용자에게 돌려줍니다. 그동안 같은 질의는 1~3단계를 건너뜁니다.

캐시와 TTL

리졸버가 답을 캐시하는 시간을 TTL이라고 하며 초 단위로 레코드마다 정합니다. 캐시 덕분에 매번 루트부터 질의하지 않아 빠르지만, 반대로 레코드를 바꿔도 TTL이 끝날 때까지 이전 값을 보는 사용자가 있습니다. 이 현상이 흔히 말하는 DNS 전파입니다.

실무에서 알아둘 것

  • 자주 쓰는 레코드는 A(IPv4), AAAA(IPv6), CNAME(별칭), MX(메일), TXT(인증·SPF), NS(네임서버)입니다. 각 레코드의 용도와 작성법은 DNS 레코드 종류에서 다룹니다.
  • 웹 빌더, 메일 서비스, 인증서 발급 등 외부 서비스 연결은 대부분 레코드 몇 줄을 추가하는 일입니다. 외부 서비스 연결 가이드를 참고하세요.
  • DNS 응답 위조를 막는 서명 체계로 DNSSEC이 있습니다. 레토는 지원 확장자에 한해 DNSSEC 설정을 제공합니다.
  • 네임서버 자체를 바꾸는 절차는 네임서버 변경 방법에 있습니다.

자주 묻는 질문

다릅니다. DNS는 이름을 주소로 바꾸는 체계 전체를 가리키고, 네임서버는 그 체계 안에서 특정 도메인의 레코드를 보관하고 답하는 서버입니다. 도메인을 사면 DNS를 쓰기 위해 네임서버를 지정해야 합니다.

등록과 DNS 호스팅은 별개입니다. 레토 대시보드에서 네임서버를 지정하면, 실제 레코드는 그 네임서버를 운영하는 곳에서 관리합니다. 레토도 기본 네임서버(selene.ns.leto.kr, nyx.ns.leto.kr)를 제공하므로, 이를 지정하면 레코드까지 대시보드에서 관리할 수 있습니다.

리졸버가 이전 응답을 TTL 시간 동안 캐시하기 때문입니다. TTL이 3600초라면 최대 1시간, 86400초라면 최대 하루가 지나야 모든 사용자가 새 값을 봅니다. 변경 전에 TTL을 낮춰 두면 이 시간이 줄어듭니다.

관련 가이드