Network Basis

[Network] DNS란?

DevPing9_ 2021. 11. 3. 15:09

# DNS(Domain Name System)

  • 인터넷 전화번호부라 생각하면 된다.
  • 웹브라우저는 IP(인터넷 프로토콜)주소를 통해 상호작용 하는데, 전화번호부에 [홍길동, 010-xxx-xxxx] 라 기입되어 있듯이, DNS에도 [www.navery.com, 192.xxx.xxx.xxx] 로 기입되어있다.
  • 이러한 연관관계를 매칭시켜 도메인이름(www.navery.com)를 IP주소(192.xxx....) 로 변환하여 브라우저가 인터넷 리소스에 접근한다.

# 웹 페이지 로드와 관련된 4개의 DNS 서버 (DNS 작동원리)

1. DNS recursor

  • DNS 리커서는 도서관의 어딘가에서 특정한 책을 찾아달라고 요청받는 사서로 생각할 수 있다. DNS 리커서는 웹 브라우저 등의 애플리케이션을 통해 클라이언트 컴퓨터로부터 쿼리를 받도록 고안된 서버이다. 일반적으로, 리커서는 클라이언트의 DNS 쿼리를 충족시키기 위해 추가 요청을 수행한다.

2. Root nameserver

  • 루트 서버는 사람이 읽을 수 있는 호스트 이름을 IP 주소로 변환하는 첫 번째 단계이다. 도서관에서 책장 위치를 가리키는 색인으로 생각할 수 있으며, 일반적으로 다른 더욱 특정한 위치에 대한 참조로 사용된다.

3. TLD nameserver

  • TLD(최상위 도메인) 서버는 도서관의 특정 책장으로 생각할 수 있다. 이 이름 서버는 특정 IP 주소 검색의 다음 단계이며 호스트 이름의 마지막 부분을 호스팅한다. (navery.com에서 TLD 서버는 “com”이다)

4. Authoritative nameserver

  • 최종 이름 서버로서, 책장에 있는 사전처럼 특정 이름을 해당 정의로 변환한다.이 서버는 이름 서버 쿼리의 종착점이다. 이 서버가 요청한 레코드에 대한 액세스 권한이 있다면, 요청한 호스트 이름의 IP 주소를, 초기 요청을 한 DNS 리커서(사서)에게 돌려 보낸다.

# DNS 조회의 8단계

  1. 사용자가 웹 브라우저에 'example.com'을 입력하면, 쿼리가 인터넷으로 이동하고 DNS 재귀 확인자(resolver)가 이를 수신.
  2. resolver가 DNS 루트 이름 서버(.)를 쿼리.
  3. 루트 서버가, 도메인에 대한 정보를 저장하는 최상위 도메인(TLD) DNS 서버(예: .com 또는 .net)의 주소로 확인자에 응답. example.com을 검색할 경우의 요청은 .com TLD를 가리킴.
  4. 이제, 확인자가 .com TLD에 요청.
  5. 이어서, TLD 서버가 도메인 이름 서버(example.com)의 IP 주소로 응답.
  6. 마지막으로, 재귀 확인자가 도메인의 이름 서버로 쿼리.
  7. 이제, example.com의 IP 주소가 이름 서버에서 확인자에게 반환됨.
  8. 이어서, DNS 확인자가, 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답.  - 8단계
  9. 브라우저가 IP 주소로 HTTP 요청을 보냄.
  10. 해당 IP의 서버가 브라우저에서 렌더링할 웹 페이지를 반환


# Reference

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

728x90