Ir para o conteúdo

Como determino se minhas consultas de DNS ao servidor Amazon DNS falham devido ao controle de utilização de DNS da VPC?

5 minuto de leitura
0

Quero saber por que minhas consultas de DNS ao servidor DNS da Amazon falham ou expiram na minha Amazon Virtual Private Cloud (Amazon VPC).

Breve descrição

A cota de DNS da Amazon é de 1.024 pacotes por segundo (PPS) para cada interface de rede elástica. Se você exceder a cota, o Amazon Route 53 rejeitará o tráfego.

Os VPC Flow Logs não capturam o tráfego que as aplicações enviam para os servidores Amazon DNS. Você pode usar capturas de pacotes ou espelhamento de tráfego para identificar a causa das falhas na consulta ao DNS.

Observação: os logs de consultas do Route 53 capturam somente o tráfego que chega ao resolvedor VPC.2 AmazonProvidedDNS. As consultas de DNS limitadas não aparecem nos logs de consultas porque as consultas são limitadas no nível da interface de rede.

Resolução

Determinar a origem das falhas na consulta ao DNS

Usar tcpdump (somente Linux)

Para usar o tcpdump, conclua as etapas abaixo:

  1. Execute o seguinte comando em sua instância do Amazon Elastic Compute Cloud (Amazon EC2):

    TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
    INSTANCE_ID=`curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id`
    sudo tcpdump -i eth0 -s 350 -C 100 -W 20 -w /var/tmp/$INSTANCE_ID.$(date +%Y-%m-%d:%H:%M:%S).pcap

    Observação: o comando anterior captura os 350 bytes iniciais do pacote, salva 20 arquivos de 100 MB cada e sobrescreve as antigas capturas de pacotes. Se sua interface de rede primária não for eth0, substitua eth0 no comando anterior pela interface de rede primária. Para encontrar sua interface primária, execute o seguinte comando:

    netstat -i
  2. Execute o comando a seguir para contar o número de consultas DNS enviadas:

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

Use o espelhamento de tráfego

Se você não puder usar o tcpdump, use o espelhamento de tráfego para identificar se as consultas de DNS possuem controle de utilização.

Observação: o espelhamento de tráfego está disponível para instâncias baseadas em Nitro e tipos de instâncias não Nitro. Aplicam-se taxas de espelhamento de tráfego.

Para capturar e analisar dados de tráfego, conclua as seguintes etapas:

  1. Conclua os pré-requisitos de espelhamento de tráfego.
  2. Crie um destino de espelho de tráfego. Confirme se a interface de rede elástica de destino ou o Network Load Balancer permitem tráfego de entrada na porta UDP 4789.
  3. Crie um filtro de espelho de tráfego. Em Configurações de filtro, confirme se o amazon-dns está habilitado para Serviços de rede - opcional.
  4. Crie uma sessão de espelho de tráfego.

O espelhamento de tráfego coleta o tráfego espelhado e o armazena no alvo do espelho de tráfego.

Observação: o espelhamento de tráfego é uma transmissão ao vivo de dados. Para capturar os pacotes espelhados no destino e salvá-los em um arquivo.pcap, capture o tráfego na porta UDP 4789.

Use o Wireshark

Conclua as etapas a seguir:

  1. Abra o tráfego capturado no Wireshark
    Observação: para baixar o Wireshark, consulte a página de download no site do Wireshark.
  2. Escolha a guia Estatísticas.
  3. Selecione o Grafo de E/S e desmarque todas as opções.
  4. Em Filtro de exibição, use o identificador de rede VXLAN e a consulta ao DNS para adicionar um filtro. O campo QR no cabeçalho DNS é 0. Por exemplo, se o identificador de rede VXLAN for 16777215, o filtro de exibição do grafo será (vxlan.vni == 16777215) && (dns.flags.response == 0).
  5. Revise o grafo. Se permanecer em cerca de 1024 PPS, o controle de utilização estará ocorrendo na fonte espelhada.

Verifique a métrica de desempenho da rede do driver ENA

Se a instância do EC2 estiver executando uma das seguintes versões de driver do Adaptador de Rede Elástica (ENA), verifique as métricas em tempo real do controle de utilização de DNS:

  • Linux: 2.2.10 ou posterior
  • Janela: 2.2.2.0 ou posterior

Verifique a métrica linklocal_allowance_exceeded para determinar o número de pacotes descartados porque o tráfego excedeu a cota de PPS para os seguintes serviços locais:

  • Serviço DNS Amazon VPC
  • Serviço de metadados de instância (IMDS)
  • Serviço de Sincronização Temporal da Amazon

Verifique a métrica em vários intervalos para determinar se a contagem está aumentando. A métrica linklocal_allowance_exceeded é cumulativa desde a última reinicialização do driver devido a uma parada e inicialização ou reinicialização. Só há um problema quando a métrica está aumentando.

Para obter o valor linklocal_allowance_exceeded, execute o seguinte comando para eth0:

ethtool -S eth0 | grep link

Para instâncias com a interface chamada ens5:

ethtool -S ens5 | grep link

Resolver problemas de controle de utilização de DNS

Se o controle de utilização de DNS estiver causando as falhas, execute uma das seguintes ações para resolver o problema:

Informações relacionadas

Entenda os conceitos de alvo do espelho de trânsito

Trabalhe com o espelhamento de tráfego para copiar o tráfego da rede

AWS OFICIALAtualizada há 9 meses