DNS(Domain Name System)란?
DNS 는 인터넷의 전화번호부입니다. 인간은 naver.com 또는 google.com과 같은 도메인 이름을 통해 온라인으로 정보에 액세스하는데, 웹 브라우저는 인터넷 프로토콜(IP) 주소를 통해 상호 작용합니다. DNS는 브라우저가 인터넷 리소스를 로드할 수 있도록 도메인 이름을 IP 주소 로 변환합니다. 인터넷에 연결된 각 장치에는 다른 컴퓨터가 장치를 찾는 데 사용하는 고유한 IP 주소가 있습니다. 사용자가 교유한 IP 주소를 입력하여 접속하기는 기억하기 어려우므로 DNS 서버를 사용하면 사람이 192.xxx.x.x(IPv4의 경우)과 같은 IP 주소나 2400:cb00:2048:1::c629:d7a2(IPv6의 경우)와 같은 더 복잡한 최신 영숫자 IP 주소를 기억할 필요가 없습니다.
DNS는 어떻게 작동하나요?
DNS(도메인 이름 시스템)는 인터넷에서 도메인 이름(예: www.example.com)을 IP 주소로 변환하거나, 그 반대의 역할을 수행하는 시스템입니다. DNS는 사용자가 읽기 쉬운 도메인 이름을 기억하고 이를 컴퓨터가 이해할 수 있는 IP 주소로 매핑함으로써 웹 브라우저가 웹 서버와 통신할 수 있도록 도와줍니다.
웹페이지 로딩 과정에 관련된 4가지 DNS 서버
- 로컬 DNS 서버 (Local DNS Server): 사용자가 웹 브라우저에 도메인을 입력하면, 먼저 사용자의 컴퓨터에 설정된 로컬 DNS 서버에 도메인 이름을 조회합니다. 로컬 DNS 서버는 이전에 조회한 도메인 이름과 관련된 IP 주소 정보를 캐시하고 있을 수 있습니다. 로컬 캐시에 해당 정보가 있으면 추가적인 조회 없이 캐시된 정보를 사용합니다.
- 루트 DNS 서버 (Root DNS Server): 로컬 DNS 서버가 캐시에 도메인 정보를 찾지 못하거나 만료된 경우, 로컬 DNS 서버는 루트 DNS 서버에 도메인을 조회합니다. 루트 DNS 서버는 전 세계 DNS 시스템의 최상위에 위치하며, 모든 도메인의 최상위(Top-Level Domain, TLD) 서버의 주소를 제공합니다.
- TLD DNS 서버 (Top-Level Domain DNS Server): 루트 DNS 서버로부터 받은 응답을 기반으로, 로컬 DNS 서버는 해당 도메인의 TLD DNS 서버에 도메인을 조회합니다. TLD DNS 서버는 도메인의 최상위 부분을 나타내며, 예를 들면 ".com", ".org", ".net" 등이 있습니다. TLD DNS 서버는 다음으로 쿼리를 보낼 담당 DNS 서버의 IP 주소를 제공합니다.
- 권한 있는 DNS 서버 (Authoritative DNS Server): 로컬 DNS 서버는 TLD DNS 서버로부터 받은 정보를 기반으로, 도메인의 권한 있는 DNS 서버에 도메인을 조회합니다. 권한 있는 DNS 서버는 실제로 도메인과 관련된 IP 주소 정보를 가지고 있습니다. 이 서버가 해당 도메인에 대한 IP 주소를 반환하면 로컬 DNS 서버는 이 정보를 캐시하고, 최종적으로 웹 브라우저에 해당 IP 주소를 반환하여 웹페이지 로딩이 이루어집니다.
이렇게 네 개의 DNS 서버가 협력하여 사용자가 입력한 도메인 이름을 해당 도메인에 대응하는 IP 주소로 변환하여 웹페이지를 로딩하는 과정을 완료합니다.
권한 있는 DNS 서버와 재귀적 DNS 확인자(Resolver)는 DNS 시스템에서 서로 다른 역할을 수행하는 두 가지 주요 구성 요소
- 권한 있는 DNS 서버 (Authoritative DNS Server):
- 역할: 특정 도메인에 대한 IP 주소 레코드와 관련된 정보를 갖고 있으며, 해당 도메인에 대한 질의에 대한 정확한 답변을 제공합니다.
- 저장된 데이터: 도메인에 대한 IP 주소, 메일 서버 레코드(MX 레코드), 네임 서버 레코드(NS 레코드) 등과 같은 도메인에 관한 자세한 정보를 저장하고 있습니다.
- 예시: 웹사이트 www.example.com의 권한 있는 DNS 서버는 example.com 도메인에 대한 정보를 가지고 있습니다.
- 재귀적 DNS 확인자 (Recursive DNS Resolver):
- 역할: 사용자의 요청에 대해 전체 DNS 계층 구조를 거쳐 도메인 이름을 IP 주소로 해석합니다. 사용자의 요청에 대한 응답을 찾기 위해 다른 DNS 서버들과 협력하며, 필요에 따라 중간에 위치한 DNS 서버들에게 추가적인 조회를 요청합니다.
- 저장된 데이터: 주로 사용자 요청에 따라 동적으로 데이터를 캐시하며, 이를 통해 동일한 도메인에 대한 반복된 조회를 최소화합니다.
- 예시: 사용자의 컴퓨터에서 실행되는 브라우저나 다른 네트워크 기기에 내장된 재귀적 DNS 확인자가 이에 해당합니다.
요약하면, 권한 있는 DNS 서버는 특정 도메인에 대한 정보를 소유하고 있으며 질의에 정확한 응답을 제공하는 반면, 재귀적 DNS 확인자는 사용자의 요청에 대해 도메인 이름을 해석하기 위해 전체 DNS 구조를 탐색하며 중간에 위치한 DNS 서버들에게 도움을 요청하여 최종적으로 정확한 응답을 사용자에게 반환합니다.
DNS 조회의 단계
- 로컬 DNS 캐시 검사 (Local DNS Cache Check):
- 사용자가 도메인을 입력하면 먼저 사용자의 컴퓨터에 설정된 로컬 DNS 캐시를 확인합니다. 로컬 캐시에 해당 도메인에 대한 IP 주소가 캐시되어 있다면, 추가적인 외부 조회 없이 해당 IP 주소를 사용합니다.
- 루트 DNS 서버 조회 (Root DNS Server Query):
- 로컬 DNS 캐시에 해당 도메인 정보가 없거나 만료된 경우, 로컬 DNS 서버는 인터넷의 최상위에 위치한 루트 DNS 서버에 도메인을 조회합니다. 루트 DNS 서버는 전 세계 DNS 시스템의 최상위에 위치하며, TLD(Top-Level Domain) 서버의 주소를 반환합니다.
- TLD DNS 서버 조회 (TLD DNS Server Query):
- 루트 DNS 서버로부터 받은 응답을 기반으로, 로컬 DNS 서버는 해당 도메인의 최상위 도메인(TLD) 서버에 도메인을 조회합니다. TLD는 도메인의 최상위 부분을 나타내며, ".com", ".org", ".net" 등이 해당됩니다. TLD 서버는 다음으로 쿼리를 보낼 권한 있는 DNS 서버의 주소를 반환합니다.
- 권한 있는 DNS 서버 조회 (Authoritative DNS Server Query):
- 로컬 DNS 서버는 TLD DNS 서버로부터 받은 정보를 기반으로, 도메인의 권한 있는 DNS 서버에 도메인을 조회합니다. 권한 있는 DNS 서버는 실제로 도메인에 대한 IP 주소 정보를 가지고 있으며, 이를 반환합니다.
- IP 주소 반환 (IP Address Retrieval):
- 권한 있는 DNS 서버는 조회된 도메인에 대한 IP 주소를 로컬 DNS 서버에 반환합니다. 로컬 DNS 서버는 이 정보를 캐시하고, 도메인 이름에 대응하는 IP 주소를 웹 브라우저에 제공합니다.
- 최종 목적지로 통신 (Communication with Final Destination):
- 이제 웹 브라우저는 도메인 이름에 대응하는 IP 주소를 알고 있으므로, 해당 IP 주소로 서버와 통신하여 웹페이지를 요청하고 받아옵니다.
이러한 단계를 통해 DNS 조회는 사용자가 도메인을 입력하고 웹페이지를 로드할 때마다 발생하며, DNS 시스템은 도메인 이름을 IP 주소로 변환하여 통신을 가능하게 합니다.
참고 : https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/
'Internet' 카테고리의 다른 글
브라우저의 작동 방식 (1) | 2024.01.25 |
---|---|
웹 호스팅(Web Hosting) (0) | 2024.01.25 |
댓글