본문 바로가기
OS & Network/Network

DNS, GSLB, CDN

by 코딩공장공장장 2025. 5. 2.

DNS(Domain Name System)


도메인 이름을 IP 주소로 변환해주는 시스템

 

DNS의 구성요소

  • 도메인 네임 스페이스
    도메인에 해당하는 IP를 찾기 위해 사용하는 규칙(닷을 기준으로 계층적 구조를 이룸)

  • 네임 서버
    도메인 정보에 대응하는 IP를 관리하는 서버
    계층 구조로 이루어져 있으며 상위 계층은 하위계층의 IP주소를 반환하고 최하위 SLD에서 IP 주소를 반환함

  • 리졸버
    DNS Query를 DNS 서버에 요청하거나 응답을 캐싱

 

DNS 서버의 계층 구조


[계층 구조에 따른 분류]

1. Root DNS Server

  • 설명: DNS 계층 구조의 최상단에 있는 서버입니다.
  • 역할: 사용자가 요청한 도메인의 **최상위 도메인(.com, .net, .kr 등)**에 해당하는 **TLD 서버의 위치(IP)**를 알려줍니다.
  • 예시: http://www.example.com 요청 시, .com TLD 서버를 안내합니다.
  • 전 세계에 약 13개 루트 서버 그룹이 존재하며, 알파벳 A~M으로 식별됩니다 (예: a.root-servers.net)

2. Top-Level Domain (TLD) DNS Server

  • 설명: .com, .org, .net, .kr 같은 최상위 도메인을 담당하는 서버입니다.
  • 역할: 해당 TLD 하위의 도메인을 관리하는 **SLD(Name Server)**의 정보를 제공합니다.
  • 예시: .com TLD 서버는 example.com 도메인을 관리하는 권한 DNS 서버를 알려줍니다.

3. Second-Level Domain (SLD) DNS Server

  • 설명: 보통 우리가 구입하고 사용하는 도메인 이름을 관리합니다 (example.com, naver.com 등)
  • 역할: 이 서버는 해당 도메인의 실제 IP 주소를 알고 있으며 응답합니다.
  • 운영 주체: 보통 도메인 소유자가 직접 설정한 네임서버(예: AWS Route53, Cloudflare, 카페24 등)

* 위의 3가지 DNS 서버는 계층 구조를 중심으로 분리한 개념이다.

 

 [역할에 따른 분류]

Authoritative DNS Server (권한 있는 DNS 서버)

  • 실제로 도메인에 대한 최종 응답을 내리는 DNS 서버입니다.
  • 최종적으로 IP 주소를 반환하는 권한을 갖고 있기에 Authoritative라는 의미가 붙은 것이지 인증 절차를 수행하는 것은 아니다.
  • 주로 SLD 서버와 같거나 포함될 수 있으며, 도메인 소유자가 직접 설정한 레코드를 관리합니다.
  • 역할: example.com이라는 도메인의 정확한 IP 주소를 반환합니다.
  • 예: http://www.example.com → 93.184.216.34 이런 식으로 응답합니다.

 

[DNS 요청 흐름 과정]

1. 클라이언트 : 도메인 요청

2. ISP에서 Root DNS Server 주소 반환

3. Root DNS Server가 TLD DNS Server 주소 반환

4. TLD DNS Server에서 SLD DNS Server 반환

5. SLD DNS Server가 IP 주소 반환

 

우리가 도메인을 구매할 때 제공해주는 NS 서버가 SLD DNS Server이다.

우리가 제공하는 서버에 NS 서버를 연결하는 절차가 SLD에서 반환할 IP를 등록하는 절차이다.

도메인 판매자가 제공하는 NS 서버는 TLD DNS Server에 등록되어있고 

이 TLD DNS Server가 Root DNS Server에 등록 되어있기에 요청이 전달 될 수 있는 것이다.

 

DNS Resolver


사용자의 도메인 요청을 계층화된 DNS 서버에 대신 요청을 하며 IP주소를 찾아주는 클라이언트 측 컴포넌트이다.

계층화된 DNS 서버는 하위 계층으로 요청을 전달하지 않는다.

클라이언트에 응답을 반환하고 클라이언트에서 하위 DNS 서버에 요청을 지속적으로 전달해야한다.

 

Recursive Resolver라고도 불리움

사용자 PC나 ISP(인터넷 서비스 제공자) 또는 로컬 네트워크 영역에 존재한다.

 

도메인을 IP 주소로 변환하는 과정을 아래와 같은 과정을 거친다.

  1. DNS Reslover -> Root DNS Server
  2. DNS Resolver -> TLD DNS Server
  3. DNS Resolver -> SLD DNS Server

각 계층에서 접근해야할 하위 계층의 주소를 알려주고 최종적으로 SLD에서 ip 주소를 제공해준다.

DNS Resolver의 위와 같은 처리방식으로 인해 Recursive Query(재귀적 호출)라고 한다.

 

DNS Query

도메인 이름에 대한 정보(IP 주소 등)를 얻기 위해 DNS 서버에 보내는 요청

 

[DNS Query의 종류]
재귀적 질의 (Recursive Query)

  • Resolver가 끝까지 책임지고 IP를 찾아 클라이언트에 알려줌
  • 사용자는 결과만 받음
  • 주로 사용자 → DNS Resolver 간 통신에서 사용됨

 

반복적 질의 (Iterative Query)

  • Resolver가 단계적으로 Root → TLD → SLD/Authoritative DNS 서버에 질의
  • 주로 Resolver → DNS 서버 간 통신에서 사용됨

pc가 resolver에게 요청하면 reslover가 최종 응답을 전달해주는 경우는 재귀적 질의라고 하고

resolver의 요청은 반복적으로 요청하니까 반복적 질의라고 함

 

DSN Resolver와 Local DNS Server의 차이


둘 다 DNS 질의와 캐시 기능을 담당한다는 공통점이 있음

 

DNS Resolver

DNS Resolver는 일반적으로 사용자의 컴퓨터나 모바일 디바이스에 포함되어 있으며,

사용자가 도메인 이름을 입력하면 해당 Resolver는 DNS 쿼리를 생성하고, 이를 인터넷 상의 다른 DNS 서버에 전송한다.

즉, Resolver는 사용자의 컴퓨터와 DNS 서버 사이의 중개자 역할을 한다.

 

Local DNS Server

Local DNS Server는 네트워크에서 사용되며, 일반적으로 기업, 학교, 공공기관 등에서 사용된다.

Local DNS Server는 네트워크 내에서 DNS 쿼리를 처리하고, 이를 인터넷 상의 다른 DNS 서버에 전달한다.

또한 Local DNS Server는 네트워크 내에 캐시된 DNS 정보를 저장하며,

이를 사용하여 네트워크 내 모든 사용자의 DNS 쿼리를 빠르게 처리할 수 있다.

 

성능 측면에서 Local DNS Server는 DNS Resolver 보다 더 높은 처리량을 처리할 수 있으며, 다양한 DNS 정보를 캐시하여 더 빠른 DNS 쿼리 응답을 제공한다.

 

ISP(Internet Service Provide)


인터넷 서비스 제공자로 사용자에게 인터넷 접속 서비스 환경 제공, IP 제공, IP 경로 제공 등을 진행하며

DNS 과정 중 첫번째 과정인 DNS Resolver를 제공한다.

 

도메인에 대한 IP를 질의하고 캐싱 처리를 제공한다.

 

GSLB (Global Server Load Balancing)


GSLB는 글로벌하게 분산된 서버의 부하를 균형있게 분산시켜주는 기술이다.

DNS를 기반으로 동작하며 조금더 발전된 형태이다.

Secondary domain level에서 헬스체크나 위치기반, latency 기반으로 ip 주소를 반환하여 클라이언트의 요청을 분산한다.

 

DNS의 Secondary Level에서는 헬스체크를 수행한다거나 위치기반으로 가장 가까운 IP 주소를 반환하는 기능은 없다.

단순히 라운드 로빈 방식을 통해 보유한 IP주소를 번갈아가며 반환해주는 방식이다.

GSLB는 헬스체크를 하여 응답 가능한 서버, 응답시간을 기준으로 가중치를 두어 응답시간이 빠른 IP를 반환하여 연결 시켜줄 수 있다.

DNS는 서버의 가용성이나 접근성에 대한 고려는 전혀 없는 방식이다.

 

계층 구조의 DNS를 이해했다면 GSLB의 이해도 쉬워진다.

GSLB는 Secondary Level에서 사용되는 SLD 대신 사용되는 DNS라고 생각하면된다.

차이는 위에서 말한것 처럼 헬스체크와 위치기반 IP 반환을 통해 가용성과 접근성을 고려한 IP를 제공해준다는 것이다.

 

GSLB 등록 방식


GSLB의 개념을 어렵게 생각하지 말자.

기존 DNS 계층 구조에서 SLD 레벨에서만 GSLB의 기능이 추가되면 된다.

 

우리가 도메인을 구매하고 ip와 도메인을 연결할 때, NS 서버를 등록한다.

이 NS서버를 등록하는 것은 SLD를 등록하는 것이다.

SLD에 GSLB를 등록하거나 기존 SLD 서버가 있다면 GSLB에서 제공하는 기능을 추가하면 된다.
AWS에서는 GSLB 기능을 추가할 수 있다.

https://brunch.co.kr/@topasvga/30

 

[등록 방식]

도메인의 NS서버를 GSLB로 등록

서브 도메인을 분류하지 않고 모든 도메인의 NS 서버에 GSLB 기능을 탑재하면 된다.

 

도메인의 특정 레코드만 GSLB로 등록

  • CNAME 활용
    - CNAME을 활용하여 GSLB로 사용할 대표 도메인을 지정하고 각 서버를 해당 도메인에 연결하면 된다.
    - 단순하게 GSLB 도메인 하나 설정해놓고 다른 서버 연결만 하면 편리하게 GSLB 등록 가능함

  • NS 서버 위임
    - 특정 FQDN에 대한 NS 서버를 GSLB로 설정
    - GSLB 이용할 도메인만 등록할 수 있음
FQDN이란
호스트와 도메인 주소를 합친 전체 도메인 주소
ex)www.naver.com, m.naver.com 

 

 

예시. AWS에서는 아래와 같이 GSLB에서 제공하는 기능을 NS서버에 설정할 수 있다.

 

 

CDN(Content Delivery Network)


GSLB가 클라이언트의 요청을 응답하는 서버와의 직접적인 연결을 load balancing하는 개념이라면

CDN은 전 세계에 분산된 서버(엣지 서버 또는 캐시 서버)를 통해 사용자에게 정적 콘텐츠를 더 빠르게 전달하는 기술이다.

 

서버를 분산시켜 캐싱해두고 사용자의 컨텐츠 요청이 들어오면 사용자와 가장 가까운 위치에 존재하는 서버로 매핑시켜 요청된 콘텐츠의 캐싱된 내용을 내어주는 방식으로 빠르게 데이터를 전송할 수 있게 된다.

 

CDN 캐싱 방식

Static Caching

  • Origin Server 에 있는 Content를 운영자가 미리 Cache Server에 복사 해두어 사용자가 Cache Server에 Content 요청 시 무조건 Cache Server에 있다
  • 대부분의 국내 CDN에서 이 방식을 사용 (게임 클라이언트 다운로드 등)

Dynamic Caching

  • Origin Server에 있는 Content를 운영자가 미리 Cache Server에 복사하지 않음
  • 사용자가 Content를 요청 시 해당 Content가 없는 경우 Origin Server로부터 다운로드 받아 전달한다. 있는 경우에는 캐싱된 Content전달
  • 각각의 Content는 일정 시간 이후 Cache Server에서 삭제 될 수도 있다.
반응형

'OS & Network > Network' 카테고리의 다른 글

HTTP 통신 깊게 알아보기  (0) 2023.08.16
TCP 깊게 이해하기  (0) 2023.08.15