Passer au contenu

Comment puis-je déterminer si mes requêtes DNS adressées au serveur Amazon DNS échouent en raison de la limitation du DNS VPC ?

Lecture de 5 minute(s)
0

Je souhaite savoir pourquoi mes requêtes DNS adressées au serveur Amazon DNS échouent ou arrivent à expiration dans mon Amazon Virtual Private Cloud (Amazon VPC).

Brève description

Le quota Amazon DNS est de 1 024 paquets par seconde (PPS) pour chaque interface réseau élastique. Si vous dépassez le quota, Amazon Route 53 rejette le trafic.

VPC Flow Logs ne capture pas le trafic que les applications envoient aux serveurs Amazon DNS. Pour identifier la cause des échecs des requêtes DNS, utilisez des captures de paquets ou la mise en miroir du trafic.

Remarque : Les journaux de requêtes Route 53 capturent uniquement le trafic qui atteint le résolveur VPC.2 AmazonProvidedDNS. Les requêtes DNS limitées n'apparaissent pas dans les journaux de requêtes car elles sont limitées au niveau de l'interface réseau.

Résolution

Déterminer la source des échecs de requêtes DNS

Utiliser tcpdump (Linux uniquement)

Pour utiliser tcpdump, procédez comme suit :

  1. Exécutez la commande suivante sur votre instance 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

    Remarque : La commande précédente capture les 350 octets initiaux du paquet, enregistre 20 fichiers de 100 Mo chacun et remplace les anciennes captures de paquets. Si votre interface réseau principale n'est pas eth0, remplacez eth0 dans la commande précédente par votre interface réseau principale. Pour trouver votre interface principale, exécutez la commande suivante :

    netstat -i
  2. Exécutez la commande suivante pour comptabiliser le nombre de requêtes DNS envoyées :

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

Utiliser la mise en miroir du trafic

Si vous ne pouvez pas utiliser tcpdump, utilisez la mise en miroir du trafic pour identifier si les requêtes DNS sont limitées.

Remarque : La mise en miroir du trafic est disponible pour les instances basées sur Nitro et certains types d'instances non Nitro. Des frais de mise en miroir du trafic s'appliquent.

Pour capturer et analyser les données de trafic, procédez comme suit :

  1. Remplissez les prérequis de mise en miroir du trafic.
  2. Créez une cible de mise en miroir du trafic. Vérifiez que l'interface réseau cible ou le Network Load Balancer autorise le trafic entrant sur le port UDP 4789.
  3. Créez un filtre de mise en miroir du trafic. Pour Paramètres de filtre, vérifiez qu'amazon-dns est activé pour Services réseau - facultatif.
  4. Créez une session de mise en miroir du trafic.

La mise en miroir du trafic rassemble le trafic en miroir et le stocke sur la cible de mise en miroir du trafic.

Remarque : La mise en miroir du trafic est un flux de données en direct. Pour capturer les paquets mis en miroir sur la cible et les enregistrer dans un fichier .pcap, capturez le trafic sur le port UDP 4789.

Utiliser Wireshark

Procédez comme suit :

  1. Ouvrez le trafic capturé dans Wireshark
    Remarque : Pour télécharger Wireshark, consultez la page Téléchargement du site Web de Wireshark.
  2. Choisissez l'onglet Statistiques.
  3. Sélectionnez Graphique d’I/O et désactivez toutes les options.
  4. Sous Filtre d'affichage, utilisez l'identifiant réseau VXLAN et la requête DNS pour ajouter un filtre. Le champ QR de l'en-tête DNS est 0. Par exemple, si l'identifiant réseau VXLAN est 16777215, le filtre d'affichage du graphique est (vxlan.vni == 16777215) && (dns.flags.response == 0).
  5. Examinez le graphique. S'il reste à environ 1024 PPS, cela signifie qu'une limitation se produit sur la source en miroir.

Vérifier la métrique des performances réseau du pilote ENA

Si l'instance EC2 exécute l'une des versions du pilote d’adaptateur réseau élastique (ENA) suivantes, vérifiez les métriques en temps réel relatives à la limitation DNS :

  • Linux : 2.2.10 ou version ultérieure
  • Windows : 2.2.2.0 ou version ultérieure

Vérifiez la métrique linklocal_allowance_exceeded pour déterminer le nombre de paquets abandonnés car le trafic a dépassé le quota PPS pour les services locaux suivants :

  • Service DNS Amazon VPC
  • Service de métadonnées d'instance (IMDS)
  • Service Amazon Time Sync

Vérifiez la métrique à différents intervalles pour déterminer si le nombre augmente. La métrique linklocal_allowance_exceeded est cumulée à partir du dernier redémarrage du pilote en raison d'un arrêt et d'un démarrage ou d'un redémarrage. Un problème survient uniquement lorsque la métrique augmente.

Pour obtenir la valeur de linklocal_allowance_exceeded, exécutez la commande suivante pour eth0 :

ethtool -S eth0 | grep link

Pour les instances dont l'interface est nommée ens5 :

ethtool -S ens5 | grep link

Résoudre les problèmes de limitation DNS

Si la limitation DNS est à l'origine des échecs, prenez l'une des mesures suivantes pour résoudre le problème :

Informations connexes

Comprendre les concepts de cible de mise en miroir du trafic

Utiliser la mise en miroir du trafic pour copier le trafic réseau

AWS OFFICIELA mis à jour il y a 8 mois