Ich habe diese Erklärung gefunden, wie ein CDN funktioniert. Aber eines verstehe ich nicht wirklich. Nehmen wir an , ich Setup mehrere DNS - Server an meinem Standort und sie verwenden , um die Name - Server - Domänen dns1.example.com
, dns2.example.com
und dns3.example.com
. Diese DNS-Server können je nach Standort des Besuchers (Ping, Geodatenbank, Browsersprache oder was auch immer) eine Server-IP bereitstellen. Jetzt aktualisiere ich diese Nameserver-Einstellungen für meine Domain www.example.org
in der Registrierung.
Jetzt versucht die allererste Anforderung www.example.org
mit einer abgelaufenen TTL, die Domäne aufzulösen. Es fragt:
- die lokalen .hosts / DNS, wenn TTL abgelaufen ist:
- der Internetprovider DNS, wenn TTL abgelaufen ist:
- das Root-DNS, wenn TTL abgelaufen ist:
- mein Einheimischer
dns1.example.com
Aber wenn ich es richtig verstehe, wird die neue IP zu all diesen Nameserver-Caches hinzugefügt, bis die TTL wieder abläuft. Wie ist es also möglich, abhängig von seinem Standort andere IPs an den Besucher zu senden?
In dieser Antwort sagte theandym, die Anfrage sei "weitergeleitet", aber ich glaube nicht, dass ein CDN so funktioniert, weil "weiterleiten" bedeutet, den Übertragungsweg zu verlängern, was zu einer längeren Ladezeit führt. Oder benötigt ein CDN keine TTL für die Domain?
Update1
Durch diese Frage fand ich Googles Dokument, in dem beschrieben wurde, wie die CDN-Leistung optimiert wurde. Es wurde nicht erklärt, wie das CDN im Allgemeinen funktioniert, aber es gab interessante Erklärungen wie die folgenden:
Wenn danach ein Client versucht, auf dem CDN gehosteten Inhalt abzurufen, wird der Client zu dem Knoten umgeleitet, der die geringste Latenz zu seinem Präfix aufweist. Diese Umleitung basiert jedoch auf dem Präfix, das der IP-Adresse des DNS-Nameservers entspricht, der die URL des Inhalts im Namen des Clients auflöst, der sich normalerweise zusammen mit dem Client befindet.
Dies bedeutet, dass Google zunächst die Latenz aller IP-Präfixe überprüft und eine DNS-Auflösungstabelle (?) Für alle verfügbaren Präfixe definiert. Und wenn ein Besucher die IP hat, wird die IP 198.51.100.231
des Google-Servers verwendet, die für das Präfix festgelegt ist 198.51.100.0
. Aber noch einmal: Woher weiß Googles DNS, welche IP der Besucher verwendet? Die meisten Besucher lösen die Domain von Google über ihren Internetprovider auf und dadurch erfolgt die Auflösung über diese externen DNS-Server oder nicht?
Als zusätzliches Beispiel: Wenn ich eine DNS-Auflösung für die Domain facebook.com
mit verschiedenen Online-Tools (gehostet in verschiedenen Ländern) starte, wird sie in verschiedene IPs mit verschiedenen Domains aufgelöst, wie z.
- 31.13.92.36 Rückseite: edge-star-mini-shv-01-frt3.facebook.com
- 31.13.76.68 Rückseite: edge-star-mini-shv-01-sea1.facebook.com
- 31.13.69.228 Rückseite: edge-star-mini-shv-01-iad3.facebook.com
- 157.240.2.35 Rückseite: edge-star-mini-shv-01-ort2.facebook.com
Danach dachte ich, es könnte vom Standort des vom Besucher verwendeten DNS-Servers abhängen, aber ich versuchte es mit meinem eigenen (Deutsche Telekom, Deutschland), Googles (8.8.8.8) und einem großen aus Frankreich (Orange), und alle kehrten für facebook.com
den IP 31.13.92.36
.