CS/Network

[네트워크] DNS, DNS 쿼리, DNS recode 종류

sebinChu 2024. 4. 24. 14:59

개요

프로세스가 서로 통신할 때 알아야 하는 두 가지 정보 → IP, Port

  • IP: 프로세스가 돌고 있는 머신의 Network Interface Card에 부여된 Identity → IPv4, host name(domain name)
  • Port: 실행 중인 프로세스에 접근할 수 있는

DNS

IP 주소를 hostname으로 매핑(라우팅)해주는 역할

→ Network Layer에서 해야하는 일을 App-Layer에서 함

Network Layer는 빠르게 전송만 하면 돼서, 복잡한 연산을 App-Layer에서 처리하는 것

  • distributed database → not centralize
    • 가용성, 중요한 서비스는 분산시킨다.
  • application layer protocol

 

 


 

DNS가 하는 일

  1. host name-IP address
  2. host aliasing - canonical & alias names
  3. main server aliasing
  4. load distribution

 


DNS 쿼리 과정(www.google.com)

 

어떤 host에 대한 IP 주소를 요청을 할 때,

INTERATED QUERY

  1. Local DNS Server에 요청
  2. root DNS Server에 요청 → (모르는 경우) TLD에 물어보라고 TLD 주소 알려줌
  3. TLD DNS Server에 요청 → authorititative Server에 물어보라고 A Server 주소 알려줌
  4. authorititative Server는 최종 권한을 가지고 있기에, 알려줌!

 

 

 

RECURSIVE QUERY

  1. Local DNS Server에 요청하고, 답이 올 때까지 기다린다. Server 들이 직접 나서서 응답-요청 과정 겪음

 

 

 

실제로는 root DNS Server는 recursive 방식을 거부한다.

 


DNS Type 4가지

순서대로 권한 범위가 적다.

1) Local DNS Server(Default DNS Server)

  • Local DNS 서버는 hierarchy 구조에 포함되지 않으며, 클라이언트 가까이에 있는 캐시 서버다.
  • DNS 쿼리를 날릴 때 가장 먼저 요청되는 default name server

 

2) root DNS

  • 전 세계 13개 기관에서 루트 서버 관리. IP 주소 찾기 위해서 항상 이 root에게 먼저 요청.
    • root server가 local name server에게 return하는 방식으로 매핑
  • root부터 트리구조로 되어있으며 바로 아래 단계를 1단계 도메인이라고 한다. **최상위 도메인 TLD(Top Level Domain)**이다.
  • 최상위 도메인은 국가최상위도메인과 일반최상위도메인으로 구분된다.

 

3) TLD(Top Level Domain)

  • com, org, net, edu..와 같은 탑레벨 도메인

 

4) Authoritative servers

  • 기관에서 관장하는 서버

 


DNS record 종류

DNS Record는 DNS에 온 요청에 대해 어떻게 처리할 것인가를 나타낸 지침이다.

DNS 관리 서비스를 제공하는 cloudflare에 다양한 DNS 레코드 정보가 나와있다.

 

대표적인 4가지를 상세히 알아보도록 하자.

 

A record

도메인 주소와 서버의 IP 주소를 직접 매핑하는 방법이다. 

예를 들어, cobinding.com이라는 도메인이 있고 EC2 등에서 설정한 서버의 IP 주소가 1.2.3이라고 가정하자.

가비아, cloudflare같은 서비스를 통해 cobinding.com-1.2.3을 직접 연동해주면, 사용자는 이 도메인 주소를 통해 서비스에 접근할 수 있다.

 

도메인 이름 IP 주소
cobinding.com 1.2.3

 

 

이 A record는 반드시 도메인과 IP가 1:1 매칭이 되는 것은 아니다.

관리자의 설정에 따라, 일대다 / 다대일도 될 수 있다.

 

도메인 이름 IP 주소
cobinding.com 1.2.3
1.2.4
1.2.6

 

 

CNAME record

Canonical Name의 약자로, 도메인 주소를 또 다른 도메인 주소로 매핑시키는 형태의 DNS record 타입이다.

아래 host aliasing을 통해 이 개념을 이해해보자.

 

host aliasing

DNS는 IP- hostname 매핑을 위해서 서버에 도메인 주소와 IP 주소를 쌍으로 저장해둔다.

naver.com 192.168.0.1

dev.naver.com naver.com
google.com 172.17.0.1

 

 

사용자가 요청하면 이 테이블에서 정보 꺼내옴

하나의 행을 레코드(record)라고 하며, 저장되는 타입에 따라 A RecordCNAME으로 구분한다.

  • A Record: 직결 매핑. 도메인 - IP 주소가 그대로 매핑됨
  • CNAME: 사용자가 dev.naver.com을 요청하면 서버는 naver.com을 리턴하고, 사용자는 다시 naver.com을 통해서 192.168.0.1을 응답한다.

 

A RECORD는 서버의 IP 주소를 한 번에 알 수 있지만, IP 주소가 자주 바뀌면 번거로울 수 있다.

CNAME은 IP 주소가 자주 변경되는 환경에서 유연하게 대응할 수 있지만, 실제 IP 주소를 얻기 위해 여러 번 요청해야 한다.

  • IP: 프로세스가 돌고 있는 머신의 Network Interface Card에 부여된 Identity → IPv4, host name(domain name)
  • Port: 실행 중인 프로세스에 접근할 수 있는 문