Computer Network

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

JunsuKim 2022. 9. 27.
728x90

도메인명(Domain Name)

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

도메인 구조

  • 최상위 도메인: 7개 일반 도메인: .com, .org, .net, .int, .edu, .gov, .mil
  • 국가 도메인: .kr, .jp, .uk, . . .
  • 중간 도메인: .ac, .gov, .re, .or, . . .
  • 책임 도메인(호스트에 도메인 부여): @@@.ac.kr
  • 호스트 도메인: ###.@@@.ac.kr

계층적 도메인 구조

도메인명 특징

  • 사용자 편리성
    • IP 주소보다 사용하기 편리하다.
  • 사용자 소속성
    • IP 주소는 계속 변하지만, 도메인명은 특정 상황이 아니면 변하지 않는다.

DNS 서비스 유형

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

DNS 구조

중앙 집중형 구조(Centralized Architecture)

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

문제점

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

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

루트 서버(Root Server)

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

TLD(Top Level Domain) 서버

  • 최상위 도메인(Top Level Domain)에 대한 DNS 서비스 담당
  • 일반적으로 책임(authoritative) DNS 서버의 IP 주소 제공

.KR 도메인 관리 주체

  • KRNIC(한국인터넷정보센터)

책임(authoritative) DNS 서버

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

지역(local) DNS 서버

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

DNS 서비스 제공 방식

반복적 질의(Iterative queries)

  • 사용자가 local DNS server에 DNS 서비스를 요청한다.
  • local DNS server는 도메인명을 갖고 있지 않으므로, root DNS server에게 도메인명을 물어본다.
  • root DNS server 또한 도메인(호스트)에 대한 정보를 유지하지 않는다. 하지만 호스트가 포함되있는 TLD(Top Level Domain) 서버 정보를 갖고 있어 이를 알려준다.
  • TLD 서버에게 도메인(호스트)에 대한 정보를 물어본다. 하지만, 애한테도 도메인 정보가 있지 않고 책임 도메인 서버를 알려준다.
  • 책임 도메인에 접속하여 도메인 이름에 대한 IP 주소를 받는다.
  • 이를 토대로 호스트에 접속한다.

※ 모든 도메인명에 대한 정보 요청을 local DNS server에서 한다.

재귀적 질의(recursive queries)

반복적 질의 과정과는 달리 local DNS server가 모든 정보 요청을 하지 않는다.

DNS 캐싱(caching)

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

문제점 및 해결 방법

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

DNS 자원 레코드(Resource Record)

자원 레코드(RR, Resource Record)

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

형식

  • (name, value, type, TTL)

유형

  • A: name = 호스트명, value = IP 주소
  • NS: name = 도메인, value = 책임 DNS 서버의 호스트명
  • CNAME: name = 별칭 호스트명, value = 정규 호스트명
  • MX: name = 별칭 메일서버명, value = 정규 메일서버명

TTL(Time To Live)

  • 해당 자원 레코드가 캐싱될 때 캐시 메모리에 유지되는 시간

메시지 포맷

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 서버(ex, TLD 서버)에 등록
  • (networktopia.com. dns1.networktopia.com, NS)
  • (dns1.networktopia.com. 212.212.212.1, A)

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

 

728x90

댓글