Comment puis-je vérifier si mes requêtes DNS adressées au serveur DNS fourni par Amazon échouent en raison d'une limitation DNS dans mon VPC ?

Date de la dernière mise à jour : 27/09/2019

Mes requêtes DNS vers le serveur DNS fourni par Amazon échouent. Les requêtes DNS de mon instance échouent-elles en raison d'une limitation DNS dans mon VPC ?

Brève description

Les serveurs DNS fournis par Amazon appliquent une limite de 1 024 paquets par seconde par interface réseau Elastic (ENI). Les serveurs DNS fournis par Amazon rejettent tout trafic supérieur à cette limite.

Les journaux de flux VPC ne capturent pas le trafic que votre application envoie aux serveurs DNS fournis par Amazon. Vous pouvez utiliser les captures de paquets ou la mise en miroir du trafic pour identifier la cause des échecs du traitement des requêtes DNS.

Résolution

Commencez par utiliser l'une des méthodes suivantes pour identifier la source des échecs de la requête DNS. Ensuite, si vous trouvez que la cause est la limitation DNS, utilisez l'un des correctifs recommandés décrits ci-dessous.

Option 1 : utiliser tcpdump (Linux uniquement)

1.     Utilisez la commande suivante pour effectuer des captures de paquets en rotation sur votre instance EC2. La commande suivante capture les 350 octets initiaux du paquet et enregistre 20 fichiers de 100 Mo chacun lors du remplacement des anciennes captures de paquet.

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.    Exécutez la commande Linux suivante pour trouver 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

3.    Si le nombre de requêtes DNS est supérieur ou égal à 1 024 par seconde, toutes les requêtes supplémentaires sont limitées.

Option 2 : utiliser la mise en miroir du trafic

S'il n'est pas possible de prendre le tcpdump dans votre cas d'utilisation, vous pouvez tirer parti de la mise en miroir du trafic pour vérifier si les requêtes DNS sont limitées.

Remarque : la mise en miroir du trafic n'est disponible que pour les instances basées sur Nitro. Des frais de mise en miroir du trafic s'appliqueront.

Commencez par capturer les données de trafic :

1.    Remplissez les prérequis de mise en miroir du trafic.
2.    Créez une cible pour le miroir du trafic. Vérifiez que l'interface réseau Elastic cible ou le Network Load Balancer autorise le trafic entrant sur le port 4789.
3.    Créez un filtre pour le miroir du trafic. Sous « Filter settings » (Paramètres de filtre), vérifiez que amazon-dns est activé pour « Network services » (Services réseau) (facultatif).
4.    Créez une session pour le miroir du trafic. Une fois que vous avez configuré la mise en miroir du trafic, le trafic mis en miroir est regroupé et stocké sur la cible pour le miroir du trafic.

Ensuite, analysez les données capturées à l'aide de Wireshark :

1.    Ouvrez le trafic capturé dans Wireshark.
2.    Choisissez l'onglet « Statistics » (Statistiques).
3.    Sélectionnez « I/O Graph » (Graphique d'E/S) et effacez toutes les options.
4.    (Pour Linux uniquement) Sous « Display Filter », (Filtre d'affichage), ajoutez un filtre à l'aide de l'identifiant réseau VXLAN et de l'indicateur de requête DNS. Par exemple, si l'identifiant réseau VXLAN est 53 et que l'indicateur de requête DNS est 0x0100, le filtre d'affichage du graphique est (vxlan.vni = = 53) & & (dns.flags = = 0x0100).
5.    Examinez le graphique pour vous assurer qu'il se situe autour de 1024 (limite de paquets par seconde du serveur DNS fourni par Amazon). Si le graphique se situe autour de cette valeur, c'est qu'une limitation DNS est présente.

Correctifs des problèmes de limitation DNS

Si vous constatez que la cause de vos défaillances DNS est la limitation DNS, vous pouvez :


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?