소개
이 문서에서는 ECS(EDNS 클라이언트 서브넷) 및 Cisco Umbrella와 함께 작동하는 방식에 대해 설명합니다.
ECS란?
기존 DNS는 단일 A 레코드 응답으로 응답하는 DNS 서버의 요청입니다. 이 논의는 A 레코드만 논의함으로써 간소화된다. IPv6 및 AAAA 레코드에도 동일한 프로세스가 적용됩니다. 광범위하게 분산된 CDN(Content Delivery Network) 및 재귀적 DNS 서비스가 등장함에 따라 최적의 환경을 위해 지리적 위치가 점점 더 중요해지고 있습니다.
기존 DNS는 권한 있는 DNS 서버에서 DNS 질문에 대한 답을 찾고 그 답으로 DNS 쿼리의 소스와 가장 일치하는 답을 제공합니다. 은유적인 예를 들자면, 전화 번호부를 예로 들어보자. 전통적으로, 관련 있는 유일한 전화 번호부는 지역 전화 번호부였고, 그래서 당신은 항상 지역 상점을 찾을 수 있습니다. "Call Jim's hardware store" 쿼리 단일 웹 주소가 전 세계적으로 많은 위치를 차지하고 있는 오늘날, 가까운 서버에 연결하는 좋은 환경이 반드시 필요합니다. 재귀적 DNS 서버 및 더 분산된 네트워크의 경우, DNS 쿼리의 소스 IP가 반드시 최상의 지오로케이션 데이터 소스가 되는 것은 아닙니다.
그림 2: New Jersey의 사용자가 권한 있는 DNS에서 답을 찾는 경우 예

우리의 전화번호부에 비유하자면, 사업체는 전 세계에 50개의 지점을 가지고 있지만, 독자로서 여러분은 가장 가까운 곳이 무엇인지 알고 그들을 부른다. Jim은 잘 해왔습니다. 그래서 "Jim의 철물점에 전화해 달라"는 우리의 질문은 당신이 누구에게 묻는가에 따라 New Jersey 상점이나 Chicago 상점으로 당신을 데려올 수도 있습니다. ECS는 DNS 조회를 위해 동일한 서비스를 수행합니다. ECS(EDNS 클라이언트 서브넷)는 DNS 패킷의 EDNS 정보 내에 포함할 DNS 쿼리의 원하는 소스 IP 주소에 대한 메커니즘입니다. ECS를 지원하는 신뢰할 수 있는 DNS 서버는 이 소스 정보를 읽고 가장 잘 위치한 서버의 A 레코드로 응답합니다. 전화번호부 은유에서 ECS는 어떤 영역의 전화번호부를 조사할지 지정하는 메모와 같습니다. 이 요청은 "NJ의 벨비데레에 있는 짐의 철물점에 전화를 걸어 주십시오."가 되며 이상적인 답변을 제공할 수 있습니다. 자세한 내용은 umbrella.cisco.com의 ECS 프로젝트 홈 페이지를 참조하십시오.
ECS 및 재귀 DNS 서버
Cisco Umbrella는 다른 재귀적 DNS 서비스와 마찬가지로 DNS 기반 위치 지정의 과제입니다. 일반적으로 사용자는 DNS 권한을 쿼리하는 ISP에서 DNS를 요청합니다. 이는 ISP의 네트워크 IP 범위에 대해 기본적으로 양호한 지리적 위치를 제공합니다.
재귀적 DNS 제공자는 ISP의 네트워크 외부에 있으며 어디에나 위치할 수 있습니다. Cisco Umbrella는 애니캐스트 IP 주소에서 여러 데이터 센터를 운영하며, DNS 쿼리는 전 세계의 다양한 확인자 위치 중 하나에 도달할 수 있습니다. 가장 가까운 위치를 가장 자주 쿼리합니다. 그러나 이는 각 ISP의 최적 경로에 따라 달라집니다. 가장 중요한 것은 CDN과 같이 광범위하게 분산된 웹 서비스의 경우, 가장 가까운 Umbrella 해결 프로그램이 요청자의 위치에 대해 네트워크상 가깝지 않을 수 있으며 이에 대한 응답으로 열악한 CDN 서버를 수신할 수 있다는 것입니다. 예를 들어, 코스타리카의 사용자는 Cisco Umbrella의 Miami 데이터 센터에 접속하여 Miami CDN에서 콘텐츠를 제공받을 수 있습니다. 전화번호부 은유에 있어서 이것은 교환원에게 전화를 걸어 짐의 하드웨어 번호를 요청하는 것과 같습니다. 오퍼레이터가 있는 위치를 기준으로 해당 지역을 기준으로 답변을 받습니다. 시카고는 휘튼의 짐 가방을 돌려주고, 마이애미는 사우스 비치의 짐 가방을 돌려줄 수 있습니다.
그림 2: Cisco Umbrella에서 답을 찾는 뉴저지의 사용자의 예

원래 소스 서브넷을 통해 ECS를 통해 CDN의 신뢰할 수 있는 DNS 인프라로 전달할 수 있으므로 ECS는 재귀적 DNS 제공자의 CDN에 매우 중요합니다. ECS 지원 네임서버에 대한 Umbrella를 통한 쿼리에는 권한 있는 DNS 쿼리에 대한 요청 사용자(/24 CIDR 블록)의 클래스 C 네트워크 및 관련 응답을 반환 및 캐시하는 기능(TTL에 따라)이 포함됩니다. 전화번호부 은유를 위해 교환원에게 전화를 걸어 코스타리카 산 호세 근처에 있는 짐의 하드웨어를 요청합니다. 마이애미의 교환원은 산페드로에 있는 짐의 전화번호로 답장할 것이다.
결론적으로, ECS를 사용하면 사용자가 전 세계 어디서나 네임 서버를 쿼리할 수 있으며 멀리 있는 재귀적 DNS 서버(ECS 지원)를 사용하더라도 소스 위치에 따라 사용자 지정 응답을 받을 수 있습니다. 그 결과, 지원되는 모든 DNS 서비스를 통해 전 세계 어디서나 가능한 가장 빠른 CDN 서버가 탄생했습니다.
ECS 및 Cisco Umbrella
Cisco Umbrella는 네임서버 소유자를 위한 옵트인 기반으로 권한 있는 DNS 리졸버용 ECS를 지원합니다. 많은 CDN이 Umbrella 사용자를 위해 빠르고 정확한 지오로케이션을 즐기는 반면, 일부 CDN과 서비스는 아직 ECS를 지원하지 않습니다.
아직 ECS를 활용하지 않는 서비스를 알고 계십니까? CDN 네트워크에 문의하여 ECS 구현에 대해 문의하십시오. Umbrella에서 ECS 데이터를 전송하려면 먼저 인증 네임 서버에서 ECS를 지원해야 합니다.
사이트 소유자는 현재 ECS를 사용하고 있는 경우 umbrella-support@cisco.com으로 연락을 주시면 구현을 확인하고 Cisco Umbrella에서 ECS 데이터를 받기 시작합니다! IPv6 및 IPv4 ECS 데이터가 지원됩니다. 유효성을 검사할 이름 서버 목록(이름별)과 유효성을 검사할 도메인 목록을 포함합니다.
Dig에서 ECS 사용
Dig가 9.10 버전부터 DNS 쿼리에서 ECS를 기본적으로 지원한다는 사실을 알고 계십니까? 권한 있는 네임서버에 대해 직접 dig에 "+subnet=<subnet>"을 추가합니다. Umbrella를 직접 쿼리하면 이 데이터가 삭제되고 소스 /24로 대체됩니다. 자세한 내용은 여기에서 문서를 참조하십시오. https://support.opendns.com/hc/en-us/articles/227987687
dig +subnet=208.67.222.0/24 <domain> @<nameserver>
네임서버가 ECS 데이터를 사용하는지 확인하려면 응답에서 이 하위 섹션을 찾습니다.
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; CLIENT-SUBNET: 208.67.222.0/24/32
권한 있는 네임서버 소유자
네임 서버에서 ECS를 사용하고 있으며, 전 세계 Cisco Umbrella 사용자를 위한 잠재력을 실현할 방법을 찾고 계십니까? 귀사의 네임 서버에 ECS 데이터를 전송할 수 있도록 umbrella-support@cisco.com에서 알려주십시오. 네임서버 도메인 목록과 ECS가 활성화된 샘플 도메인(컨피그레이션 검증에 사용할 수 있음)을 요청에 포함시킵니다. 함께 더 빠른 인터넷을 구축해 봅시다.