Route 53의 지리적 위치 라우팅 문제를 해결하려면 어떻게 해야 하나요?

5분 분량
0

내 DNS 쿼리가 다른 AWS 리전에 있는 웹 서버의 IP 주소를 반환합니다. 예를 들어, 미국에 있는 사용자가 유럽에 있는 웹 서버의 IP 주소로 라우팅됩니다.

해결 방법


Route 53 지리적 위치 라우팅 문제는 다음 문제로 인해 발생합니다.

  • 지리적 위치 라우팅 설정에 기본 위치가 누락되었습니다.

  • DNS 확인자가 EDNS0의 edns0-client-subnet 확장을 지원하지 않습니다. 이로 인해 위치가 부정확하게 결정됩니다.

  • DNS 확인자는 여러 지역에 있습니다.

  • 전역으로 전파되지 않은 리소스 레코드에 DNS 변경 사항이 있습니다.

이 문제를 해결하려면 다음과 같이 하세요.

  1. Route 53 호스트 영역의 리소스 레코드가 사용 사례에 맞도록 올바르게 구성되어 있는지 확인합니다. 또한 기본 리소스 레코드가 설정되어 있는지 확인합니다. Route 53 콘솔에서 Route 53 호스트 영역 구성에 지정된 기본 위치를 확인합니다.

예시: 다음 출력 예시를 보세요.

>> dig images.example.com

; <<>> DiG
9.8.2rc1-RedHat-9.8.2-0.37.rc1.45.amzn1 <<>> images.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR,
id: 51385
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1,
ADDITIONAL: 0

;; QUESTION SECTION
;images.example.com.    IN            A

;; AUTHORITY SECTION:
images.example.com.    60          IN           SOA        ns-1875.awsdns-42.co.uk.awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

;; Query time: 65 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Tue Feb  7 22:02:30 2017
;; MSG SIZE  rcvd: 124

앞의 예에서는 지리적 위치 라우팅 구성에 지정된 기본 위치가 없습니다. 따라서 일치하지 않는 지리적 위치의 경우 DNS 응답은 rcode 필드에 NOERROR를 반환하고 ANSWER 섹션에는 아무런 결과가 없습니다. 이 문제를 해결하려면 지리적 위치 라우팅 구성에 기본 위치를 추가하세요.

  1. DNS 확인자의 IP 주소 범위를 확인하려면 다음 명령을 실행한 다음 출력을 기록합니다.

Linux 또는 macOS에서는 dig를 사용합니다.

for i in {1..10}; do dig +short resolver-identity.cloudfront.net; sleep 11; done;

Windows에서는 nslookup을 사용합니다.

for /l %i in (1,1,10) do (nslookup resolver-identity.cloudfront.net && timeout /t 11 /nobreak)
  1. 다음 명령 중 하나를 사용하여 DNS 확인자가 edns0-Client-Subnet을 지원하는지 확인하고 출력을 기록합니다.

Linux 또는 macOS에서는 dig를 사용합니다.

dig +nocl TXT o-o.myaddr.l.google.com

Windows에서는 nslookup을 사용합니다.

nslookup -type=txt o-o.myaddr.l.google.com

출력의 Answer 섹션에서 반환된 첫 번째 TXT 레코드를 검토합니다. 첫 번째 TXT 레코드 값은 DNS 확인자의 IP 주소입니다. 두 번째 TXT 레코드가 없으면 DNS 확인자가 edns0-client-subnet을 지원하지 않는 것입니다. 두 번째 TXT 레코드가 있으면 DNS 확인자는 edns0-client-subnet을 지원합니다. 확인자가 잘린 클라이언트 서브넷 IP 주소(/24 또는 /32)를 Route 53 권한 있는 이름 서버에 제공합니다. 자세한 내용은 공용 DNS 확인자가 ECS(EDNS 클라이언트 서브넷) 확장을 지원하는지 확인하려면 어떻게 해야 하나요?를 참조하세요.

  1. 검사 도구의 Route 53 테스트 레코드 집합을 사용하여 특정 요청에 반환되는 리소스 레코드를 확인합니다. 자세한 내용은 확인 도구를 사용하여 Amazon Route 53이 DNS 쿼리에 응답하는 방식 확인을 참조하세요.

DNS 확인자가 edns0-client-subnet을 지원하지 않는 경우 도구에서 DNS 확인자 IP 주소를 값으로 지정하세요.

DNS 확인자가 edns0-client-subnet을 지원하는 경우 도구에서 EDNS0 클라이언트 서브넷 IP 주소를 값으로 지정합니다. 추가 옵션을 선택한 다음 서브넷 마스크를 지정합니다. 확인자 IP 주소는 지정하지 마세요.

  1. (선택 사항) 확인 도구에 액세스할 수 없는 경우 dig를 사용하여 호스팅된 영역에 대한 Route 53 권한 이름 서버를 EDNS0-Client-Subnet으로 쿼리합니다. 출력을 사용하여 소스 IP 주소에 대한 권한 있는 지리적 위치 레코드 응답을 확인합니다.
dig geo.example.com +subnet=<Client IP>/24 @ns-xx.awsdns-xxx.com +short
  1. Route 53 이름 서버는 EDNS0의 edns0-client-subnet 확장을 지원하며, 확인자 또는 로컬 DNS 서버는 클라이언트의 소스 IP 서브넷을 기반으로 DNS를 조회하기 위해 DNS 쿼리에 edns0-client-subnet을 추가합니다. 이 데이터가 요청과 함께 전달되지 않으면 Route 53에서는 DNS 확인자의 소스 IP 주소를 사용하여 클라이언트의 위치를 대략적으로 추정합니다. 그런 다음 Route 53에서 확인자 위치의 DNS 레코드를 사용하여 지리적 위치 쿼리에 응답합니다. EDNS0 데이터는 Route 53에 전달되어야 하며 클라이언트는 지리적으로 더 가까운 재귀 이름 서버를 사용해야 합니다. 그렇지 않으면 DNS 쿼리에 잘못된 리소스 레코드를 제공하는 차선책 위치가 생성됩니다.

이 구성을 수정하려면 edns0-client-subnet을 지원하는 재귀 DNS 서버를 변경하세요. DNS를 확인한 다음 출력을 공유합니다. 재귀 DNS 서버가 edns0-client-subnet을 지원하지 않는 경우에는 이를 지원하는 서버를 사용해 보세요. edns0-client-subnet을 지원하는 옵션에는 Google DNS 및 OpenDNS 확인자가 포함됩니다.

  1. MaxMind 웹사이트의 GeoIP 데이터베이스 또는 선호하는 GeoIP 데이터베이스를 사용하여 클라이언트 서브넷 IP 주소의 지리적 위치를 확인합니다. DNS 확인자가 클라이언트의 공용 IP 주소와 지리적으로 가까운지 확인합니다. MaxMind 웹사이트에서 온 응답이나 국가가 Route 53에서 제공한 답변과 일치하지 않으면 Route 53의 프로덕션 지리적 데이터가 오래된 것일 수 있습니다. 오래된 라우팅이 있는 경우 AWS Support에 문의하세요.

  2. OpenDNS 사이트에서 CacheCheck와 같은 도구를 사용하여 DNS 전파에 문제가 있는지 확인합니다.

  3. (선택 사항) 지역 기반 라우팅 레코드가 Route 53 상태 확인과 연결되어 있는지 확인합니다. 그리고 별칭 레코드에 대해 **대상 상태 평가(ETH)**가 설정되어 있는지 확인합니다. 둘 중 하나에 해당하는 경우 Route 53에서 소스 위치와 가장 일치하는 정상 엔드포인트를 반환합니다.

Route 53 콘솔에서 Route 53 상태 검사 상태를 확인하세요. ETH가 켜져 있으면 레코드 엔드포인트의 상태를 확인하세요. Route 53에서는 하나 이상의 백엔드 인스턴스가 정상인 경우 ETH가 켜져 있는 Classic Load Balancer의 엔드포인트를 정상으로 간주합니다. Application Load Balancer 및 Network Load Balancer의 경우, 정상 상태가 되려면 대상이 있는 모든 대상 그룹에 상태가 정상인 대상이 최소 하나가 있어야 합니다. 등록된 대상이 없는 대상 그룹은 정상적이지 않은 것으로 간주됩니다. 대상 그룹에 정상적이지 않은 대상만 포함된 경우 해당 로드 밸런서는 정상적이지 않은 것으로 간주됩니다.

예시: 미국 텍사스, 미국, 북미 및 모든 위치에 대한 레코드가 있습니다(기본값 위치). 그리고 텍사스에 비정상적인 엔드포인트를 가진 쿼리가 있습니다. Route 53에서는 정상 엔드포인트가 있는 레코드를 발견할 때까지 미국, 북미, 모든 위치를 순서대로 확인합니다. 미국 레코드가 정상인 경우 Route 53에서 이 엔드포인트를 반환합니다. 그렇지 않으면 Route 53에서는 기본 레코드를 반환합니다. 해당 레코드가 모두 정상적이지 않은 경우 Route 53에서는 가장 작은 지리적 영역에 대한 레코드 값을 사용하여 DNS 쿼리에 응답합니다.

참고: 별칭이 지정된 지리적 위치 리소스 레코드를 변경하면 전파하는 데 최대 60초가 걸릴 수 있습니다.

관련 정보

Route 53 상태 검사에서 비정상이 나타나는 문제를 해결하려면 어떻게 해야 하나요?

"대상 상태 평가"를 사용할 때 Application Load Balancer를 가리키는 별칭 레코드가 비정상 상태로 표시되는 이유는 무엇인가요?

Amazon Route 53의 DNS 응답 확인

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음