DNS
DNS(Domain Name System)은 인터넷에서 도메인 이름을 IP 주소로 변환하는 분산형 계층 구조 시스템이다. 이를 통해 해당하는 서버의 IP 주소를 찾아 웹사이트와 같은 인터넷 서비스에 접속할 수 있다.
DNS 구조
- Root DNS 서버는 인터넷에 연결된 모든 장치에 대한 DNS 질의를 수행하는 전 세계적인 DNS 서버의 시작점이다.
- Top-Level Domain (TLD) DNS 서버는 최상위 도메인 레벨 (예 : .com, .org, .net 등)의 DNS 서버이다. 각 TLD DNS 서버는 해당 도메인의 네임 서버를 관리하며, 해당 도메인에 대한 쿼리에 대한 정보를 제공한다.
- Authoritative DNS 서버는 각 도메인에 대한 네임 서버이다. 각 Authoritative DNS 서버는 해당 도메인의 하위 도메인 및 해당 도메인에 대한 DNS 질의에 대한 IP 주소 등 필요한 정보를 제공한다.
- Resolver는 DNS 질의를 수행하는 클라이언트와 네임 서버 간의 중간자 역할을 수행한다. Resolver는 DNS 캐시를 사용하여 이전에 해결한 도메인 이름에 대한 IP 주소를 저장하고, 해당 정보를 기반으로 클라이언트의 DNS 질의를 처리한다.
도메인 네임 스페이스(Domain Name Space)
도메인 네임 스페이스(Domain Name Space)는 DNS에서 사용되는 계층적인 구조로, 인터넷 상에서 도메인 이름을 식별하기 위한 시스템이다.
도메인 네임 스페이스는 계층적인 구조로 이루어져 있으며, 이 구조는 도메인 이름을 기반으로 생성된다. 최상위 레벨 도메인(TLD)에서부터 시작하여, 도메인 이름을 표시하는 데 사용되는 각 요소가 하위 레벨 도메인으로 이어지며, 이러한 하위 레벨 도메인은 일반적으로 점(.)으로 구분된다.
예를 들어, “www.example.com”이라는 도메인 이름을 살펴보자. 이 경우, “com”은 최상위 레벨 도메인(TLD)이며, “example”은 com 도메인의 하위 레벨 도메인이다. 마지막으로, “www”는 example.com 도메인의 하위 레벨 도메인으로, 이는 대개 해당 도메인의 웹 서버를 가리킨다.
네임 서버(Domain Name Server)
네임서버(Domain Name Server)는 DNS 시스템 내에서 도메인 이름과 IP 주소를 매핑하는 서버이다. 네임서버는 DNS 쿼리를 받아들이고 해당 도메인 이름에 대한 IP 주소를 반환한다.
도메인 주소와 IP를 맵핑해서 저장하는 데이터베이스
리졸버(Resolver)
리졸버(Resolver)는 클라이언트(사용자)의 DNS 쿼리를 받아들이고 네임서버로부터 해당 도메인 이름의 IP 주소를 검색하는 서버이다. 리졸버는 사용자의 컴퓨터 또는 인터넷 서비스 제공업체(ISP)에서 호스팅된다.
리졸버 → 클라이언트와 네임 서버를 중계하는 인터페이스
DNS 쿼리 과정
- 사용자가 브라우저에 도메인 이름을 입력한다.
- 사용자의 컴퓨터는 Local DNS 서버에게 도메인 이름에 해당하는 IP 주소를 요청한다.
- Local DNS 서버는 먼저 자신의 캐시에서 IP 주소를 찾으며, 없을 경우 Root DNS 서버에게 요청한다.
- Root DNS 서버는 TLD DNS 서버의 IP 주소를 반환한다.
- Local DNS 서버는 TLD DNS 서버에게 IP 주소를 요청한다.
- TLD DNS 서버는 해당 도메인의 DNS 서버 IP 주소를 반환한다.
- Local DNS 서버는 해당 DNS 서버에게 IP 주소를 요청한다.
- DNS 서버는 해당하는 IP 주소를 반환한다.
- Local DNS 서버는 해당 IP 주소를 사용자의 컴퓨터에게 반환한다.