Warum wurde der Datenverkehr für meine Webinhalte an den falschen CloudFront-Edge-Standort weitergeleitet?
Ich habe Amazon CloudFront verwendet, um meine Webinhalte zu verteilen. Der Datenverkehr auf meine Website wird jedoch an den falschen Edge-Standort weitergeleitet.
Kurzbeschreibung
CloudFront leitet Datenverkehr auf der Grundlage der Preisklasse der Distribution, der zugehörigen Geolocation-Datenbanken und der Unterstützung von EDNS0-Client-Subnetzen weiter. Abhängig von einer Kombination dieser Faktoren werden die Besucher der Website möglicherweise an einen unerwarteten Edge-Standort weitergeleitet. Dies kann die Gesamtlatenz beim Abrufen eines Objekts von einem CloudFront-Edge-Standort erhöhen.
Prüfe Folgendes, um Probleme mit dem Datenverkehr zu beheben, der an einen unerwarteten Edge-Standort weitergeleitet wird:
- Die Preisklasse unterstützt den Edge-Standort, den du erwartest.
- Der DNS-Resolver unterstützt Anycast-Routing.
- Der DNS-Resolver unterstützt das EDNS0-Client-Subnetz.
Lösung
Die Preisklasse unterstützt den erwarteten Edge-Standort
Prüfe die Edge-Standorte, die in der Preisklasse deiner CloudFront-Distribution enthalten sind. Um andere Edge-Standorte einzubeziehen, ändere deine Preisklasse.
Der DNS-Resolver unterstützt Anycast-Routing
Wenn der DNS-Resolver Anycast-Routing unterstützt, verwendet der DNS-Resolver mehrere Edge-Standorte. Da der Edge-Standort eines Anforderers auf einer optimalen Latenz basiert, kannst du möglicherweise einen unerwarteten Standort der IP-Adresse des Resolvers wahrnehmen.
Um zu überprüfen, ob der DNS-Resolver Anycast unterstützt, führe einen der folgenden Befehle mehrmals aus.
Andere Betriebssysteme (OSs) als Windows:
dig +nocl TXT o-o.myaddr.l.google.com
Windows:
nslookup -type=txt o-o.myaddr.l.google.com
Wenn die Ausgabe bei jeder Ausführung des Befehls dieselbe IP-Adresse enthält, unterstützt der DNS-Resolver Anycast nicht. Wenn die Ausgabe bei jeder Ausführung des Befehls eine andere IP-Adresse enthält, unterstützt der DNS-Resolver Anycast.
Der DNS-Resolver unterstützt das EDNS0-Client-Subnetz
Führe einen der folgenden Befehle aus, um zu überprüfen, ob der DNS-Resolver das EDNS0-Client-Subnet unterstützt.
Andere Betriebssysteme als Windows:
dig +nocl TXT o-o.myaddr.l.google.com
Windows:
nslookup -type=txt o-o.myaddr.l.google.com
Hinweis: Überprüfe den TTL-Wert und stelle sicher, dass du den Befehl ausführst, wenn der TTL-Wert abgelaufen ist. Andernfalls erhältst du möglicherweise eine zwischengespeicherte Antwort vom rekursiven Resolver.
Wenn der DNS-Resolver das EDNS0-Client-Subnetz nicht unterstützt, sieht die Ausgabe ähnlich wie folgt aus:
$ dig +nocl TXT o-o.myaddr.l.google.com +short "192.0.2.1"
Im vorherigen Beispiel ist 192.0.2.1 die IP-Adresse des nächstgelegenen DNS-Servers, der Anycast verwendet hat. Dieser DNS-Resolver unterstützt das EDNS0-Client-Subnetz nicht.
Führe eine der folgenden Aktionen durch, um sicherzustellen, dass der Datenverkehr der Website an den richtigen Standort weitergeleitet wird:
- Ändere den DNS-Resolver in einen rekursiven DNS-Resolver, der sich geografisch näher an den Clients der Website befindet.
- Wechsle zu einem DNS-Resolver, der das EDNS0-Client-Subnetz unterstützt.
Wenn der DNS-Resolver das EDNS0-Client-Subnetz unterstützt, enthält die Ausgabe ein gekürztes Client-Subnetz (/24 oder /32) zum autoritativen CloudFront-Namenserver:
$ dig +nocl TXT o-o.myaddr.l.google.com @8.8.8.8 +short "192.0.2.1" "edns0-client-subnet 198.51.100.0/24"
Im vorherigen Beispiel ist 192.0.2.1 die nächstgelegene DNS-Resolver-IP-Adresse. Der Client-Subnetzbereich, der zur Beantwortung der DNS-Abfrage verwendet wird, ist 198.51.100.0/24.
Selbst wenn der DNS-Resolver das EDNS0-Client-Subnetz unterstützt, wird der Website-Datenverkehr möglicherweise immer noch falsch weitergeleitet. Um dieses Problem zu beheben, verknüpfe eine öffentliche Geolocation-Datenbank mit dem Client-Subnetz-Bereich, der die Abfrage an den DNS-Resolver sendet. Wenn der DNS-Resolver die gekürzte Version der Client-IP-Adressen an CloudFront-Namenserver weiterleitet, überprüft CloudFront eine Datenbank, die auf mehreren öffentlichen Geolocation-Datenbanken basiert.
Du musst die IP-Adressen in der Geolocation-Datenbank korrekt zuordnen, damit Anforderungen korrekt weitergeleitet werden.
Wenn der DNS-Resolver das EDNS0-Client-Subnetz unterstützt, führe den folgenden DNS-Suchbefehl aus, um den Edge-Standort zu ermitteln, an den der Datenverkehr weitergeleitet wird:
$ dig dftex7example.cloudfront.net. +short 13.224.77.109 13.224.77.62 13.224.77.65 13.224.77.75
Führe dann eine umgekehrte DNS-Suche für die IP-Adressen durch, die der vorherige Befehl zurückgibt:
$ dig -x 13.224.77.62 +short server-13-224-77-62.man50.r.cloudfront.net.
Im vorherigen Beispiel wird der Datenverkehr an den Edge-Standort Manchester weitergeleitet.
Tipp: Für einen zusätzlichen Test kannst du einen öffentlichen DNS-Resolver verwenden, der das EDNS0-Client-Subnetz unterstützt, z. B. 8.8.8.8, 8.8.4.4 oder 1.1.1.1. Sende Abfragen mit Edge-Standort-IP-Adressen an den öffentlichen DNS-Resolver. Überprüfe anschließend die Ergebnisse der DNS-Abfragen, um festzustellen, ob CloudFront über die richtigen Informationen zum EDNS0-Client-Subnetz verfügt.
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 4 Jahren