안녕하세요!

FE 개발자 유진주입니다.

CS/네트워크

[컴퓨터네트워크] Chapter2.4 DNS(Domain Name System)

ypearl 2023. 10. 25. 14:33

Chapter2.4 DNS(Domain Name System)

  • 도메인명과 DNS 서비스
  • DNS 구조
  • DNS 서비스 제공 방식
  • DNS 레코드와 메시지
  • DNS 도메인 정보 등록 절차

*도메인 네임 ---> IP주소 

도메인명이란?

- 도메인명(Domain name)

  • 인터넷 호스트에 부여되는 문자형의 유일한 이름 : 주소
  • 계층적인 도메인 관리 구조에 의해 도메인명의 유일성 유지
  • 도메인 관리자가 상위 도메인 관리에게 등록한 후 사용

- 도메인 구조

  • 최상위 도메인: //이 외에도 많이 있음
    7개 일반 도메인: .com, .org, .net, .int, .edu, .gov, .mil
    국가 도메인: .kr, .jp,.uk, ...
  • 중간 도메인: .ac, .gov, .re, .or, ...
  • 책임 도메인: .koreatech.ac.kr
  • 호스트 도메인: sce.koreatech.ac.kr, scpark.koreatech.ac.kr

- 계층적 도메인 구조

- 도메인명 특징

  • 사용자 편리성
  • 사용자 소속성

*IP주소는 언제든 바뀔 수 있다(임대해서 사용하는 것이기 때문)

반대로, 도메인 주소는 바뀔 가능성이 적음(나만의 소유)

 

DNS 서비스 유형

  • Hostname to IP Address(호스트명-IP 주소 변환 서비스)
    - 사용자의 문자형의 호스트명(도메인명)을 TCP/IP가 사용하는 32비트 IP 주소로 변환
  • Host aliasing(호스트 별칭 서비스) // 복잡한 도메인 주소 대신 별칭을 사용
    - 사용자의 호스트 별칭(alias)을 복잡한 정규 호스트명(canonical hostname)으로 변환
  • Mail server aliasing(메일서버 별칭 서비스)
    - 사용자의 메일서버 별칭을 복잡한 정규 호스트명으로 변환
    *별칭을 메일 서버의 도메인 이름으로 바꾼 후,
     그 메일서버의 정규 도메인 이름에 대한 IP주소로 변환하여 사용! 
  • Load distribution(부하 분산 서비스)
    - 동일 서버명(도메인명)으로 서로 다른 IP 주소의 다중 복제 서버 배치
    - 동일 서버명에 대한 DNS 요청에 대해 다른 IP 주소를 돌아가며 응답

 

DNS 구조

- 중앙집중형 구조(Centralized Architecture)

: 하나의 서버가 모든 DNS 질의(queries) 처리

 

- 문제점

  • A single point of failure: 중앙 서버 고장 시 전체 네트워크 고장
  • Traffic volume: 중앙 서버에 부하 집중
  • Distant centralized database: 원거리 중앙 서버의 응답 지연시간 증가
  • Maintenance: 중앙 서버 유지 보수 어려움

- 분산 계층 구조(Distributed & Hierarchical Architecture)

*책임서버(Authoritative Server): 최종적으로 어떤 호스트에 대한 도메인을 관리하는 서버

*지역서버(Local Server)

- 루트 서버(Root server)

  • 일반적으로 중간 서버(TLD 서버)에 대한 IP 주소 제공
  • 전세계에 수백개의 복제 서버 존재
  • 13개의 관리 기관에 의해 관리
  • 지역(local) DNS 서버에 의해 처음 접속

- TLD 서버

  • 최상위 도메인(Top Level Domain)에 대한 DNS 서비스 담당
  • 일반적으로 책임(authoritative) DNS 서버의 IP 주소 제공
  • 기타 2021년 4월 현재 1502개의 TLD 서버 존재

*.KR 도메인 관리 주체: KRNIC(한국인터넷정보센터)

 

- 책임(authoritative) DNS 서버

  • 특정 호스트의 도메인명 정보를 유지하고 있는 서버
  • 규모가 큰 기관은 대부분 자신의 호스트들에 대한 책임 DNS 서버 유지
  • 소규모 기관은 외부의 책임 DNS 서버 위탁

- 지역(local) DNS 서버

  • DNS 서비스를 요청하는 클라이언트 호스트가 소속된 DNS 서버
  • 소속된 호스트들의 DNS 서비스 요청 대행

 

DNS 서비스 제공 방식

- 반복적 질의(Iterative queries)

- 재귀적 질의(recursive queries)

*DNS 구현 방식에 따라 방법 선택.

(두 가지 혼용도 가능: 루트서버까지는 iterative하게, 중간서버까지는 recursive하게 등)

 

- DNS 캐싱(caching)

  • 특정 서버가 다른 서버에게 질의를 하고 응답을 받으면 이 정보를 클라이언트 방향으로
    전달하기 전에 자신의 캐시(cache) 메모리에 저장
  • 해당 서버가 동일한 도메인명에 대한 해석을 요청하는 질의를 수신하면
    다른 서버에게 질의 메시지를 전달하는 대신 캐시 메모리 정보를 응답

- 문제점 및 해결 방법

  • 특정 도메인명에 관한 정보가 해당 서버에 캐싱된 이후에 책임 서버에서
    갱신되었다면 캐시 메모리는 잘못된 정보 유지
  • 캐싱 정보는 일정 시간(TTL-Time To Live)이 지나면 자동적으로 삭제

 

DNS 자원 레코드(Resource Record)

- 자원 레코드(RR, Resource Record)

: DNS 서버에 정보가 저장되고 서비스되는 단위

  • 형식
    - (name, value, type, TTL)
  • 유형(type)
    - A: name=호스트명, value=IP 주소  // 도메인에 대한 IP 주소 저장
    - NS: name=도메인, value=책임 DNS 서버의 호스트명  //도메인에 대한 책임 DNS 서버 호스트명 저장
    - CNAME: name=별칭 호스트명, value=정규 호스트명  // 별칭에 대한 정규이름 정보를 유지
    - MX: name=별칭 메일서버명, value=정규 메일서버명 // 메일서버의 별칭에 대한 메일서버의 정규이름 정보 유지
  • TTL(Time To Live)
    : 해당 자원 레코드가 캐싱될 때 캐시 메모리에 유지되는 시간

 

DNS 메시지

- 메시지 포맷

 

DNS 정보 등록 절차

- 등록자(도메인 관리자)

  • 도메인명(networktopia.com)과 책임 DNS 서버
    (1차- dns1.networktopia.com, 2차- dns2.networktopia.com)의 IP 주소를 등록기관에 제출
  • 웹 서버명(www.networktopia.com)과 IP주소의 A 유형 RR을 책임 DNS 서버에 저장

- 도메인명 등록기관(registrar)

  • 등록 대상 도메인명의 유일성을 검증
  • 도메인을 담당하는 책임 DNS 서버에 대한 NS 유형 RR과 A 유형 RR을 상위 DNS 서버(예, TLS 서버)에 등록
  • (networktopia.com. dns1.networktopia.com, NS)
  • (dns1.networktoipia.com. 212.212.212.1, A)

- 신규 등록 도메인명 해석 절차