DNS와 웹 통신 흐름

백지원·2024년 1월 12일
0

DNS와 웹 통신 흐름

DNS(Domain Name System)란?

사람이 읽을 수 있는 도메인 이름(www.hanamon.kr)을 IP 주소로 변환하는 시스템입니다. 사용자가 'naver.com' 또는 'google.com'과 같은 도메인 이름을 웹 브라우저에 입력하면, 입력한 도메인을 실제 네트워크상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하게 해주는 역할을 합니다.

DNS는 전세계적으로 약속된 규칙을 공유하는데 상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 ‘권한’을 부여합니다.
이처럼 DNS는 상위 기관과 하위 기관과 같은 ‘계층 구조’를 가지는 분산 데이터베이스 구조를 가집니다.

IP 주소로 변환 과정이 필요한 이유? 🧐

www.google.com와 같은 호스트 이름이 사용자들이 기억하기 쉽지만, 이 호스트 이름으로는 호스트 위치에 대한 정보도 얻을 수 없고, 가변 길이로 라우터가 처리하는 데도 어려움이 있어 IP 주소로 식별됩니다.

DNS 서버의 종류와 특징

성능이 매우 좋은 컴퓨터 하나로 모든 도메인을 관리할 수 있다면 위 내용 그대로 이해하면 되겠지만, 그렇지 않기 때문에 DNS 서버 종류를 계층화해서 단계적으로 처리하는 과정에 대한 이해가 필요합니다.

재귀적 DNS 서버 (Recursive DNS Server):

역할: 사용자의 DNS 쿼리를 받아, 필요한 정보를 찾을 때까지 다른 DNS 서버에 요청을 전달합니다.
특징: 일반적으로 인터넷 서비스 제공자(ISP)에 의해 제공되며, 사용자의 첫 번째 DNS 쿼리 접점입니다.
사용자 경험: 빠른 응답 시간을 제공하기 위해 이전 쿼리의 결과를 캐시에 저장합니다.

루트 DNS 서버 (Root DNS Server):

역할: 전 세계적으로 13개의 루트 DNS 서버가 있으며, 최상위 도메인(TLD) 서버의 주소 정보를 제공합니다.
특징: 인터넷의 기본 구조를 이루며, DNS 조회 프로세스의 가장 높은 단계에 위치합니다.
중요성: 모든 DNS 조회는 루트 서버에서 시작되므로, 매우 높은 안정성과 보안이 요구됩니다.

TLD DNS 서버 (Top-Level Domain DNS Server):

역할: 특정 최상위 도메인(.com, .net, .org 등)에 대한 정보를 관리합니다.
특징: 도메인 이름의 마지막 부분(예: .com)을 처리하고, 해당 도메인의 권한 있는 서버 주소를 알려줍니다.
중요성: 각 TLD에 대한 중앙 참조 지점으로서, 인터넷 주소 체계의 중요한 부분입니다.

권한 있는 DNS 서버 (Authoritative DNS Server):

역할: 특정 도메인에 대한 최종적이고 정확한 정보를 제공합니다.
특징: 도메인 소유자가 관리하며, 해당 도메인과 관련된 모든 DNS 레코드를 포함합니다.
사용 예: 웹사이트 호스팅 업체나 도메인 등록 기관에서 제공하는 DNS 서버입니다.

보조 DNS 서버 (Secondary DNS Server):

역할: 주 DNS 서버의 데이터를 복제하여, 주 서버에 장애가 발생했을 때 백업 역할을 합니다.
특징: DNS 쿼리 부하를 분산시키고, 높은 가용성과 안정성을 보장합니다.
중요성: 주 DNS 서버의 장애 상황에서도 도메인이 계속 작동할 수 있도록 합니다.

DNS 작동 방식

사용자가 웹 브라우저에서 URL을 입력하면 다음과 같은 과정을 거칩니다

  1. 쿼리 시작: 사용자가 웹 브라우저에 URL을 입력하면, 브라우저는 해당 도메인 이름에 대한 IP 주소를 찾기 위해 DNS 쿼리를 시작합니다.

  2. DNS Recursor: 사용자의 장치는 보통 인터넷 서비스 제공자(ISP)에 의해 제공되는 DNS Recursor에 요청을 보냅니다. 이 Recursor는 해당 도메인에 대한 정보를 가지고 있지 않은 경우, 다른 DNS 서버에 질의를 전달합니다.

  3. 루트 네임 서버: Recursor는 전 세계에 분산된 13개의 루트 네임 서버 중 하나에 질의합니다. 루트 서버는 해당 도메인의 최상위 도메인(TLD, 예: .com, .net)에 대한 정보를 가진 TLD 네임 서버의 주소를 Recursor에 알려줍니다.

4 TLD 네임 서버: TLD 네임 서버는 해당 도메인의 권한 있는 네임 서버의 주소를 제공합니다. 예를 들어, "example.com"의 경우 .com에 해당하는 TLD 네임 서버에 질의합니다.

  1. 권한 있는 네임 서버: 권한 있는 네임 서버는 요청받은 도메인의 실제 IP 주소를 가지고 있으며, 이 정보를 DNS Recursor에 전달합니다.

  2. 결과 반환: Recursor는 이 IP 주소를 사용자의 브라우저에 반환하고, 브라우저는 이 주소를 사용하여 웹사이트에 연결합니다.

DNS 레코드 유형

DNS 레코드는 도메인 이름과 관련된 다양한 종류의 정보를 저장하는 형식입니다.
주요 레코드 유형은 다음과 같습니다.

  • A 레코드 (Address Record): 가장 일반적인 유형의 DNS 레코드로, 도메인 이름을 IPv4 주소로 변환합니다.

  • AAAA 레코드 (Quad-A Record): A 레코드와 유사하지만, IPv6 주소를 사용합니다.

  • CNAME 레코드 (Canonical Name Record): 한 도메인 이름을 다른 도메인 이름으로 매핑합니다. 주로 하나의 서버에 여러 도메인 이름을 연결할 때 사용됩니다.

  • MX 레코드 (Mail Exchange Record): 도메인의 이메일을 처리하는 서버를 지정합니다. 이메일 서비스 설정 시 필수적입니다.

  • TXT 레코드 (Text Record): 임의의 텍스트를 저장할 수 있는 레코드로, 종종 도메인 소유권 검증이나 이메일 스팸 방지 설정에 사용됩니다.

  • SRV 레코드 (Service Record): 특정 서비스의 위치를 지정하는 데 사용되며, 서비스의 호스트와 포트 정보를 포함합니다.


📌 Reference

0개의 댓글