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)
- 신규 등록 도메인명 해석 절차
'CS > 네트워크' 카테고리의 다른 글
[컴퓨터네트워크] Chapter3.3 비연결형 트랜스포트: UDP, 검사합(checksum) (0) | 2023.11.30 |
---|---|
[컴퓨터네트워크] Chapter3.1~2 트랜스포트 계층 서비스 / 다중화와 역다중화 (0) | 2023.10.25 |
[컴퓨터네트워크] Chapter2.3 이메일과 SMTP (0) | 2023.10.25 |
[컴퓨터네트워크] Chapter2.2 웹과 HTTP(2): 메시지, 쿠키, 캐시 (0) | 2023.10.25 |
[컴퓨터네트워크] Chapter2.2 웹과 HTTP(1): 동작원리와 지속 비지속 연결 (0) | 2023.10.24 |