Knowledge Center Monthly Newsletter - June 2025
Stay up to date with the latest from the Knowledge Center. See all new Knowledge Center articles published in the last month, and re:Post's top contributors.
Wie stelle ich fest, ob meine DNS-Abfragen an den Amazon DNS-Server aufgrund einer VPC-DNS-Drosselung fehlschlagen?
Ich möchte wissen, warum meine DNS-Abfragen an den Amazon DNS-Server in meiner Amazon Virtual Private Cloud (Amazon VPC) fehlschlagen oder ein Timeout auftritt.
Kurzbeschreibung
Das Amazon DNS-Kontingent beträgt 1 024 Pakete pro Sekunde (PPS) für jede Elastic-Network-Schnittstelle. Wenn du das Kontingent überschreitest, lehnt Amazon Route 53 den Datenverkehr ab.
VPC-Flow-Protokolle erfasst nicht den Datenverkehr, den Anwendungen an Amazon DNS-Server senden. Um die Ursache der DNS-Abfragefehler zu ermitteln, verwende Paketerfassungen oder Traffic Mirroring.
Hinweis: Die Abfrageprotokollierung von Route 53 erfasst nur den Datenverkehr, der den Resolver VPC.2 AmazonProvidedDNS) erreicht. Gedrosselte DNS-Abfragen erscheinen nicht in Abfrageprotokollen, da die Abfragen auf der Ebene der Netzwerkschnittstelle gedrosselt werden.
Lösung
Die Ursache der DNS-Abfragefehler ermitteln
tcpdump (nur Linux) verwenden
Gehe wie folgt vor, um tcpdump zu verwenden:
-
Führe den folgenden Befehl auf der Amazon Elastic Compute Cloud (Amazon EC2)-Instance aus:
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
Hinweis: Der vorhergehende Befehl erfasst die ersten 350 Byte des Pakets, speichert 20 Dateien mit jeweils 100 MB und überschreibt die alten Paketerfassungen. Wenn die primäre Netzwerkschnittstelle nicht eth0 ist, ersetze eth0 im vorherigen Befehl durch die primäre Netzwerkschnittstelle. Führe den folgenden Befehl aus, um die primäre Schnittstelle zu finden:
netstat -i
-
Führe den folgenden Befehl aus, um die Anzahl der gesendeten DNS-Abfragen zu zählen:
tcpdump -r <file_name.pcap> -nn dst port 53 | awk -F " " '{ print $1 }' | cut -d"." -f1 | uniq -c
Traffic Mirroring verwenden
Wenn du tcpdump nicht verwenden kannst, verwende Traffic Mirroring, um festzustellen, ob DNS-Abfragen gedrosselt werden.
Hinweis: Traffic Mirroring ist für Nitro-basierte Instances und bestimmte nicht auf Nitro basierende Instance-Typen verfügbar. Für Traffic Mirroring fallen Gebühren an.
Gehe wie folgt vor, um Datenverkehrsdaten zu erfassen und zu analysieren:
- Erfülle die Voraussetzungen für Traffic Mirroring.
- Erstelle ein Ziel für das Traffic Mirroring. Vergewissere dich, dass die Ziel-Netzwerkschnittstelle oder der Network Load Balancer eingehenden Datenverkehr auf Port UDP 4789 zulässt.
- Erstelle einen Filter für das Traffic Mirroring. Stelle bei den Filtereinstellungen sicher, dass amazon-dns für Netzwerkdienste – Option aktiviert ist.
- Erstelle eine Sitzung für das Traffic Mirroring.
Traffic Mirroring erfasst den gespiegelten Datenverkehr und speichert ihn auf dem Ziel für das Traffic Mirroring.
Hinweis: Traffic Mirroring ist ein Live-Datenstrom. Um die gespiegelten Pakete auf dem Ziel zu erfassen und in einer PCAP-Datei zu speichern, erfasse den Datenverkehr auf dem UDP-Port 4789.
Benutze Wireshark
Führe die folgenden Schritte aus:
- Erfassten Datenverkehr in Wireshark öffnen Hinweis: Um Wireshark herunterzuladen, besuche die Seite Download auf der Wireshark-Website.
- Wähle die Registerkarte Statistik.
- Wähle I/O-Diagramm aus und deaktiviere alle Optionen.
- Verwende unter Anzeigefilter den VXLAN Network Identifier und die DNS-Abfrage, um einen Filter hinzuzufügen. Das QR-Feld im DNS-Header ist „0“. Wenn der VXLAN Network Identifier beispielsweise 16777215 lautet, lautet der Anzeigefilter für das Diagramm (vxlan.vni == 16777215) && (dns.flags.response == 0).
- Sieh dir das Diagramm an. Bleibt er bei etwa 1024 PPS, erfolgt eine Drosselung der gespiegelten Quelle.
Metrik der Treiber-Netzwerkleistung des ENA überprüfen
Wenn auf der EC2-Instance eine der folgenden Versionen des Treibers des Elastic Network Adapter (ENA) ausgeführt wird, überprüfe die Echtzeit-Metriken auf DNS-Drosselung:
- Linux: 2.2.10 oder später
- Windows: 2.2.2.0 oder später
Überprüfe die Metrik linklocal_allowance_exceeded, um die Anzahl der verworfenen Pakete zu ermitteln, weil der Datenverkehr das PPS-Kontingent für die folgenden lokalen Services überschritten hat:
- Amazon VPC DNS Service
- Instance Metadata Service (IMDS)
- Amazon Time Sync Service
Überprüfe die Metrik in mehreren Intervallen, um festzustellen, ob die Anzahl steigt. Die Metrik linklocal_allowance_exceeded ist seit dem letzten Neustart des Treibers aufgrund von Stopp und Start oder Neustart kumulativ. Es gibt nur ein Problem, wenn die Metrik steigt.
Führe den folgenden Befehl für eth0 aus, um den Wert linklocal_allowance_exceeded abzurufen:
ethtool -S eth0 | grep link
Für Instances mit der Schnittstelle ens5:
ethtool -S ens5 | grep link
Probleme mit der DNS-Drosselung korrigieren
Wenn die DNS-Drosselung die Fehler verursacht, ergreife eine der folgenden Maßnahmen, um das Problem zu beheben:
- Aktiviere das DNS-Caching auf der Instance.
- Erhöhe den Wert des DNS-Wiederholungstimers für die Anwendung.
Ähnliche Informationen
Sollkonzepte für das Traffic Mirroring verstehen
Traffic Mirroring verwenden, um den Netzwerkdatenverkehr zu kopieren
