Funktion

GTM-Trigger und -Forwarder

GTM tut mehr, als nur DNS-Antworten zu erzeugen — bei Health-Statusänderungen löst es externe Trigger aus und leitet DNS-Anfragen an den richtigen Forwarder.

TR7 GTM-Trigger und -Forwarder heben das globale Traffic-Management über passive DNS-Antworten hinaus. Wenn ein Health-Check-Szenario in den aktiven oder passiven Zustand wechselt, können HTTP/HTTPS- oder Oracle-DB-Trigger ausgelöst werden — sodass Failover-, DR-, Audit-, Runbook- und externe Monitoringsysteme automatisch reagieren können. Trigger werden für die Turn- und Return-Richtung separat definiert. Aktiviert sich das Szenario, läuft die Kette triggerTurnActions der Reihe nach; kehrt es in den Normalbetrieb zurück, läuft die Kette triggerReturnActions. HTTP/HTTPS-Trigger lassen sich anhand von Statuscode, Headern, Body und einer JSONata-Content-Prüfung validieren; Oracle-Trigger arbeiten mit einer Datenbankverbindung und einem Szenario-Schritt-Array. Die Forwarder-Schicht steuert, wohin DNS-Anfragen gesendet werden. Bestimmte Domains lassen sich an unterschiedliche Upstream-DNS-Ziele lenken; TR7s eigene autoritative Zonen können nach localhost geforwardet werden; und ECS-Informationen bleiben erhalten, sodass Geo-Routing-Entscheidungen nicht gebrochen werden. Das Ergebnis: TR7 GTM geht über DNS-Auflösung hinaus — es bietet eine Trigger-Kette, die Health-Statusänderungen an externe Systeme spiegelt, und eine Forwarder-Schicht, die selektives DNS-Forwarding liefert.

2
Trigger-Typen: HTTP/HTTPS und Oracle DB
24 Std.
Maximale Trigger-Timeout-Obergrenze
5
Forwarder-Stats: queries, answers_bytes, cache_hit, cache_miss, latency

Wenn GTM einen Failover durchführt, muss der Rest der Organisation davon erfahren.

In einer GTM-Architektur kann eine Änderung des Health-Check-Status die DNS-Antwort ändern — doch ein Vorfall ist selten nur eine DNS-Antwort. Geht ein Rechenzentrum offline, müssen das Alarmsystem, das Ticketing, die DR-Automatisierung, die Audit-Pipeline und das Anwendungsteam alle Bescheid wissen. Ohne diese Verbindung trifft GTM die Entscheidung, während der Rest der operativen Kette der Organisation erst zu spät davon erfährt.

Eine separate Orchestrierungsschicht zu betreiben ist möglich, bedeutet aber einen neuen Dienst, neue Credentials, neues Monitoring und einen neuen Fehlerpunkt. Der Health Check läuft bereits in GTM; die Propagation von Statusänderungen an externe Systeme sollte aus derselben Plattform gesteuert werden.

Auf der DNS-Forwarding-Seite ist das Problem ähnlich. Einige Domains gehören ins interne DNS, einige an einen externen Resolver, einige in TR7s eigene autoritative Zone. Wenn ein einfacher Forwarder alles an ein einziges Ziel sendet, kollidieren Split-DNS, interne Zonen, Partner-Domains und Geo-Routing-Verhalten.

Geht ECS-Information verloren, verschärft sich das Problem. Geo- und topologiebasierte Entscheidungen hängen vom Client-Netzwerkkontext ab; entfernt der Forwarder diesen Kontext, kann das Upstream-Geo-Routing am falschen Standort getroffen werden. Ein Forwarder sollte nicht nur die Anfrage tragen — er sollte auch den Entscheidungskontext bewahren.

TR7 GTM-Trigger und -Forwarder verknüpfen Health-Check-Statuswechsel mit HTTP/HTTPS- oder Oracle-DB-Aktionsketten und machen DNS-Forwarding über selektives Domain-Forwarding, localhost-Zone-Forward und ECS-Pass-Through betrieblich beherrschbar.

Unser Ansatz

TR7 entwirft GTM nicht nur als DNS-Engine, die Anfragen beantwortet, sondern als aktive Betriebsschicht, die auf Health-Zustand reagiert und DNS-Anfragen kontextabhängig weiterleitet.

Ein Health-Check-Statuswechsel startet die Trigger-Kette

Wechselt der Basiszustand des HC-Szenarios, können Turn- oder Return-Aktionen laufen. Aktiviert sich das Szenario, läuft triggerTurnActions der Reihe nach; kehrt es in den Normalbetrieb zurück, läuft triggerReturnActions der Reihe nach.

HTTP- und HTTPS-Trigger können den Response-Inhalt validieren

HTTP/HTTPS-Trigger werden mit Methode, URI, Headern, Body, erwarteten Statuscodes und Timeout definiert. Der Response-Body kann mit einer JSONata- oder Basic-Content-Prüfung validiert werden, um zu bestimmen, ob die Aktion erfolgreich war.

Oracle-DB-Trigger führen Datenbankszenarien aus

Oracle-Trigger arbeiten mit einem Connection-String und einem Szenario-Schritt-Array. wait- und executeCmd-Schritte können Prüfungen oder Aktionen gegen die Datenbank durchführen; erwartete Row-Counts oder erwartete Textwerte können verifiziert werden.

Der DNS-Forwarder ermöglicht domainbasiertes Routing und ECS-Bewahrung

Der Forwarder kann bestimmte Domains an bestimmte DNS-Ziele senden; für die Root-Domain kann ein Default-Ziel definiert werden. Das ECS-Pass-Through bewahrt den Client-Subnet-Kontext, sodass Geo-Routing-Entscheidungen nicht gebrochen werden.

Funktionen

GTM-Trigger und -Forwarder vereinen Health-Check-Aktionen, HTTP/HTTPS- und Oracle-Validierung, verkettete Trigger-Flows und selektives DNS-Forwarding in einem einzigen Management-Modell.

HTTP-Trigger werden mit Methode, URI, Headern und Body konfiguriert

Ein HTTP-Trigger wird mit Zieladresse, Port, Request-Methode, URI, Header-Liste und Request-Body definiert. Eine Liste erwarteter Statuscodes bestimmt, ob der Aufruf erfolgreich war. Ein Timeout begrenzt langlaufende Aufrufe an externe Systeme. HTTP-basierte Ziele wie DR-Runbooks, Audit-Endpunkte oder Alarmsysteme können alle über dieses Modell ausgelöst werden.

HTTPS-Trigger führen sichere Aufrufe mit Zertifikatsvalidierungssteuerung durch

Ein HTTPS-Trigger wendet dasselbe Request-Modell wie HTTP über TLS an. Das Flag verifyCertificate bestimmt, ob das Zielzertifikat validiert wird. Die Zertifikatsvalidierung in Produktion aktiviert zu lassen, wird empfohlen. Dieses Muster wird genutzt, um GTM-Szenario-Wechsel an sichere externe Aktionssysteme zu übermitteln.

JSONata-Content-Prüfung macht die Validierung des Response-Bodys flexibel

HTTP/HTTPS-Trigger-Antworten können als JSON oder XML geparst und mit einem JSONata-Ausdruck validiert werden. Der Ausdruckskontext umfasst body, bodyRaw, headers und status. Beispielsweise kann auch dann, wenn das externe Runbook-System 200 zurückgibt, ein Feld success=true im Response-Body separat geprüft werden. Das ermöglicht robustere Trigger-Validierung, die sich nicht allein auf den Statuscode verlässt.

Basic-Content-Prüfung bietet einfache Substring-Validierung

Wo JSONata nicht nötig ist, kann eine Basic-Content-Prüfung verwendet werden. Der Response-Body wird mit der Semantik von .includes() auf das Vorhandensein eines bestimmten Strings getestet. Das reicht für kleine Integrationen, Legacy-Systeme oder Endpunkte, die eine einfache Health-Antwort liefern. Operatoren können schnell validieren, ohne einen komplexen Ausdruck zu schreiben.

Oracle-DB-Trigger führen Datenbankverbindungen und Szenario-Schritte aus

Ein Oracle-Trigger verbindet sich mit der Datenbank über Benutzer, Passwort und Connection-String. Szenario-Schritte können wait- und executeCmd-Operationen enthalten. Erwartete Row-Counts oder erwartete Textwerte aus executeCmd können verifiziert werden. Dieses Modell wird genutzt, um den Anwendungs-Datenbankzustand quer zu validieren oder kontrollierte Aktionen auf Datenbankseite auszuführen.

Trigger-Verkettung führt mehrere Aktionen nacheinander aus

Die Arrays triggerTurnActions und triggerReturnActions führen mehrere Trigger-IDs der Reihe nach aus. Schlägt eine Aktion fehl, bricht die Kette ab und nachfolgende Aktionen laufen nicht. Das verhindert, dass abhängige Runbook-Schritte unkontrolliert weiterlaufen. Flows wie zuerst an einen Audit-Endpunkt schreiben und dann einen DR-Job starten lassen sich so aufbauen.

Turn- und Return-Richtungen behandeln Szenarioübergänge getrennt

turn steht für den Moment, in dem das Szenario aktiviert wird; return für den Moment, in dem es deaktiviert und in den Normalbetrieb zurückkehrt. Für jede Richtung lässt sich eine eigene Trigger-Liste und Bedingung definieren. Während des Failovers und der Wiederherstellung können unterschiedliche Aktionen ausgelöst werden. Diese Trennung erlaubt einen sauberer entworfenen Betriebsfluss.

Bereinigung aktiver Trigger verhindert das Kollidieren alter Trigger-Prozesse

Sobald ein neuer Group-Key eintrifft, können alte Trigger-Prozesse gestoppt werden. Der Trigger-Lebenszyklus wird mit started-, succeeded- und failed-Log-Einträgen nachverfolgt; nach einer kurzen Verzögerung wird das activeTrigger-Event gelöscht. Dieses Verhalten reduziert das Risiko, dass alte Aktionen mit einem neuen Flow kollidieren, wenn Health-Statuswechsel in schneller Folge eintreten. Der Hauptdienst bleibt vom Trigger-Fork isoliert.

Die Trigger-Ausführung ist auf den Master-Knoten beschränkt

In einem Cluster laufen Trigger nur auf dem Master-Knoten. Andere Knoten, die denselben Health-Statuswechsel sehen, lösen die externe Aktion nicht erneut aus. Das verhindert das doppelte Auslösen von Webhook- oder DB-Aktionen. Das Clusterverhalten wird deterministischer.

Der PowerDNS-Recursor-Forwarder läuft als separater Prozess auf einem eigenen Port

Die Forwarder-Schicht ist als separater Recursor-Prozess platziert. Sie empfängt DNS-Anfragen über den forwarderInnerPort-Bereich und leitet sie an definierte Upstream-Ziele. Autoritatives DNS und Recursor-Forwarding-Verhalten sind entkoppelt. Diese Trennung erlaubt TR7, eigene Zonen und externe DNS-Auflösung kontrolliert innerhalb derselben Architektur zu verwalten.

Selektives Domain-Forwarding definiert ein anderes Ziel pro Domain

Die Liste domainBasedForwarding erlaubt es, bestimmte Domains an bestimmte DNS-Adressen zu lenken. Interne Domains können an das Unternehmens-DNS gehen; andere Anfragen an den Default-Upstream-Resolver. Dieses Design ist für Split-DNS- und Hybrid-DNS-Architekturen wichtig. Es geht über einen groben Forwarder hinaus, der jede Anfrage an ein einziges Ziel sendet.

ECS-Pass-Through bewahrt den Client-Kontext für Geo-Entscheidungen

Der Forwarder reicht ECS-Informationen an Upstream-Resolver weiter, damit diese mit Client-Subnet-Kontext entscheiden können. Das ECS-Verhalten wird über ecs-ipv4-bits-, ecs-add-for- und Allow-Liste-Einstellungen gesteuert. Dieser Kontext ist für Geo-Routing oder topologiebasierte Upstream-Entscheidungen entscheidend. Geht ECS verloren, kann Geo-Routing am falschen Resolver-Standort getroffen werden.

Betriebliche Tiefe

GTM-Trigger und Forwarder werden zusammen mit Timeout-Verhalten, Lebenszyklus-Tracking, Child-Prozess-Isolation, Parse-Priorität, Forward-Zonen-Reihenfolge und Metadaten-Zeilen betrieben.

01

Trigger-Timeout-Verhalten

Das Default-Timeout für einen HTTP-Trigger kann 120 Sekunden betragen. Ein Oracle-Trigger kann je nach eigener Verarbeitungszeit länger laufen. Der gesamte Trigger-Prozess kann auf 24 Stunden begrenzt sein — eine wichtige obere Grenze für lange Runbooks oder mehrstufige Datenbank-Szenarien.

02

Retry-Verhalten

Es gibt keinen automatischen Retry in der Trigger-Kette. Schlägt ein Trigger fehl, bricht die Kette ab und nachfolgende Aktionen laufen nicht. Zielsysteme sollten daher idempotent und zuverlässig entworfen sein.

03

Logging des Trigger-Lebenszyklus

Trigger werden mit den Zuständen started, succeeded und failed protokolliert. Diese Einträge zeigen, welche Aktion während eines Failover- oder Recovery-Ereignisses lief. Der aktive Trigger-Zustand wird nach einer kurzen Verzögerung gelöscht.

04

Separate Prozessausführung

Die Trigger-Ausführung kann als separater Child-Prozess laufen. Dieses Modell verhindert, dass der Haupt-GTM-Dienst von langlaufenden externen Aufrufen oder DB-Operationen beeinträchtigt wird. Ein fehlschlagender Trigger reißt den Hauptdienst nicht mit.

05

Priorität beim Parsen der Antwort

Der HTTP-Response-Body wird zuerst als JSON, dann als XML basierend auf dem Content-Type geparst. Schlägt beides fehl, wird ein Raw-String-Fallback verwendet. Der JSONata-Ausdruck wird auf diesen Kontext angewendet.

06

Reihenfolge der Forward-Zonen

Die Zeilen forward-zones-recurse werden in einer definierten Reihenfolge erzeugt. Die erste Domain-Forward-Definition wird als Primary-Zeile geschrieben; nachfolgende Definitionen als zusätzliche Zeilen. Diese Reihenfolge ist für die saubere Anwendung selektiven Forwarding-Verhaltens wichtig.

07

Forwarder-Metadaten

Das Feld forwarder.metaData trägt zusätzliche Recursor-Konfigurationszeilen. Es bietet einen Erweiterungspunkt für eigene Cache-, Policy- oder Betriebseinstellungen. In Betrieb befindliche Metadatenzeilen sollten sorgfältig validiert werden.

Wann einsetzen

Webhook-Alarm, wenn das primäre Rechenzentrum ausfällt

Wenn das Health-Check-Szenario aktiviert wird, feuert ein HTTP-POST-Trigger. Das Alarm- oder Incident-Management-System erhält die Rechenzentrums-Down-Benachrichtigung. Die DNS-Failover-Entscheidung wird zeitgleich für das externe Betriebssystem sichtbar.

Automatischer Runbook-Start bei Aktivierung des DR-Szenarios

Wird ein DR-Szenario aktiviert, kann ein HTTPS-Trigger einen Job in der Automatisierungsplattform starten. Der erste Trigger erstellt einen Audit-Eintrag; der zweite Trigger führt den DR-Bring-Up-Job aus. Schlägt die Trigger-Kette fehl, läuft der nächste Schritt nicht unkontrolliert weiter.

Health-Check-Wechsel an einen Audit-Endpunkt schreiben

Bei jedem Turn- und Return-Event kann ein HTTP-Trigger einen Event-Eintrag an den Audit-Endpunkt senden. Informationen darüber, in welcher Zone, in welchem Szenario und wann der Wechsel stattfand, werden an das externe Log-System gepusht. GTM-Entscheidungen werden auditierbar.

Cross-Validierung des Anwendungs-Datenbankzustands mit einem Oracle-Trigger

Wenn ein Anwendungs-Heartbeat fehlschlägt, kann ein Oracle-Trigger eine unabhängige DB-Prüfung ausführen. Werden der erwartete Row-Count oder Textwert zurückgegeben, wird das Ereignis cross-validiert. Das ergibt ein stärkeres Entscheidungssignal, ohne sich allein auf das HTTP-Health-Check-Ergebnis zu verlassen.

Interne Domain-Anfragen an das Unternehmens-DNS forwarden

Domains wie internal.example.com können über domainBasedForwarding an Unternehmens-DNS-Ziele weitergeleitet werden. Andere Anfragen gehen an das Default-Upstream-DNS. TR7s eigene autoritative Zonen können per localhost an den lokalen DNS-Prozess geforwardet werden.

Einen selektiven Forwarder in einer Split-Horizon-DNS-Architektur einsetzen

Interne Clients können interne Anwendungsdomains über den Unternehmens-Recursor auflösen, während externe Clients TR7-GTM-autoritative Antworten erhalten. Selektives Forwarding und ECS-Pass-Through gemeinsam eingesetzt entkoppeln das Auflösungsverhalten von intern und extern. Die DNS-Architektur ist nicht in einseitiges Forwarding gezwängt.

Häufig gestellte Fragen

Welche Trigger-Typen unterstützt GTM?
TR7 GTM bietet zwei Trigger-Typen: HTTP/HTTPS und Oracle DB. HTTP/HTTPS-Trigger werden mit Methode, URI, Headern, Body und erwarteten Statuscodes konfiguriert; der Response-Body kann mit einer JSONata- oder Basic-Content-Prüfung validiert werden. Oracle-DB-Trigger arbeiten mit Connection-String und Szenario-Schritten, um Prüfungen oder Aktionen auf Datenbankseite auszuführen.
Was passiert, wenn eine Trigger-Kette an einer Aktion fehlschlägt?
Schlägt eine Aktion im Array triggerTurnActions oder triggerReturnActions fehl, bricht die Kette an diesem Punkt ab und nachfolgende Aktionen laufen nicht. Es gibt keinen automatischen Retry. Zielsysteme sollten daher idempotent und zuverlässig entworfen sein. Trigger-Ergebnisse werden als started, succeeded oder failed protokolliert.
Welcher Knoten führt Trigger in einem Cluster aus?
In einem Cluster laufen Trigger nur auf dem Master-Knoten. Andere Knoten, die denselben Health-Statuswechsel beobachten, lösen die externe Aktion nicht erneut aus. Dieser Mechanismus verhindert doppeltes Auslösen von Webhook- oder DB-Aktionen und macht das Cluster-Verhalten deterministischer.
Wie bewahrt der DNS-Forwarder ECS-Informationen?
Die Forwarder-Schicht reicht Client-Subnet-Informationen per ECS-Pass-Through an Upstream-DNS weiter. Das ECS-Verhalten wird mit ecs-ipv4-bits-, ecs-add-for- und edns-subnet-allow-list-Einstellungen gesteuert. Geht ECS verloren, können Geo-Routing- oder topologiebasierte Upstream-Entscheidungen am falschen Resolver-Standort getroffen werden — was ECS-Pass-Through in Geo-bewussten Architekturen entscheidend macht.
Wie wird selektives Domain-Forwarding konfiguriert?
Die Liste domainBasedForwarding erlaubt es, bestimmte Domains an bestimmte DNS-Adressen zu lenken. Pro Domain lässt sich ein eigenes Ziel definieren; Anfragen ohne passenden Eintrag gehen an den Default-Upstream-Resolver. TR7s eigene autoritative Zonen können per localhost an den lokalen DNS-Prozess geforwardet werden. Dieses Design passt zu Split-DNS- und Hybrid-DNS-Architekturen.
Wie funktioniert die Validierung der HTTP/HTTPS-Trigger-Antwort?
Sobald der Trigger-Aufruf abgeschlossen ist, wird der Response-Body zuerst als JSON, dann als XML geparst; schlagen beide fehl, wird er als Raw-String behandelt. Im JSONata-Content-Check-Modus wird der Ausdruck gegen diesen Kontext ausgewertet. Im Basic-Content-Check-Modus wird das Vorhandensein eines bestimmten Strings im Response-Body mit .includes()-Semantik getestet. Der Validierungsumfang umfasst den Response-Inhalt, nicht nur den Statuscode.

Verbinden Sie GTM-Failover-Entscheidungen mit Ihren externen Systemen

HTTP/HTTPS- und Oracle-DB-Trigger-Ketten, selektives DNS-Forwarding und ein ECS-bewusster Recursor. Gehen wir gemeinsam ein Live-Setup in Ihrer eigenen Umgebung durch.