DNS란?
Domain Name System은 전화번호부 또는 자료구조의 Map이라고 생각하면 이해하기 쉽다.
예를 들어 www.test.com을 127.0.0.1과 매핑되어 있는 데이터를 가지고 있는 것이다.
DNS는 계층적인 구조를 가지며 분산 데이터베이스 구조로 되어있다.
Domain Name Sapce
계층적인 구조를 가진다는 것은 Domain Name Space를 말한다.
www.google.com처럼 .으로 구분되어 있는 것이 계층을 의미하며 그림으로 표시하면 다음과 같다.
www.google.com에 매핑되는 아이피 주소를 찾을 때까지 Root Domain부터 하위 계층으로 네임서버에서 매핑되는 값을 찾아서 하위계층으로 내려간다.
Name Server
네임서버는 하위 계층의 네임서버에 대한 정보를 반환한다.
Root Domain DNS Server
최상위 네임서버로 DNS 요청에 대한 TLD 네임서버 정보를 반환한다.
Top-Level Domain(TLD) DNS Server
도메인 등록기관이 관리하는 네임서버로 Second-Level Domain 네임서버의 정보를 반환한다.
Second-Level Domain DNS Server
실제 도메인과 IP주소 정보가 저장되어 있는 서버이다.
도메인/ 호스팅 업체의 네임서버를 말한다
DNS Resolver(Recursor)
계측적인 DNS 구조에서 실제 도메인과 매칭되는 IP주소를 찾기 위해서는 최상위 계층에서부터 여러 번의 질의를 거쳐야 한다.
이 과정을 DNS LookUp이라고 하며 이것을 수행하는 것을 DNS Resolver 또는 Recursor라고 하는데 ISP 업체에서 제공하는 DNS 서버를 말한다.
브라우저에서 url을 입력했을 때 사용자에게 웹페이지를 보여주는 과정은 다음과 같다.
- 브라우저, OS, 라우터, ISP의 캐시를 확인하여 DNS 레코드를 확인한다.
- 캐시가 존재하지 않는다면 DNS Resolver가 Root Domain DNS Server에 TLD DNS Server에 대한 정보를 요청한다.
- 응답을 받은 DNS Resolver가 TLD DNS Server에 Second-Level Domain DNS Server에 대한 정보를 요청한다.
- 응답을 받은 DNS Resolver는 SLD(Second-Level Domain) DNS Server에 url에 매칭되는 아이피 주소를 요청한다.
- 아이피 주소를 반환받은 DNS Resolver는 IP 주소를 반환받고 브라우저로 전달한다.
- 브라우저가 특정된 아이피 주소로 요청을 보내 웹페이지를 반환받는다.
'기타' 카테고리의 다른 글
[React Native] react-native-fetch-blob 설치 에러 (0) | 2023.06.18 |
---|---|
[Git] 비밀번호 영구저장 (0) | 2022.12.30 |
[AWS] EC2에 도메인, HTTPS 적용하기 (0) | 2022.08.01 |
Github 저장소 언어 통계에서 원하는 언어만 보이게 하기 (0) | 2022.07.28 |
[npm 에러] Could not resolve dependency ... (0) | 2022.06.21 |