네트워크

[네트워크]EDNS Client Subnet (ECS)

seongw00 2026. 5. 31. 03:43

1. 개요 (Overview)

EDNS Client Subnet(ECS)은 DNS(Domain Name System) 쿼리에 클라이언트의 IP 서브넷(Subnet) 정보를 포함하여 전송할 수 있도록 지원하는 DNS 확장 프로토콜(Extension Mechanisms for DNS)입니다.

기존 DNS가 '요청을 보낸 DNS 서버'의 위치를 기준으로 응답했다면, ECS는 '실제 요청을 보낸 사용자(Client)'의 위치를 기반으로 가장 가까운 서버의 IP를 반환할 수 있도록 돕습니다. 주로 글로벌 서비스의 GSLB(Global Server Load Balancing)CDN(Content Delivery Network) 최적화에 핵심적으로 사용됩니다.

2. 등장 배경: 기존 DNS의 한계

ECS가 등장하기 전, GSLB나 CDN은 사용자의 위치를 파악하기 위해 네임서버(Authoritative DNS)에 인입된 요청의 출발지 IP를 확인했습니다. 하지만 이 방식에는 치명적인 문제가 있었습니다.

  • Recursive DNS 서버 기준의 처리: 네임서버가 보는 IP는 실제 사용자의 IP가 아니라, 사용자가 거쳐 온 Public/ISP의 Recursive DNS(전달자) IP입니다.
  • 지리적 미스매치(Mismatch) 발생: 만약 한국에 있는 사용자가 구글 Public DNS(8.8.8.8, 미국 또는 타 지역 노드)나 별도의 VPN DNS를 사용한다면, GSLB는 사용자가 미국에 있다고 오판하여 미국 서버의 IP를 반환하게 됩니다. 결과적으로 사용자는 엄청난 네트워크 지연(Latency)을 겪게 됩니다.

3. ECS의 동작 원리 (How it Works)

ECS는 DNS 쿼리의 패킷 구조를 확장하여, 클라이언트의 실제 IP 주소 중 앞부분(서브넷 마스크, 보통 IPv4의 경우 /24 Prefix)을 포함하여 네임서버로 전달합니다. privacy 보호를 위해 전체 IP(192.168.1.45) 대신 대략적인 지역을 알 수 있는 서브넷(192.168.1.0/24)만 보냅니다.

sequenceDiagram
    autonumber
    actor Client as 사용자 (KTLine, 서울)
    participant RecDNS as Public DNS (예: 8.8.8.8)
    participant AuthDNS as GSLB / 네임서버

    Client->>RecDNS: DNS Query (www.example.com)
    Note over RecDNS: 클라이언트가 서울 IP임을 확인<br/>ECS 옵션 추가 (/24 서브넷)
    RecDNS->>AuthDNS: DNS Query + [ECS: 사용자 서브넷 정보 포함]
    Note over AuthDNS: "아, 미국 DNS가 보냈지만<br/>실제 사용자는 서울이구나!"
    AuthDNS->>RecDNS: 서울 CDN Edge 서버 IP 반환
    RecDNS->>Client: 서울 CDN Edge 서버 IP 전달
  1. 사용자 요청: 사용자가 특정 도메인을 요청합니다.
  2. 서브넷 추가: ECS를 지원하는 Recursive DNS(예: Google Public DNS, Cloudflare 등)는 사용자의 IP 서브넷 정보를 DNS 쿼리의 EDNS0 OPT 레코드에 삽입합니다.
  3. 네임서버 판단: 지리적 기반 라우팅을 수행하는 네임서버(GSLB)는 이 서브넷 정보를 보고, 미국 DNS 서버와 통신하고 있더라도 실제 사용자와 가장 인접한 리전(서울)의 서버 IP를 찾아 응답합니다.

4. EDNS Client Subnet의 장단점

장점 (Advantages)

  • 네트워크 지연 시간(Latency) 최소화: 사용자가 전 세계 어디에 있든 가장 물리적·네트워크적으로 가까운 CDN Edge나 데이터 센터로 연결됩니다.
  • Public DNS 활용성 극대화: 8.8.8.8이나 1.1.1.1 같은 고성능 Public DNS를 사용하더라도 대형 포털이나 OTT 서비스 이용 시 속도 저하가 발생하지 않습니다.

단점 및 고려사항 (Disadvantages & Challenges)

  • 개인정보 보호(Privacy) 이슈: 사용자의 대략적인 위치(서브넷) 정보가 중간 DNS 서버들을 거쳐 최종 네임서버까지 전달되므로, 프라이버시 민감 관점에서 논쟁이 있습니다. (이를 이유로 Apple의 iCloud Private Relay 등 일부 보안 서비스는 ECS를 의도적으로 제한합니다.)
  • DNS 캐시 효율 저하 (Cache Fragmentation): 기존에는 www.example.com에 대한 캐시를 하나만 들고 있으면 모든 사용자에게 줄 수 있었습니다. 하지만 ECS를 쓰면 서브넷별(지역별)로 캐시를 따로 관리해야 하므로, Recursive DNS 서버의 메모리 부담이 커지고 캐시 적중률(Hit Rate)이 떨어질 수 있습니다.

5. 결론

EDNS Client Subnet(ECS)은 DNS의 '전달자(DNS 서버)' 주소 대신 '실제 발신자(클라이언트)'의 서브넷 주소를 GSLB에 전달하여, 사용자 맞춤형 최적의 라우팅 경로를 제공하는 기술입니다. 현대 글로벌 인프라와 CDN 환경에서 사용자 경험(UX) 향상을 위한 필수적인 축으로 자리 잡고 있습니다.