영호
[Network] DNS(Domain Name System) 본문
DNS란
- google페이지에 접속을 할 때 저희는 google server의 IP주소로 접근하는 것이 아닌 www.google.com을 이용해 구글 페이지를 받을 수 있습니다. 이처럼 사람들은 각 서비스 server의 IP주소를 외우고 있을 수 없기 때문에 외우기 쉬운 도메인 이름을 통해 접속을 하는데, 이를 가능하게 해주는 것이 DNS(Domain Name System)입니다.
- Application layer의 프로토콜 중 하나입니다.
DNS의 구조
- IP주소가 너무 많기 때문에 이를 전부 하나의 서버에서 관리하게 되면 너무 많은 부담이 생기기 때문에, 계층 구조로 분산해서 관리합니다.
- DNS는 RootNameServer, TLD, Authoritative DNS server를 통해 계층 구조를 이루고 있습니다.
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
사진 출처
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