⚡️DNS란?
흔히 예를들어 구글을 검색창에 입력할 때 대부분 google.com 처럼 도메인 주소를 검색합니다.
그런데 표면적으로는 도메인 주소만으로 구글에 접속하는 것처럼 보이지만
모든 웹사이트의 호스팅 서버는 IP 주소가 할당되어 있고
이 실질적인 주소인 IP 주소로 접속하기 위해 DNS서버를 거치며 도메인 주소로 IP 주소를 얻어 접속하게 됩니다.
그러나 도메인만으로 접속할 수 있는 것은 아니고 142.250.196.142를 주소창에 넣어 검색 시
구글로 이동하는 것처럼 IP 주소로도 웹 사이트에 방문할 수 있고,
도메인을 알고 있다고 해도 최종적으로는 IP 주소를 알고 있어야 접속할 수 있습니다.
즉, DNS(네임서버)는 도메인 주소와 IP 주소 간 이어주는 하나의 시스템입니다.
📌 URL과 도메인의 차이점
흔히 웹 주소를 URL이라고 표현합니다.
이 URL과 도메인의 차이점은 다음과 같습니다.
제 블로그 URL인 https://lasbe.tistory.com/107를 예로 들면
- Protocol : https
- SubDomain : www
- Doamin : lasbe.tistory.com
- Directories : 107
이렇게 분리할 수 있습니다.
⚡️DNS의 구조
DNS의 역트리 구조는 정점인 루트를 포함해 4단계로 나뉩니다.
📌 루트(Root)
DNS 트리 구조의 정점에 있는 서버로서 최상위도메인(TLD) 서버의 주소를 저장하고 안내하는 역할을 합니다.
📌 1단계 도메인 / 최상위도메인(Top Level Domain)
1단계 도메인인 최상위도메인은
국가를 나타내는 국가 코드 도메인(country code Top Level Domain)과
등록인의 목적에 따라 사용되는 일반 도메인(generic Top Level Domain)으로 나뉩니다.
📌 2단계 도메인 / Authoritative DNS
실제 도메인의 IP 주소가 기록되는 서버이며 일반적으로 호스팅 업체의 네임서버를 뜻합니다.
📌 3단계 도메인 / Recursive DNS
클라이언트의 요청을 받고 해당 도메인의 정보를 캐시된 데이터로 응답하거나
캐시된 데이터가 없을 경우 위의 네임서버에 요청을 전달하는 역할을 합니다.
일반적으로 통신사에서 제공하는 ISP(Internet Service Provider) DNS 서버가 있습니다.
⚡️DNS 동작 과정
위와 같이 google.com을 검색했을 때를 가정하여 설명하겠습니다.
- 주소창에 google.com을 검색합니다.
- 브라우저가 이전 기록을 토대로 구글을 방문했었는지 확인합니다.
- 브라우저 캐시 확인
- OS 캐시 확인
- 라우터 캐시 확인
- ISP 캐시 확인 - 요청한 주소가 캐시에 없을 경우 ISP DNS가 Root 서버에 어디로 가야하는지 요청합니다.
- Root 서버는 .com 도메인을 확인하고 com 도메인을 관리하는 TLD를 안내하고
ISP 서버는 com을 관리하는 서버에게 경로를 요청합니다. - com 서버는 google.com을 관리하는 Authoritative DNS 서버를 알려주고
ISP 서버는 google.com을 관리하는 서버에 요청합니다. - google.com을 관리하는 서버는 IP 주소가 142.250.196.142라는 것을 알려줍니다.
- IP 주소를 최종적으로 확인한 ISP 서버는 해당 IP 주소를 캐싱하고 브라우저에 전달합니다
3번부터 6번까지의 검색(Root -> TLD -> Authoritative DNS)을 Recursive Search라고 부르며,
IP 주소를 찾을 때까지 반복하던가 에러가 발생할 때까지 반복합니다.
복잡해보이지만 결국엔
방문했는지 확인 -> 방문 기록 없으면 Root -> TLD -> Authoritative DNS
순으로 요청 응답을 반복하는 단순한 과정입니다.
'CS' 카테고리의 다른 글
전송계층의 프로토콜 TCP vs UDP (2) | 2022.07.07 |
---|---|
HTTP의 구조 (0) | 2022.03.05 |
SSH(Secure Shell Protocol)에 대해 (0) | 2022.03.02 |
기본 자료구조에 대해 (0) | 2022.02.20 |
댓글