Ist es down, oder nur bei Ihnen?
Eine Prüfung aus mehreren Blickwinkeln führt denselben Test — einen Ping, eine HTTP-Anfrage, eine DNS-Abfrage — von Sonden in den Netzen anderer Leute aus, in anderen Ländern, im selben Moment, in dem Sie ihn aus Ihrem ausführen. Diese eine Änderung verwandelt eine unbeantwortbare Frage („Bei mir funktioniert’s — sieht das noch jemand?“) in einen Vergleich: Schlägt jeder Blickwinkel fehl, ist das Ziel down; schlägt nur Ihrer fehl, wohnt das Problem auf dem Pfad zwischen Ihnen und ihm. Dieser Leitfaden erklärt, was ein zweiter Blickwinkel tatsächlich beweist, die Anycast-Falle, in die jeder einmal tappt, und wie Sie die Prüfung mit dem globalen Ping auf dieser Seite ausführen.
Das Problem mit „bei mir funktioniert’s“
Jeder Vorfallkanal hat beide Sätze in derselben Stunde gehört: „Die Seite ist down“ und „Bei mir funktioniert’s“. Beide können ehrliche Berichte sein. Ein Test, der von einem einzigen Blickwinkel aus läuft — Ihr Laptop, Ihr Büro, eine Monitoring-Maschine —, misst genau eine Sache: die Erfahrung dieses einen Netzes, auf diesem einen Pfad, in diesem einen Moment. Er kann einen Dienst, der für alle down ist, nicht von einem Pfad unterscheiden, der nur für Sie gebrochen ist: ein kranker Transitprovider, eine regionale Filterregel, ein DNS-Resolver, der vergiftete oder veraltete Antworten liefert, ein Peering-Streit drei Netze weiter, von dem Sie noch nie gehört haben. Von innerhalb des einzigen Blickwinkels sieht all das identisch aus — ein Fehler ohne Rückadresse.
Support-Tickets und Statusseiten leiden unter derselben Geometrie. Eine Statusseite sagt „betriebsbereit“, weil die eigenen Sonden des Providers — die in der eigenen Nachbarschaft des Providers sitzen — den Dienst problemlos erreichen, während eine ganze Region es nicht kann. Ein Nutzer meldet „down“, weil sein ISP den Verkehr in ein schwarzes Loch schluckt, während der Dienst vor sich hin summt. Keine Seite lügt; beide verallgemeinern von einem einzigen Stuhl aus. Die Behebung ist nicht mehr Präzision von demselben Stuhl aus. Es sind mehr Stühle.
Was ein zweiter Blickwinkel beweist
Fügen Sie Sonden in anderen Netzen hinzu — andere autonome Systeme, andere Länder, andere Verbindungsarten — und führen Sie den identischen Test von allen gleichzeitig aus. Jetzt argumentiert das Muster selbst. Wenn Sonden in fünf Netzen auf drei Kontinenten alle gleichzeitig auf dieselbe Weise fehlschlagen, ist der gemeinsame Faktor das Ziel: Der Dienst, sein Host oder sein eigenes Netz ist down, und kein noch so großes lokales Herumfummeln wird das ändern. Wenn vier Erfolg haben und nur die Sonde fehlschlägt, die Ihrer Situation am nächsten ist — oder nur Sie fehlschlagen —, kehrt sich der gemeinsame Faktor um: Das Ziel ist oben, und der Bruch ist irgendwo auf dem Pfad, den die fehlschlagenden Blickwinkel teilen. Übereinstimmung zwischen unabhängigen Blickwinkeln ist das, was der Frage „Ist es down?“ einem Beweis am nächsten kommt.
Die Sonden, die diese Seite nutzt, gehören zum Globalping-Netz, betrieben von jsDelivr: Tausende kleiner Software-Sonden, die von Freiwilligen auf der ganzen Welt gehostet werden, auf allem von Rechenzentrumsservern bis zu Heimanschlüssen, die standardisierte Messungen akzeptieren — Ping, Traceroute, MTR, DNS und HTTP — und zurückmelden, was sie gesehen haben. Der Wert ist nicht irgendeine einzelne Sonde; eine Freiwilligenmaschine in einer Stadt ist eine Anekdote. Der Wert ist, dass die Anekdoten unabhängig sind: verschiedene Netze, verschiedene Upstreams, verschiedene Fehlermodi, die alle dieselbe Frage im selben Moment beantworten.
Die Anycast- und CDN-Warnung
Hier ist die Falle, und jeder tappt einmal hinein: Verschiedene Antworten von verschiedenen Orten können alle richtig sein. Moderne Dienste sind nicht eine Maschine an einem Ort. Anycast kündigt dieselbe Adresse von vielen Standorten an, sodass eine Sonde in Frankfurt und eine Sonde in São Paulo, die Pakete an „dieselbe“ IP schicken, mit verschiedenen physischen Kanten sprechen, möglicherweise auf verschiedenen Infrastrukturkontinenten — eine gesund, eine beim Neustart. Ein CDN steuert jeden Client zu einer nahen Kante, und eine Kante kann in einer Region down sein, während der Dienst anderswo makellos ist. Abweichung zwischen Sonden ist nicht automatisch Widerspruch; bei einem Anycast-Ziel ist Abweichung das Design, das wie beabsichtigt funktioniert, und die Frage wird zu „down wo?“ statt „down?“.
DNS macht denselben Punkt von der anderen Seite. Autoritative Server und Resolver liefern konstruktionsbedingt verschiedene Antworten — GeoDNS gibt die Adresse der „nächsten“ Kante zurück, und EDNS Client Subnet lässt einen Resolver im Namen Ihrer Nachbarschaft fragen, sodass der Resolver einer Sonde in Tokio und einer in Texas legitimerweise verschiedene Adressen für denselben Namen erhalten (vergleichen Sie sie nebeneinander mit dem DNS-Propagationsprüfer, wenn die Frage lautet, welche Einträge die Welt hält). Verschiedene Adressen von verschiedenen Sonden sind kein Beleg für Inkonsistenz. Sie sind ein Beleg dafür, dass der Name Lokalisierung betreibt — und sie sagen Ihnen, welcher Kante die Nutzer jeder Region tatsächlich begegnen werden.
Wählen Sie die Messung, die die Frage beantwortet
Der globale Ping bietet fünf Messarten, und gut zu wählen zählt mehr, als viele auszuführen. Jede beantwortet eine andere Frage, und die falsche auszuführen erzeugt eine selbstsichere Antwort auf etwas, das Sie nicht gefragt haben. Ordnen Sie die Art dem Symptom zu, bevor Sie sich irgendjemandes Ergebnisse ansehen.
Ping beantwortet die engste Frage: Ist das Ziel von hier aus erreichbar, und wie viel geht unterwegs verloren? Es ist der richtige Test für „Kann dieses Netz jenen Host überhaupt sehen?“ und der falsche Test für alles, was die Anwendung betrifft — ein Host kann auf Ping antworten, während sein Webdienst tot ist. HTTP beantwortet die Frage des Nutzers: Gelingt eine echte Anfrage von dort, mit welchem Statuscode, und wie lange hat das Ganze gedauert? Wenn der Streit „Die Seite funktioniert / die Seite funktioniert nicht“ lautet, ist HTTP von mehreren Sonden der Beleg, den beide Seiten akzeptieren sollten. DNS beantwortet die Namensfrage: Welche Adressen erhält jede Region tatsächlich für diesen Namen? So trennen Sie „Der Dienst ist down“ von „Meine Region wird zur toten Kante geschickt“.
Traceroute beantwortet die Wo-Frage: Hop für Hop, wo bleibt der Pfad von dieser Sonde zum Ziel stehen, hängt oder biegt zu einem unerwarteten Ort ab? Führen Sie es vom fehlschlagenden Blickwinkel aus, nicht von einem, der funktioniert. MTR ist Traceroute über die Zeit — derselbe Pfad, wiederholt sondiert, sodass Verlust und Verzögerung pro Hop als Raten statt als eine einzige eingefrorene Stichprobe erscheinen; es ist das Werkzeug für „Es bricht intermittierend“, wo ein einzelnes Traceroute den Pfad an einem Tag guten Verhaltens erwischt. Die Disziplin bei allen fünf: Entscheiden Sie, welchen Fehler Sie testen, wählen Sie die eine Messung, die ihn sehen kann, und lassen Sie die anderen warten.
Ergebnisse lesen, ohne sich selbst zu täuschen
Beginnen Sie damit, die beiden Zahlen zu trennen, die Leute gewohnheitsmäßig verschmelzen. Verlust — Anfragen, die nie zurückkamen — ist Schaden; Latenz — Anfragen, die langsam zurückkamen — ist Unbehagen, und die beiden haben verschiedene Ursachen und verschiedene Behebungen. Eine Sonde, die 100 % Verlust zeigt, hat eine Wand gefunden; eine Sonde, die null Verlust und hohe Latenz zeigt, hat eine lange oder überlastete Straße gefunden, und das Zweite als „down“ zu melden ist, wie gesunde Dienste nachts geweckt werden. Vergleichen Sie dann Gleiches mit Gleichem: Nehmen Sie die Median-Sonde als die Geschichte, nicht die beste und nicht die schlechteste. Eine Sonde, die einen wilden Ausreißer zurückgibt — enorme Latenz, ein Timeout, das niemand sonst gesehen hat —, ist eine Aussage über den Moment dieser Sonde, ihren Host oder ihren Upstream. Sie wird erst zum Beleg über das Ziel, wenn unabhängige Sonden ihr zustimmen.
Achten Sie auch auf die Buchführung. Eine Sonde, die das Ziel als „offline“ meldet, während ihre Nachbarn Erfolg haben, hat höchstwahrscheinlich sich selbst gemeldet — eine abgestürzte Sonde, ein Heimanschluss, der abgerissen ist, ein lokaler Filter — und Freiwilligensonden haben all das; das ist der Preis eines Netzes, das niemand zentral betreibt. Notieren Sie die Zeitstempel und behandeln Sie veraltete oder zwischengespeicherte Ergebnisse als Geschichte, nicht als Nachricht. Und wenn jede Sonde übereinstimmt, dass das Ziel oben ist, Ihre Nutzer es aber trotzdem nicht erreichen können, glauben Sie beiden: Sie haben gelernt, dass der Fehler real und eng ist — er wohnt auf einem Pfad, den keine Ihrer Sonden zufällig teilte, was ein Befund ist, kein Widerspruch.
Ehrliche Grenzen
Die Sonden sind Freiwillige, und das Netz verhält sich auch so. Sonden kommen und gehen — ein Standort, der heute Morgen verfügbar ist, kann heute Nacht offline sein, die Abdeckung ist in manchen Ländern dicht und in anderen dünn bis nichtexistent, und Sie können keine Sonde innerhalb eines bestimmten ISP verlangen, nur weil Ihre Nutzer dort sind. Die Sonden sitzen auch meist in Rechenzentren und auf Enthusiastenanschlüssen, nicht auf den Wohn- und Mobilnetzen, aus denen Ihre tatsächlichen Nutzer surfen; eine Rechenzentrumssonde beweist, dass der Dienst von gut angebundenen Orten aus erreichbar ist, was der größte Teil der Frage ist, aber nicht das Ganze. Behandeln Sie die Karte als eine Stichprobe der Netze der Welt, großzügig gezeichnet — nicht als die Welt.
Die Nutzung dieses Netzes durch diese Seite ist absichtlich bescheiden: Sie läuft auf Globalpings anonymer, geteilter Gratisstufe, sodass Prüfungen Limits pro Besucher tragen und Ergebnisse kurz zwischengespeichert werden, statt eine Freiwilligenressource zu hämmern — wenn eine Prüfung Sie bittet zu warten, ist das die geteilte Stufe, die geteilt wird. Innerhalb dieser Grenzen ist das Arbeitsmuster: Führen Sie hier die Prüfung aus mehreren Blickwinkeln aus, um „down oder nur ich?“ zu klären, und gehen Sie dann beim Gewinner tiefer — die Website-Gesundheitsprüfung für alles, was ein einziger ausführlicher Blick auf die Seite Ihnen sagen kann, und eine frische Runde vom globalen Ping, sobald Sie etwas geändert haben. Down-für-alle und Down-nur-für-Sie brauchen verschiedene Nachmittage; zehn Minuten mit den Blickwinkeln anderer Leute ist, wie Sie herausfinden, welchen Nachmittag Sie gerade haben.
Häufig gestellte Fragen
Von wie vielen Standorten aus sollte ich testen?
Dieses Werkzeug führt bis zu vier Standorte pro Prüfung aus, und vier gut gewählte schlagen vierzig zufällig gewählte. Wählen Sie eine Streuung, die zum Streit passt: eine Sonde nahe bei Ihren eigenen Nutzern, eine auf einem anderen Kontinent, eine nahe beim Hosting des Ziels und eine irgendwo weit Entfernte als Kontrolle. Wenn die nahen und die fernen Sonden übereinstimmen, haben Sie Ihre Antwort; wenn nur die nahen fehlschlagen, haben Sie das Problem auch lokalisiert. Mehr Standorte helfen vor allem, wenn die ersten vier in einem Muster widersprechen, das Sie noch nicht lesen können.
Eine Sonde sagt offline — ist die Seite down?
Nicht allein auf diesen Beleg hin. Eine einzelne Sonde kann selbst offline sein — abgestürzt, getrennt oder hinter einem eigenen Filter — und Freiwilligensonden haben keinen Betreiber, der für sie garantiert. „Down“ ist eine Schlussfolgerung, die Sie aus Übereinstimmung ziehen: mehrere unabhängige Sonden, in verschiedenen Netzen, die gleichzeitig auf dieselbe Weise fehlschlagen. Eine Sonde, die fehlschlägt, während ihre Nachbarn Erfolg haben, sagt Ihnen etwas über den Pfad dieser Sonde, und der ehrliche Bericht lautet „von diesem einen Blickwinkel aus unerreichbar“, nicht „down“.
Warum löst sich dieselbe Domain von verschiedenen Sonden zu verschiedenen Adressen auf?
Weil es so funktionieren soll. GeoDNS und EDNS Client Subnet lassen DNS-Antworten davon abhängen, woher die Abfrage zu kommen scheint, sodass jeder Region die Adresse ihrer nächsten gesunden Kante übergeben wird; Anycast und CDNs stützen sich auf der Routing-Schicht auf denselben Trick. Verschiedene Adressen von verschiedenen Sonden sind die Lokalisierung bei der Arbeit. Es wird erst zum Befund, wenn die Adresse einer Region tot ist, während die anderen funktionieren — dann schickt der Name die Nutzer dieser Region getreulich zu einer gebrochenen Kante.