Sie kopieren die Adresse aus einer Abfrage in Ihre Routing-Regel, die Seite funktioniert, und eine Woche später nicht mehr. An der Regel hat sich nichts geändert. Der Dienst ist auf eine andere Edge-Adresse umgezogen, der Client hat einen anderen Hostnamen aufgelöst, oder die Sitzung ist auf IPv6 umgestiegen. Die Entscheidung vor Ihnen ist, ob eine namensbasierte Regel oder ein explizites Bereichspräfix das richtige Instrument für diesen Dienst ist, und drei Bedingungen entscheiden das. Das Folgende trennt den Namen von der Adresse, weil nur eines von beidem stabil ist.

Warum eine Abfrage kein Bestand ist

Ein Content-Delivery-Netzwerk antwortet mit einer Adresse, die für den Resolver, die Region und den Moment gewählt wurde. Fragen Sie zweimal aus verschiedenen Netzen, und Sie können verschiedene Antworten erhalten. Fragen Sie einmal und behandeln die Antwort als Adressliste des Dienstes, und die Regel, die Sie schreiben, ist eine Momentaufnahme und keine Regel. Das ist das ganze Problem damit, eine DNS-Antwort als Konfiguration zu behandeln.

Es gibt eine zweite Lücke. Ein sichtbarer Hostname deckt selten die ganze Anwendung ab, weil Anmeldung, Medien und API-Verkehr oft getrennte Namen verwenden. Eine Regel, die aus dem Hostnamen in der Adressleiste gebaut wird, kann die Seite abdecken und das Video verfehlen, was als Teilausfall und nicht als Routingfehler gelesen wird.

Die dritte Lücke ist die Adressfamilie. Eine Regel nur für v4 sagt nichts über den AAAA-Eintrag aus, den der Client bevorzugen könnte.

Drei Bedingungen, die Domänenregel oder Bereiche entscheiden

Erstens, veröffentlicht der Dienst eine stabile Menge von Präfixen, die Sie besitzen und dokumentieren können? Wenn ja, sind explizite Bereiche ehrlich und billig. Wenn nicht, ist eine Domänenregel der einzige Mechanismus, der dem Dienst folgen kann.

Zweitens, aktualisiert sich der Domänenmechanismus Ihres Clients? Eine Regel, die einmal beim Verbinden auflöst und nie wieder, ist eine Momentaufnahme mit besserem Branding. Drittens, deckt der Mechanismus Subdomains und beide Adressfamilien ab, oder nur die Namen, die Sie eingetippt haben?

Beantworten Sie diese drei, und die Wahl ist meist offensichtlich. Raten erzeugt eine Regel, die im Test funktioniert und im Betrieb versagt.

Testen Sie eine Sitzung, nicht eine Seite

Laden Sie die Seite und führen Sie dann die Operation aus, auf die es ankommt: anmelden, Wiedergabe starten, eine Datei hochladen. Jede davon kann einen anderen Host erreichen, und die, die versagt, ist die, die Ihre Regel verfehlt hat.

Zählen Sie auf, was die Sitzung tatsächlich kontaktiert, statt was die Seite anzeigt:

dig +short example.com A
dig +short example.com AAAA
curl -sI https://example.com | head -5

Halten Sie den Resolver beim Vergleich sichtbar, denn eine Regel, die von einem Resolver funktioniert und von einem anderen versagt, sagt Ihnen etwas über die Antwort des CDN, nicht über den Tunnel. Eine kurze TTL bedeutet auch, dass die notierte Antwort ein Haltbarkeitsdatum hat.

Was jeder Mechanismus tatsächlich abdeckt

Die beiden Mechanismen wirken auf einer Einstellungsseite austauschbar und verhalten sich darunter unterschiedlich.

MechanismWhat it matchesHow it fails
Domain ruleNames the client resolves, then their addressesMisses subdomains, or goes stale when refresh is off
Address routeA prefix you wrote downKeeps matching an address the service has left

Eine Kernel-Adressroute passt Präfixe an. Sie hat keine Ahnung, was ein Hostname ist, kann also einem Dienst nicht folgen, der Adressen ändert. Eine Domänenregel löst Namen auf und routet das Ergebnis; sie folgt dem Dienst, hängt aber vom Resolver, vom Aktualisierungsverhalten und vom Umgang des Clients mit Subdomains ab, also muss eine namensfolgende Regel mit dem Resolver getestet werden, den der Client tatsächlich nutzt.

Keine ist eine Obermenge der anderen, weshalb ihre Mischung ohne Notiz später Verwirrung erzeugt.

Nach der Änderung des Dienstes erneut prüfen

Führen Sie nach einem Client-Update oder einer Änderung des Dienstes denselben Sitzungstest erneut aus. Eine zuvor funktionierende Adressliste ist ein Beleg über jenen Zeitraum, kein dauerhafter Bestand der Infrastruktur des Dienstes.

Notieren Sie, welcher Mechanismus welchen Hostnamen abdeckt, und das Datum der letzten Prüfung.

Diese Notiz ist der Unterschied zwischen einer Regel, die Sie verteidigen können, und einer Regel, die niemand anzufassen wagt. Wenn der Dienst seine eigene Präfixliste veröffentlicht, nutzen Sie sie und nennen Sie das Datum. Wenn nicht, sagen Sie es, und halten Sie die Domänenregel mit ihrem Aktualisierungsverhalten daneben fest.

Ähnliche Artikel