DNS 리졸버

From CS Wiki

DNS Resolver

DNS 리졸버는 사용자가 도메인 이름을 입력하면 해당 도메인에 대한 IP 주소를 찾아주는 클라이언트 측 구성 요소이다. DNS 리졸버는 도메인 네임 시스템(DNS)의 중요한 부분으로, 사용자가 웹사이트에 접근할 수 있도록 도메인 이름과 IP 주소 간의 매핑을 처리한다. DNS 리졸버는 사용자와 DNS 서버 사이의 중개 역할을 수행하며, 캐시된 정보를 활용하거나, 여러 DNS 서버에 질의를 보내서 해당 도메인의 IP 주소를 알아낸다.

DNS 리졸버의 작동 방식[edit | edit source]

  1. 사용자의 요청 수신: 사용자가 브라우저에 도메인 이름(예: www.example.com)을 입력하면, DNS 리졸버는 해당 도메인에 대한 IP 주소를 찾기 위해 작동을 시작한다.
  2. 캐시 확인: DNS 리졸버는 먼저 자신의 캐시(cache)에 해당 도메인에 대한 정보를 가지고 있는지 확인한다. 캐시에 해당 IP 주소가 있다면, 바로 사용자에게 IP 주소를 반환한다. 이는 질의 시간을 크게 줄일 수 있다.
  3. 재귀적 질의(Recursive Query):
    • 캐시에 정보가 없는 경우, DNS 리졸버는 재귀적 질의를 수행한다. 이 과정에서 DNS 리졸버는 여러 DNS 서버에 질의를 보내고, 단계별로 도메인에 대한 정보를 얻어 최종 IP 주소를 찾는다.
    • 이 과정은 루트 네임서버, 최상위 도메인(TLD) 서버, 권한 있는 네임서버를 순차적으로 거쳐 진행된다.
  4. IP 주소 반환: 최종적으로 IP 주소를 찾으면 DNS 리졸버는 그 정보를 캐시에 저장하고, 사용자에게 반환한다. 사용자는 이 IP 주소를 통해 해당 웹사이트에 접속할 수 있게 된다.

DNS 리졸버의 종류[edit | edit source]

  1. Stub Resolver:
    • 사용자의 장치(예: PC, 스마트폰 등)에 내장된 간단한 리졸버다.
    • 로컬 네트워크 또는 인터넷 서비스 제공자(ISP)에서 운영하는 재귀적 리졸버로 질의를 보낸다.
    • 자체적으로 재귀적 질의를 처리하지 않으며, 주로 재귀적 리졸버의 응답을 기다리는 역할을 한다.
  2. 재귀적 리졸버(Recursive Resolver):
    • ISP나 네트워크의 DNS 서버에서 운영되며, 사용자의 요청을 받아 전체 질의 과정을 처리한다.
    • 여러 DNS 서버에 질의를 보내 IP 주소를 찾아주는 역할을 한다.

주요 특징[edit | edit source]

  • 캐싱: DNS 리졸버는 반복적인 질의를 줄이기 위해, 한 번 찾은 도메인의 IP 주소를 일정 시간 동안 캐시에 저장한다. 이를 통해 동일한 도메인에 대한 요청이 들어올 때, 네트워크의 부하를 줄이고 빠르게 응답할 수 있다.
  • 재귀적 질의: DNS 리졸버는 최종 IP 주소를 얻기 위해 필요할 경우 여러 DNS 서버에 재귀적으로 질의를 보내며, 사용자를 대신해 복잡한 DNS 검색 과정을 자동으로 처리한다.
  • UDP와 TCP 사용: 일반적으로 DNS 리졸버는 UDP를 사용하여 질의를 보내지만, 데이터 크기가 클 경우 TCP를 통해 전송한다. 큰 응답을 받거나 DNSSEC 같은 보안 확장 기능을 사용할 때는 TCP로 전환된다.

같이 보기[edit | edit source]