영호

[Network] DNS(Domain Name System) 본문

Network

[Network] DNS(Domain Name System)

0h0 2022. 7. 16. 17:12

DNS란

  • google페이지에 접속을 할 때 저희는 google server의 IP주소로 접근하는 것이 아닌 www.google.com을 이용해 구글 페이지를 받을 수 있습니다. 이처럼 사람들은 각 서비스 server의 IP주소를 외우고 있을 수 없기 때문에 외우기 쉬운 도메인 이름을 통해 접속을 하는데, 이를 가능하게 해주는 것이 DNS(Domain Name System)입니다.
  • Application layer의 프로토콜 중 하나입니다.

DNS의 구조

  • IP주소가 너무 많기 때문에 이를 전부 하나의 서버에서 관리하게 되면 너무 많은 부담이 생기기 때문에, 계층 구조로 분산해서 관리합니다.
  • DNS는 RootNameServer, TLD, Authoritative DNS server를 통해 계층 구조를 이루고 있습니다.

DNS구조
DNS구조

Root Name Server

  • TLD서버들의 IP주소들을 가지고 있습니다.
  • 요청에 맞는 TLD 서버의 IP주소를 반환해줍니다.
  • 사용자가 www.google.com 요청을 하게 되면. com에 해당하는 TLD서버의 주소를 반환해줍니다.

TLD(Top-level Domain) server

  • .com, .net 등과 같은 도메인 주소들의 실질적인 IP주소를 관리하는 Authoritative DNS 서버들의 IP주소들을 가지고 있습니다.
  • www.google.com 도메인 요청이 오게 되면 google.com을 관리하는 Authoritative DNS 서버의 IP주소를 반환해줍니다.

Authoritative DNS server

  • 실직적으로 사용자가 원하는 도메인 페이지의 IP주소들을 가지고 있는 서버이기 때문에 권한을 의미하는 Authoritative가 붙습니다.
  • 사용자가 원하는 www.google.com에 맞는 IP주소를 반환해줍니다.

Local DNS server

  • DNS의 계층구조에는 속하지 않습니다.
  • 사용자가 www.google.com 요청을 보낼 때마다 Root Name server부터 Authoritative DNS 서버까지 모두 탐색하며 응답을 받게 되면 비효율 적이기 때문에 도메인과 IP주소의 매핑 정보를 저장해 놓는 Proxy server입니다.
  • 만약 local DNS server에 www.google.com에 대한 매핑 정보가 있으면 다른 서버들을 탐색하지 않고 Local DNS server의 매핑 정보를 host에게 바로 반환해줍니다.
  • 도메인 server들의 내부 정보는 계속해서 바뀌기 때문에 Local DNS server에 저장해놓는 매핑 정보들은 일정 시간(TTL) 동안 저장하다가 time out이 발생하면 해당 정보를 삭제합니다.
  • 해당 서버에는 TLD서버의 정보도 가지고 있기 때문에, Root Name server로는 요청이 잘 가지 않습니다.

DNS Iterative Query

DNS_request
DNS 요청과정

 

사진 출처

https://www.omnisecu.com/tcpip/recursive-and-iterative-dns-queries.php

'Network' 카테고리의 다른 글

[Network] Transport layer(2) - TCP reliable data transfer  (0) 2022.07.22
[Network] Transport layer(1)  (0) 2022.07.20
Comments