¿Cómo puedo determinar si mis consultas de DNS al servidor DNS proporcionado por Amazon dan error debido a la limitación de DNS de la VPC?

5 minutos de lectura
0

Mis consultas de DNS al servidor DNS proporcionado por Amazon dan error o vence el tiempo de espera. ¿Las consultas de DNS de mi instancia dan error debido a la limitación de DNS de la VPC?

Breve descripción

Los servidores DNS proporcionados por Amazon imponen un límite de 1024 paquetes por segundo por interfaz de red elástica. Los servidores DNS proporcionados por Amazon rechazan cualquier tráfico que supere este límite.

Los registros de flujo de VPC no capturan el tráfico que su aplicación envía a los servidores DNS proporcionados por Amazon. Puede utilizar las capturas de paquetes o la creación de reflejo de tráfico para identificar la causa de los errores en las consultas de DNS.

Nota: El registro de consultas de Amazon Route 53 captura solo el tráfico que llega al solucionador VPC.2 (AmazonProvidedDNS). Sin embargo, las consultas de DNS se limitan a nivel de interfaz de red elástica. Por lo tanto, las consultas limitadas no aparecen en el registro de consultas.

Resolución

En primer lugar, utilice uno de los métodos siguientes para identificar el origen de los errores en las consultas de DNS. A continuación, si determina que la causa es la limitación del DNS, utilice una de las siguientes soluciones recomendadas.

Determinar el origen de los errores de consulta de DNS

Opción 1: Usar tcpdump (solo en Linux)

1.Utilice el siguiente comando para realizar capturas rotativas de paquetes en su instancia de EC2. El siguiente comando captura los 350 bytes iniciales del paquete y guarda 20 archivos de 100 MB cada uno mientras sobrescribe las capturas de paquetes antiguas.

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.    Ejecute el siguiente comando de Linux para determinar el número de consultas de DNS enviadas.

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

3.Si el número de consultas de DNS es superior o igual a 1024 por segundo, se limitan las consultas adicionales.

Opción 2: Usar la creación de reflejo de tráfico

Si no es posible utilizar el tcpdump en su caso de uso, puede utilizar la creación de reflejo de tráfico para identificar si las consultas de DNS están limitadas.

Nota: La creación de reflejo de tráfico está disponible para instancias basadas en Nitro y tipos de instancias que no son de Nitro. Se aplican cargos por la creación de reflejo de tráfico.

Primero, capture los datos de tráfico:

1.Complete los requisitos previos de la creación de reflejo de tráfico.

2.Cree un destino de creación de reflejo de tráfico. Confirme que la interfaz de red elástica de destino o el equilibrador de carga de red permite el tráfico entrante en el puerto UDP 4789.

3.Cree un filtro de creación de reflejo de tráfico. Para la configuración del filtro, confirme que amazon-dns está habilitado para los servicios de red (opcional).

4.Cree una sesión de creación de reflejo de tráfico. Tras configurar la creación de reflejo de tráfico, el tráfico reflejado se recopila y almacena en el destino de la creación de reflejo de tráfico.

Nota: La creación de reflejo de tráfico es una transmisión de datos en directo. Para capturar los paquetes reflejados que llegan al destino y guardarlos en un archivo pcap, capture el tráfico con el puerto UDP 4789.

A continuación, analice los datos capturados con Wireshark:

1.Abra el tráfico capturado en Wireshark.

2.Seleccione la pestaña Estadísticas.

3.Seleccione el gráfico de E/S y borre todas las opciones.

4.(Solo para Linux) En Mostrar filtro, añada un filtro con el identificador de red VXLAN y el marcador de consulta de DNS. Por ejemplo, si el identificador de red VXLAN es 53 y el marcador de consulta de DNS es 0x0100, el filtro de visualización del gráfico es (vxlan.vni == 53) && (dns.flags == 0x0100).

5.Revise el gráfico para comprobar que las líneas se mantienen estables en torno a 1024 (el límite de paquetes por segundo del servidor DNS proporcionado por Amazon). Si las líneas del gráfico se mantienen estables en torno a ese valor, entonces se está produciendo una limitación del DNS en la fuente reflejada.

Opción 3: Métrica de rendimiento de red del controlador Elastic Network Adapter (ENA)

Si su instancia de EC2 ejecuta una de las siguientes versiones del controlador ENA, puede revisar las métricas en tiempo real de la limitación de DNS mediante la métrica linklocal_allowance_exceeded:

  • Linux: 2.2.10 o posterior
  • Windows: 2.2.2.0 o posterior

La métrica linklocal_allowance_exceeded indica el número de paquetes creados y descartados debido a que se ha superado la asignación de velocidad de PPS para servicios locales. Algunos ejemplos de servicios locales son servicios DNS de Amazon VPC, servicio de metadatos de instancias (IMDS) y Amazon Time Sync Service. Puede verificar esta métrica en varios intervalos para observar si el recuento aumenta. Dado que esta métrica es acumulativa desde el último reinicio del controlador (normalmente debido a una parada e inicio o a un reinicio de la instancia), esta métrica solo es significativa si aumenta.

Para recuperar el valor de la métrica linklocal_allowance_exceeded, ejecute el siguiente comando:

ethtool -S eth0

Corregir los problemas de limitación de DNS

Si descubre que la causa de sus errores de DNS es la limitación de DNS, puede:


Información relacionada

Cuotas y consideraciones sobre la creación de reflejo de tráfico

Trabajar con la creación de reflejo de tráfico

Supervisar el rendimiento de la red de su instancia EC2

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años