DNS

클라이언트는 IP 주소 대신 도메인 이름을 사용

도메인을 실제 네트워크상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 과정이 필요

전체 시스템을 DNS

상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 권한을 부여

DNS는 계층 구조를 가지는 분산 데이터베이스 구조

DNS 구성요소

  • 도메인 네임 스페이스(Domain Name Space)
  • 네임 서버(Name Server) = 권한 있는 DNS 서버
  • 리졸버(Resolver) = 권한 없는 DNS 서버

도메인 네임 스페이스

DNS가 저장 관리하는 계층적 구조를 의미

최상위에 루트 DNS 서버가 존재하고 그 하위로 연결된 모든 노드가 연속해서 이어진 계층 구조로 구성

Fully Qualified Domain Name(FQDN): 전체 도메인 이름 ex) www.naver.com

네임 서버

도메인 네임 스페이스의 트리 구조에 대한 가지고 있는 서버

데이터베이스 역할(저장, 관리), 찾아주는 역할, 요청 처리 응답 구현

Root DNS 서버

ICANN이 직접 관리하는 최상위 서버

TLD DNS 서버 IP 주소를 저장하고 안내하는 역할

Top-Level Domain(TLD) DNS 서버

도메인 등록 기관이 관리하는 서버

Authoritative DNS 서버의 주소를 저장하고 안내하는 역할

Second-Level Domain(SLD) DNS 서버 (Authoritative DNS 서버)

실제 개인 도메인과 IP 주소의 관계가 기록되는 서버

일반적으로 도메인/호스팅 업체의 네임서버

리졸버

Public DNS에서는 ISP가 이를 수행

웹 브라우저와 같은 DNS 클라이언트의 요청을 네임 서버로부터 정보를 받아 클라이언트에게 제공

하나의 네임 서버에게 DNS 요청을 전달하고 해당 서버에 정보가 없으면 다른 네임 서버에게 요청을 보내 정보를 받음

DNS 동작방식

DNS 클라이언트와 DNS 서버는 DNS 쿼리를 교환

1: 클라이언트가 Resolver에게 www.naver.com의 IP를 요청하는 Recursive Query(재귀적 질의)

2-7: 리졸버는 Root nameserver 부터 Authoritative Namserver 까지 도메인 네임 스페이스의 계층 순서에 맞게 반복적 질의를 하며 IP주소를 검색

8: 클라이언트에게 IP주소 반환

단, 이미 캐시에 IP주소가 존재한다면 이 과정을 거치지 않음

 

포트와 TCP/UDP

DNS는 기본적으로 UDP 프로토콜을 이용

특수한 상황에서는 TCP를 이용해서 조금 더 안정성을 보장

1. DNS 포트

  • 기본은 UDP/53, 특수한 상황에서는 TCP/53 사용

2. UDP가 사용되는 경우

  • 일반적인 DNS 질의 및 응답

3. TCP가 사용되는 경우

  • Zone transfer
    • 안정성을 위해 두 개 이상의 DNS 서버를 이용할 경우 Master에서 Slave로 zone 정보를 보낼 경우, 안정성을 위해 tcp를 사용
  • 메시지 사이즈가 512byte를 넘는 경우
    • Naver 나 google 처럼 www로 매핑된 서버가 많이 있는 경우 메시지 사이즈가 512 Byte를 넘을 수 있는데 그럴 경우에 tcp로 재질의하여 응답을 받음
    • 일부 ISP의 경우는 TCP 53번 포트가 막혀있으므로 해당 기관에서는 질의가 안됨

Reference

https://hanamon.kr/dns란-도메인-네임-시스템-개념부터-작동-방식까지/

 

'네트워크' 카테고리의 다른 글

DDoS  (0) 2024.01.10
Well Known Port  (0) 2023.11.10
SSH, Telnet  (0) 2023.11.10
HTTP, HTTPS  (0) 2023.11.10
대칭키, 비대칭키 암호화  (0) 2023.11.10

+ Recent posts