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

최종 업데이트 날짜: 2019년 9월 27일

Amazon 제공 DNS 서버에 대한 DNS 쿼리가 실패합니다. VPC DNS 조절로 인해 내 인스턴스의 DNS 쿼리가 실패합니까?

간략한 설명

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

VPC 흐름 로그는 애플리케이션이 Amazon에서 제공한 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 기반 인스턴스에서만 사용할 수 있습니다. 트래픽 미러링 요금이 적용됩니다.

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

1.    트래픽 미러링 사전 조건을 완료합니다.
2.    트래픽 미러링 대상을 생성합니다. 대상 탄력적 네트워크 인터페이스 또는 Network Load Balancer가 포트 4789에서 인바운드 트래픽을 허용하는지 확인합니다.
3.    트래픽 미러 필터를 생성합니다. [Filter settings]에서 [Network services – optional]에 대해 amazon-dns가 활성화되어 있는지 확인합니다.
4.    트래픽 미러링 세션을 생성합니다. 트래픽 미러링을 구성한 후에는 미러링된 트래픽이 수집되어 트래픽 미러링 대상에 저장됩니다.

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

1.    [Wireshark]에서 캡처된 트래픽을 엽니다.
2.    [Statistics] 탭을 선택합니다.
3.    [I/O Graph]를 선택하고 모든 옵션을 선택 취소합니다.
4.    (Linux에만 해당) [Display Filter]에서 [VXLAN Network Identifier] 및 [DNS query flag]를 사용하여 필터를 추가합니다. 예를 들어 VXLAN 네트워크 식별자가 53이고 DNS 쿼리 플래그가 0x0100인 경우 그래프의 표시 필터는 (vxlan.vni = = 53)& &(dns.flags = = 0x0100)입니다.
5.    그래프를 검토하여 1024(Amazon이 DNS 서버의 초당 패킷 제한을 제공함) 주위에 직선으로 그려지는지 확인합니다. 그래프가 이 값 주위에서 직선으로 그려지면 DNS 조절이 존재합니다.

DNS 조절 문제 수정

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


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?