Amazon에서 제공한 DNS 서버에 대한 내 DNS 쿼리가 VPC DNS 제한으로 인해 실패하는지 확인하려면 어떻게 해야 합니까?

4분 분량
0

Amazon 제공 DNS 서버에 대한 DNS 쿼리가 실패했거나 시간 초과되었습니다. VPC DNS 제한으로 인해 내 인스턴스의 DNS 쿼리가 실패합니까?

간략한 설명

Amazon에서 제공하는 DNS 서버는 탄력적 네트워크 인터페이스(ENI)당 초당 1,024개 패킷 제한을 적용합니다. Amazon에서 제공하는 DNS 서버는 이 한도를 초과하는 트래픽을 거부합니다.

VPC 흐름 로그는 애플리케이션이 Amazon에서 제공한 DNS 서버로 전송하는 트래픽을 캡처하지 않습니다. 패킷 캡처 또는 트래픽 미러링을 사용하여 DNS 쿼리 실패의 원인을 식별할 수 있습니다.

참고: Amazon Route 53 쿼리 로깅은 VPC.2 해석기 (AmazonProvidedDNS) 에 도달하는 트래픽만 캡처합니다. 그러나 DNS 쿼리는 탄력적 네트워크 인터페이스 수준에서 제한됩니다. 따라서 제한된 쿼리는 쿼리 로깅에 나타나지 않습니다.

해결 방법

먼저 다음 방법 중 하나를 사용하여 DNS 쿼리 실패의 원인을 식별합니다. 그런 다음 원인이 DNS 제한인 것으로 확인되면 아래에 설명된 권장 수정 방법 중 하나를 사용하십시오.

DNS 쿼리 실패의 원인을 파악합니다.

옵션 # 1: tcpdump 사용(Linux만 해당)

1.    다음 명령을 사용하여 EC2 인스턴스에서 교체 패킷 캡처를 수행합니다. 다음 명령은 패킷의 초기 350바이트를 캡처하고 이전 패킷 캡처를 덮어쓰면서 각각 100MB의 파일 20개를 저장합니다.

sudo tcpdump -i eth0 -s 350 -C 100 -W 20 -w /var/tmp/$(curl http://169.254.169.254/latest/meta-data/instance-id).$(date +%Y-%m-%d:%H:%M:%S).pcap

2.    다음 Linux 명령을 실행하여 전송된 DNS 쿼리 수를 확인합니다.

tcpdump  -r <file_name.pcap> -nn dst port 53 | awk -F " " '{ print $1 }' | cut -d"." -f1 | uniq -c

3.    DNS 쿼리 수가 초당 1,024보다 크거나 같으면 추가 쿼리에 병목 현상이 발생합니다.

옵션 # 2: 트래픽 미러링 사용

사용 사례에서 tcpdump를 사용할 수 없는 경우 트래픽 미러링을 활용하여 DNS 쿼리가 제한됐는지 확인할 수 있습니다.

참고: 트래픽 미러링은 Nitro 기반 인스턴스Nitro 이외의 인스턴스 유형에 사용할 수 있습니다. 트래픽 미러링 요금이 적용됩니다.

먼저 트래픽 데이터를 캡처합니다.

1.    트래픽 미러링 사전 조건을 완료합니다.

2.    트래픽 미러링 대상을 생성합니다. 대상 탄력적 네트워크 인터페이스 또는 Network Load Balancer가 포트 UDP 4789에서 인바운드 트래픽을 허용하는지 확인합니다.

3.    트래픽 미러링 필터를 생성합니다. [Filter settings]에서 [Network services – optional]에 대해 amazon-dns가 활성화되어 있는지 확인합니다.

4.    트래픽 미러링 세션을 생성합니다. 트래픽 미러링을 구성한 후에는 미러링된 트래픽이 수집되어 트래픽 미러링 대상에 저장됩니다.

참고: 트래픽 미러링은 실시간 데이터 스트림입니다. 대상에서 들어오는 미러링된 패킷을 캡처하고 pcap 파일에 저장하려면 UDP 포트 4789를 사용하여 트래픽을 캡처합니다.

그런 다음 Wireshark를 사용하여 캡처된 데이터를 분석합니다.

1.    [Wireshark]에서 캡처된 트래픽을 엽니다.

2.    [Statistics] 탭을 선택합니다.

3.    [I/O Graph]를 선택하고 모든 옵션을 선택 취소합니다.

4.    (Linux에만 해당) [Display Filter]에서 [VXLAN Network Identifier] 및 [DNS 쿼리 플래그]를 사용하여 필터를 추가합니다. 예를 들어 VXLAN 네트워크 식별자가 53이고 DNS 쿼리 플래그가 0x0100인 경우 그래프의 표시 필터는 **(vxlan.vni = = 53)****& &(dns.flags = = 0x0100)**입니다.

5.    그래프를 검토하여 1024 (Amazon 제공 DNS 서버 초당 패킷 수 제한) 주위에 직선으로 그려지는지 확인합니다. 그래프가 이 값을 중심으로 평탄한 경우 미러링된 소스에서 DNS 제한이 발생합니다.

옵션 3: Elastic Network Adapter(ENA) 드라이버 네트워크 성능 지표

EC2 인스턴스가 다음 ENA 드라이버 버전 중 하나를 실행 중인 경우 linklocal_allowance_exceeded 측정치를 사용하여 DNS 제한에 대한 실시간 지표를 검토할 수 있습니다.

  • 리눅스: 2.2.10 이상
  • 윈도우: 2.2.2.0 이상

linklocal_allowance_exceeded 지표는 PPS 속도 허용치가 로컬 서비스를 초과하여 형성되고 삭제된 패킷 수를 나타냅니다. 로컬 서비스의 예로는 Amazon VPC DNS Service, Instance Metadata Service (IMDS) 및 Amazon Time Sync Service가 있습니다. 이 지표를 여러 간격을 기준으로 확인하여 카운트가 증가하고 있는지 확인할 수 있습니다. 이 지표는 드라이버를 마지막으로 다시 시작한 이후 누적되므로 (일반적으로 인스턴스의 중지 및 시작 또는 재부팅으로 인해) 이 지표는 증가하는 경우에만 중요합니다.

지표 linklocal_allowance_exceeded 값을 검색하려면 다음 명령을 실행합니다.

ethtool -S eth0

DNS 제한 문제 해결

DNS 실패의 원인이 DNS 조절인 경우 다음을 수행할 수 있습니다.

  • 인스턴스에서 DNS 캐싱 활성화
  • 애플리케이션에서 DNS 재시도 타이머를 증가시킵니다.

관련 정보

트래픽 미러링 할당량 및 고려 사항

트래픽 미러링 작업

EC2 인스턴스의 네트워크 성능 모니터링

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