DNS (Domain Name System) 란?
DNS는 이처럼 상위 기관과 하위 기관과 같은 계층 구조를 가지는 분산 데이터베이스 구조를 가진다.
DNS 구성 요소
- 도메인 네임 스페이스 (Domain Name Space)
- 네임 서버 (Name Server) = 권한 있는 DNS 서버
- 리졸버 (Resolver) = Recursive DNS Server = Local Server (of ISP) = Recursor = 권한 없는 DNS 서버
"이 도메인 이름은 이 IP 주소다" 라는 '텍스트'를 저장하는 데이터베이스가 필요하고, 분산된 데이터가 어디 저장되어 있는지 찾을 프로그램들이 필요하고, 찾았으면 해당 IP 주소로 이동할 프로그램 (브라우저 등)이 필요하다.
- 도메인 네임 스페이스라는 규칙으로 도메인 이름 저장을 분산한다.
- 네임 서버 (DNS 서버와 같은 말)가 해당 도메인 이름의 IP 주소를 찾는다.
- 리졸버가 DNS 클라이언트 요청을 네임 서버로 전달하고, 찾은 정보를 클라이언트에게 제공하는 기능을 수행한다. 어떤 네임 서버에서 찾아야 하는지, 이미 캐시 되어 있는지 등, 클라이언트에게 찾았으면 찾은 것을, 못 찾았으면 못 찾았다고 전달하는 역할을 한다.
리졸버는 단말에 구현하는 것은 무리라서 보통은 리졸버가 구현된 네임 서버의 IP 주소만을 파악한다. 대표적으로는 KT/LG/SK와 같은 ISP(통신사) DNS, 구글 DNS 등이 있다.
왜 이런 방식을 사용하는가?
네임 서버가 한 대만 있지 않기 때문이다. 여러 네임 서버를 만들기엔 해당 정보를 모든 서버에서 공유해야 한다. 그렇지 않으면 어떤 네임 서버에서는 요청한 도메인 이름의 IP 주소를 모른다고 할 수 있다.
그래서 도메인을 계층적으로 구분하는 정보(도메인과 IP주소)를 분산하는 구조를 선택하게 되었다.
도메인에 닷(dot)이 있는 이유인데, 점이 계층을 나타낸다.
DNS 동작 방식
- 주소.com 을 입력
- 주소.com 을 가지고 있는 네임 서버에 접속
- IP 주소를 확인
- IP 주소를 전달
- IP 주소를 가진 서버로 접속
- 연결된 브라우저 실행
도메인 네임 스페이스 (Domain Name Space)
DNS는 전세계적인 거대한 분산 시스템이고, 도메인 네임 스페이스는 이러한 DNS가 저장·관리하는 계층적 구조를 의미한다.
도메인 네임 스페이스는 최상위에 루트 DNS 서버가 존재하고, 그 하위로 연결된 모든 노드가 연속해서 이어진 계층 구조로 되어있다. (폴더 구조와 비슷)
계층적 도메인 레벨 (Hierarchical Domain Level)
도메인 네임 스페이스의 트리 구조는 최상위 레벨부터 순차적으로 계층적 소속 관계를 나타내며, 하위 조직의 네임 스페이스를 할당하고 관리하는 방식은 각 하위 기관의 관리 책임자에게 위임된다.
예) hanamon.kr 도메인은 kr 도메인을 관리하는 네임 서버에 등록되어 있고
www.hanamon.kr은 hanamon.kr을 관리하는 네임 서버에 등록되어 있다.
blog.hanamon.kr을 생성하기 위해서는 hanamon.kr 도메인을 관리하는 네임 서버의 레코드만을 수정함으로써 가능하며 이러한 위임 구조는 호스트의 증가에 대한 관리가 효율적으로 이루어지는 것을 가능하게 한다.
전체 도메인 이름 (Fully Qualified Domain Name (FQDN))
도메인의 전체 이름을 표기하는 방식이다.
- 도메인 이름: hanamon.kr
- 호스트 이름: www
- FQDN: www.hanamon.kr
출처
- https://hanamon.kr/dns%EB%9E%80-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%84%A4%EC%9E%84-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B0%9C%EB%85%90%EB%B6%80%ED%84%B0-%EC%9E%91%EB%8F%99-%EB%B0%A9%EC%8B%9D%EA%B9%8C%EC%A7%80/ - DNS란?
- https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=netpia_blog&logNo=220821963070 - 간략화 된 DNS 과정 사진
- https://nack1400.tistory.com/21 - DNS 작동 방식
- https://onlydev.tistory.com/9 - 렌더 트리란?
'Backend Loadmap > Internet' 카테고리의 다른 글
[백엔드 로드맵][인터넷] 호스팅은 무엇일까요? (0) | 2022.12.02 |
---|---|
[백엔드 로드맵][인터넷] 도메인 네임이란? (0) | 2022.11.28 |
[백엔드 로드맵][인터넷] 브라우저와 동작 원리 (0) | 2022.11.22 |
[백엔드 로드맵][인터넷] HTTPS란? (0) | 2022.11.22 |
[백엔드 로드맵][인터넷] 인터넷은 어떻게 작동될까요? (0) | 2022.11.22 |