[네트워크] DNS + 웹 통신 흐름

jh Seo·2025년 5월 28일
0

네트워크 공부

목록 보기
7/16

DNS

도메인 네임 시스템(Domain Name System)

  • 사용자에게 친숙한 도메인 이름을 컴퓨터가 네트워크에서 서로를
    식별하는데 사용하는 인터넷 프로토콜(IP) 주소로 변환
  • 서버의 실제 주소인 '93.184.216.34'를 기억할 필요없이
    www.example.com 이런 식의 도메인 네임을 기억

유형

한 서버로 모든 도메인 관리 불가능
-> DNS 서버 종류를 계층화해서 단계적으로 처리하게 됨

1. 재귀적 DNS 서버(Recursive DNS Server)

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

2. 루트 DNS 서버(Root DNS Server)

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

3. TLD DNS 서버(Top-Level Domain DNS Server)

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

4. 권한 있는 서버(Authoritative DNS Server)

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

5. 보조 DNS 서버(Secondary DNS Server)

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

DNS 작동 방식

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

  1. 쿼리 시작:
    사용자가 웹 브라우저에 URL을 입력하면, 브라우저는
    해당 도메인 이름에 대한 IP 주소를 찾기 위해 DNS 쿼리를 시작
  2. DNS Recursor:
    사용자의 장치는 보통 인터넷 서비스 제공자에 의해
    제공되는 DNS Recursor에 요청을 보냄.
    이 Recursor은 해당 도메인에 대한 정보를 가지고 있지 않은 경우,
    다른 DNS 서버에 질의를 전달한다.
  3. 루트 네임 서버:
    Recursor은 전 세계에 분산된 13개의 루트 네임 서버 중 하나에 질의함.
    루트 서버는 해당 도메인의 최상위 도메인에 대한 정보를 가진 TLD 네임 서버 주소를
    Recursor에게 알려줌
  4. TLD 네임 서버:
    TLD 네임 서버는 해당 도메인의 권한 잇는 네임 서버 주소를 제공함.
    예를들어 "example.com"의 경우 .com에 해당하는 TLD 네임서버에 질의함
  5. 권한 있는 네임 서버:
    권한 있는 네임 서버는 요청 받은 도메인의 실제 IP 주소를 가지고 있으며,
    이 정보를 DNS Recursor에 전달
  6. 결과 반환:
    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):
    특정 서비스의 위치를 지정하는 데 사용되며, 서비스의 호스트와 포트 정보를 포함함

DNS 쿼리 유형

  • 재귀 쿼리
    재귀 서버와 DNS 클라이언트를 연결함,
    도메인 이름을 완전히 확인하거나 사용자에게 도메인을 찾을 수 없음을
    알리는 오류 메세지를 반환함

  • 반복 쿼리
    재귀 확인자(로컬 DNS 서버)와 비로컬 DNS 서버(예: 루트, TLD 또는 도메인 이름 서버)를 연결하는 반복 쿼리에는 도메인 확인이 필요하지 않음.
    대신 서버는 조회로 응답할 수 있으며, 여기서 루트 서버는 재귀 확인자를 TLD로 참조하고, TLD는 확인자를 응답을 제공하는 권한 있는 서버로 참조함
    → 반복 쿼리는 답변 또는 참조로 해결됨

  • 비재귀적 쿼리
    재귀 확인자는 쿼리에 대한 응답을 찾을 위치를 이미 알고 있으므로 이러한 쿼리는 항상 응답으로 확인됨, 확인자는 재귀 서버에 캐시된 응답을 찾거나 DNS 루트 및 TLD 네임 서버를 건너뛰고 적절한 권한 있는 서버로 직접 이동하여 시간을 절약함.
    ex) 재귀 확인자가 이전 세션에서 캐시된 IP 주소를 제공하는 경우

profile
코딩 창고!

0개의 댓글