DNS란 ?

브라우저가 인터넷 자원을 로드할 수 있도록 도메인 이름을 IP 주소로 변환

4개의 DNS 서버가 관련된다.

  • DNS recursor : 웹 브라우저 등의 애플리케이션을 통해 클라이언트 컴퓨터로부터 쿼리를 받도록 고안된 서버

  • Root nameserver : 호스트 이름을 IP 주소로 변환하는 첫번째 단계

  • TLD nameserver : 특정 IP 주소 검색의 다음 단계이며, 호스트 이름의 마지막 부분을 호스팅 ex) example.com에서 TLD 서버는 “com”

  • Authoritative nameserver : 요청한 레코드에 대한 액세스 권한이 있다면, 요청한 호스트의 이름의 IP 주소를, 초기 요청을 한 DNS recursor에게 돌려 보낸다.


authoritative DNS server 와 recursive DNS resolver 차이

  • recursive DNS resolver는 DNS 조회 초기에 캐싱을 하며 레코드가 없으면 시간 초과되거나 오류를 반환한다.
  • authoritative DNS server는 실제로 DNS 리소스 레코드를 보유하고 담당하는 서버이며 하위 도메인에 대한 쿼리인 경우 CNAME 레코드 저장을 담당


DNS 조회 8단계

  1. 사용자가 웹 브라우저에 ‘example.com’을 입력하면, recursive DNS resolver가 이를 수신
  2. 이어서 resolver가 DNS Root nameserver(.)를 쿼리
  3. Root nameserver가, 도메인에 대한 정보를 저장하는 TLD nameserver의 주소로 resolver에 응답
  4. resolver가 .com TLD에 요청
  5. TLD 서버가 도메인 이름 서버의 IP 주소로 응답
  6. 마지막으로, recursive DNS resolver가 도메인의 이름 서버로 쿼리를 보낸다.
  7. 이제, example.com의 IP 주소가 이름 서버에서 resolver에게 반환
  8. 이어서, dns resolver가, 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답
  9. 브라우저가 IP 주소로 HTTP 요청을 보낸다.
  10. 해당 IP의 서버가 브라우저에서 렌더링할 웹 페이지를 반환

dns-8-steps


DNS 확인자란?

DNS 조회의 첫번째 중단점이며, 최초 요청을 한 클라이언트 처리를 담당.


3가지 유형의 DNS 쿼리

  • 재귀 쿼리 : resolver가 레코드를 찾을 수 없는 경우, DNS 클라이언트는 DNS 서버가, 요청한 자원 레코드 또는 오류 메시지를 사용하여 클라이언트에 응답하도록 요구
  • 반복 쿼리 : DNS 클라이언트는 DNS 서버가 가능한 최상의 응답을 반환하도록 한다. 하위 수준의 도메인 네임스페이스에 대해 권한있는 DNS 서버에 대한 참조를 반환
  • 비재귀 쿼리 : DNS resolver 클라이언트의 쿼리를 받은 DNS 서버가 해당 레코드에 대해 권한이 있거나 캐시 내부에 해당 레코드를 갖고 있어, DNS 서버가 액세스 권한을 갖고 잇는 레코드를 쿼리할때 발생


출처

https://www.cloudflare.com/ko-kr/learning/dns/what-is-dns/