위로 아래

DNS

DNS (Domain Name System)

  1. 도메인 주소를 IP 주소로 변환하는 역할
  2. 자주 사용되는 IP를 숫자가 아니라 기억하기 쉬운 문자로 표현하기 위해 사용 (202.179.177.21 -> www.naver.com)
  3. 내부 시스템의 서비스 간 연결에 사용 (IP 변경이 필요한 경우에도 서비스에서 IP를 일일이 바꾸는 것이 아니라, 서비스에서는 도메인으로 써두고 DNS 서버에서 도메인에 해당하는 IP 주소만 바꿔서 사용할 수 있다) 

 

 

 


DNS 구성 요소

Domain Name Space (도메인 네임 스페이스)

  1. DNS가 저장 관리하는 계층적 구조를 의미
  2. 도메인 이름을 분산 저장한다
  3. 계층적 도메인 레벨 (Hierarchical Domain Level)
    1. 역트리 구조를 가지고 있다 (root -> Top level 도메인, Second level 도메인, Third level 도메인)
    2. 도메인 계층을 구별하는 구분자는 . (점)
    3. 도메인 최대 계층 개수 : 128 계층, 계층별 최대 길이 : 63바이트, 전체 도메인 네임의 길이는 최대 255바이트
    4. 알파벳, 숫자, - 만 사용할 수 있고 대소문자 구별이 없다
    5. 하나의 서버가 아니라, 여러 개의 DNS 서버가 존재하고, 각각 계층을 따로 검색해주기 때문에, 계층 구조로 나뉘어져 있다.
    6. FQDN (Full Qualified Domain Name) : 전체 도메인

 

Name Server (네임 서버)

  1. 권한 있는 DNS 서버
  2. Domain Name Space의 트리구조를 가지고 있는 서버
  3. 구분
    1. Root DNS Server : DNS 서버의 최상위 네임 서버. 전 세계에 13개가 있다. DNS 해석 요청에 대해 적절한 TLD 네임 서버 정보를 반환
    2. Top - Level Domain (TLD) DNS Server : 도메인 등록 기관이 관리하는 서버. com, net, co.kr 등 
    3. Second - Level Domain (SLD) DNS Server (Authoritative DNS Server) : 실제 개인 도메인과 IP 주소의 관계가 기록되는 서버. 도메인, 호스팅 업체의 네임 서버를 말한다. 
    4. Anauthoritative DNS Server : 권한이 없는 DNS 서버로, 리졸버 서버, 리컬시브 서버, 리커서 등이 있다.

 

DNS Resolver (리졸버)

  1. 사용자의 컴퓨터나 네트워크에 위치한 DNS 클라이언트
  2. 사용자가 도메인 이름을 입력하면 해당 도메인 이름을 IP 주소로 변환하기 위해 DNS 서버에 요청하는 역할
  3. DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공한다

 

 

 


DNS 동작 방식

DNS Quary

  1. 사용자가 도메인 이름을 입력하고 IP 주소를 얻기 위해서 DNS 서버에 보내는 요청
  2. 도메인을 IP 주소로 변환하려면 DNS 서버에 쿼리하는 과정을 거쳐야 한다
  3. DNS Resolver가 사용자의 컴퓨터에서 생성하고 DNS 서버에 전송
  4. 일반적으로 UDP를 통해 전송된다.
  5. 도메인을 쿼리하면 Local에 있는 DNS 캐시 정보를 먼저 확인한 후 DNS 서버에 쿼리를 한다.

 

DNS 동작 방식

  1. 사용자가 도메인 네임을 요청한다
  2. 정적 쿼리를 통해 hosts 파일에 도메인과 IP 주소가 매핑된 캐시가 있는지 확인한다. (Local 방식)
  3. 동적 쿼리를 통해 기존 DNS를 조회하여 해당 도메인의 캐시가 있는지 확인한다.
  4. 둘 다 없다면 DNS 서버에 쿼리를 보내서 IP 주소를 응답받는다
  5. 응답 받은 IP 주소의 캐시를 남기고 응답을 수행한다.

 

DNS Delegation (도메인 위임)

  1. 자신이 가진 도메인 관리 권한을 다른 곳으로 일부 위임해 세부 레코드를 관리하도록 하는 것
  2. CDN이나 GSLB를 사용하는 것이 대표적인 경우

 

TTL (Time To Live)

  1. DNS에 질의해 응답 받은 결과값을 캐시에서 유지하는 시간
  2. 도메인 정보 갱신 빈도에 따라 TTL 값을 적절히 조절하는 것이 좋다.
  3. 윈도우 기본 TTL : 3,600초 / 리눅스 기본 TTL : 10,800초
  4. DNS 서버에서 TTL을 많이 늘려서 캐시를 많이 유지하면 DNS 재귀적 쿼리로 인한 응답 시간이 줄어들어 네트워크 응답 시간이 단축된다.
  5. TTL 값이 너무 크면 새로 변경된 DNS 정보는 새로 입력되는 게 아니라 덮어쓰기를 해야하므로 그만큼 정보 갱신이 지연된다.
  6. TTL 값이 너무 작으면 DNS 정보 갱신이 빨라지므로 DNS 쿼리량이 늘어나 DNS 서버에 부하가 증가할 수도 있다.

 

White Domain (화이트 도메인)

  1. 불법적인 스팸 등을 차단하기 위하여 정상적인 도메인을 인증 관리하는 제도
  2. RBL (Realtime Blackhole List, Realtime Blocking List) : 실시간 블랙리스트 (스팸 메일 발송하는 사이트를 블랙리스트 처리해 관리)
  3. SPF (Sender Policy Framework) : 도메인에 SPF 레코드가 설정되어 있어야 해당 도메인의 메일을 확인해 화이트도메인 처리를 할 수가 있다.
  4. KISA의 PBL 사이트에서 확인

 

 

 


DNS 레코드

DNS Record

  1. DNS 서버가 패킷을 받았을 때 어떤 식으로 처리할지를 나타내는 지침
  2. DNS 상에서 도메인에 관한 설정을 하기 위해 사용되는 일련의 설정 문자

 

종류

A (IPv4 호스트) : 도메인 주소를 IPv4 주소로 매핑

AAAA (IPv6 호스트) : 도메인 주소를 IPv6 주소로 매핑

CNAME (별칭) : 도메인 주소에 대해 별칭 이름을 사용하게 해주는 레코드 (예시 : www)

SOA (권한 시작) : 본 영역 데이터에 대한 권한

NS (도메인의 네임 서버) : 본 영역에 대한 네임 서버

MX (메일 교환기) : 도메인에 대한 메일 서버 정보(Mail eXchanger)

PTR (포인터) : IP 주소를 도메인에 매핑(역방향)

TXT (레코드) : 도메인에 대한 일반 텍스트

 

 

 

 

 

 

참고 : https://velog.io/@zinukk/9kpyzbdt

 

DNS(Domain Name System)란?

데이터를 받아오는 과정 1. 사용자가 www.naver.com을 입력하면 입력한 URL 주소 중, 도메인 이름에 해당하는 www.naver.com을 DNS 서버에서 검색 웹 브라우저는 DNS 서버에 검색하기 전에 캐싱된 DNS 기록들

velog.io