CLOUD DNS → STACKIT DNS · RUNBOOK
Cloud DNS zu STACKIT DNS: Cutover und Rollback
Eine öffentliche Cloud-DNS-Zone entspricht direkt einer STACKIT-DNS-Zone, und ihre Record Sets werden zu STACKIT-Record-Sets mit denselben Namen, Typen, TTLs und Werten. Was der Lauf nicht kann, ist der riskante Teil: die DNSSEC-Vertrauenskette entfernen, die Delegation beim Registrar umschalten und private Zonen behandeln, die STACKIT DNS nicht kennt. Dieses Runbook ordnet diese Schritte, nennt für jeden Schritt Verantwortliche und Prüfung und endet mit einem Rollback.
Eine öffentliche Zone mit ihren Records, umgewandelt
Eine für diese Seite geschriebene Umgebung, am 4. November 2026 von StackToIT bewertet: eine signierte öffentliche Zone mit A-, CNAME-, MX- und TXT-Records sowie eine private Zone für interne Namen. Zuerst die Eingabe, dann die Ressourcenblöcke, die die Engine als STACKIT-Terraform geschrieben hat, ohne die Prüfkommentare über jedem Block. Die Blöcke stehen in ihren Dateien nicht direkt hintereinander; jeder steht deshalb wörtlich in einem eigenen Ausschnitt.
resource "google_dns_managed_zone" "public" {
name = "shop-example-com"
dns_name = "shop.example.com."
description = "Public zone for the shop"
visibility = "public"
dnssec_config {
state = "on"
}
}resource "google_dns_record_set" "www" {
managed_zone = google_dns_managed_zone.public.name
name = "www.shop.example.com."
type = "A"
ttl = 300
rrdatas = ["203.0.113.10"]
}resource "google_dns_record_set" "spf" {
managed_zone = google_dns_managed_zone.public.name
name = "shop.example.com."
type = "TXT"
ttl = 3600
rrdatas = ["\"v=spf1 include:_spf.example.net -all\""]
}resource "stackit_dns_zone" "public" {
project_id = var.project_id
name = "shop-example-com"
dns_name = "shop.example.com"
}resource "stackit_dns_record_set" "spf" {
project_id = var.project_id
zone_id = stackit_dns_zone.public.zone_id
name = "shop.example.com"
type = "TXT"
ttl = 3600
records = ["\"v=spf1 include:_spf.example.net -all\""]
}
resource "stackit_dns_record_set" "www" {
project_id = var.project_id
zone_id = stackit_dns_zone.public.zone_id
name = "www.shop.example.com"
type = "A"
ttl = 300
records = ["203.0.113.10"]
}Gleiche Namen, gleiche Werte
Die abschließenden Punkte von Cloud DNS entfallen in den STACKIT-Namen, und der TXT-Wert behält seine Anführungszeichen. TTLs von 300 und 3600 Sekunden werden unverändert übernommen; genau diesen Wert senken Sie vor dem Cutover.
Die zwei Dinge, die der Entwurf nicht übernimmt
Zwei Einheiten desselben Laufs, wie engineering/architect-report.md sie festhält, in zwei wörtlichen Auszügen: Die signierte öffentliche Zone zieht um, aber unsigniert, und die private Zone hat bei STACKIT kein Gegenstück. Als Zielkandidat für die private Zone nennt derselbe Bericht selbst betriebenes internes DNS, etwa CoreDNS oder BIND auf Servern oder SKE.
- **Why:** A public zone maps to a STACKIT DNS zone; records are re-created and the registrar's name servers are switched at cut-over.
- **Includes:** `google_dns_record_set.apex_mx`, `google_dns_record_set.api`, `google_dns_record_set.spf`, `google_dns_record_set.www`
- **WARNING** (dns-dnssec): The zone is DNSSEC-signed. STACKIT DNS does not sign zones ("DNSSEC zone signing is currently not available"): the zone moves unsigned. Remove the DS record at the registrar before moving the delegation, or validating resolvers reject the zone.- **Why:** A private zone resolves names inside the VPCs. STACKIT DNS is public authoritative DNS only, so internal names need a DNS server the STACKIT networks use as resolver, or the names become public records.
- **Includes:** `google_dns_record_set.db_internal`
- **Depends on:** `google_compute_network.core`Was der Lauf einstuft
| Einheit | Klasse und Ziel | Welle |
|---|---|---|
| Öffentliche Managed Zone mit 4 Record Sets | DIRECT, MEDIUM: STACKIT-DNS-Zone und Record Sets | 1 |
| VPC-Netzwerk, an das die private Zone gebunden ist | RECONFIGURE, MEDIUM: STACKIT-Netzwerk oder Network Area; in dieser Umgebung schreibt der Lauf dafür keine Ressource | 1 |
| Private Managed Zone mit 1 Record Set | REDESIGN, LOW: ein eigener DNS-Server, den die STACKIT-Netzwerke als Resolver nutzen, oder öffentliche Records | 2 |
Der Cutover-Abschnitt der technical-sequencing.md dieses Laufs lautet „No cutover facts“, obwohl die Umgebung eine öffentliche Zone enthält. Die Reihenfolge unten ist daher allgemeine Praxis auf Grundlage der Einheiten und Befunde des Laufs, kein Cutover-Plan der Engine.
Das Runbook, Schritt für Schritt
Jeder Schritt nennt die verantwortliche Person und die Prüfung, an der Sie das Ende erkennen. Die Schritte 1 bis 3 ändern für Nutzer nichts Sichtbares.
1. Alle Records erfassen. Verantwortlich: DNS-Verantwortliche
Der Lauf liest nur Terraform; in der Konsole oder mit anderen Werkzeugen angelegte Records sind daher unsichtbar. Exportieren Sie die Live-Zone, zum Beispiel mit gcloud dns record-sets export, und vergleichen Sie sie mit dem Terraform. Prüfung: Jedes Live-Record-Set steht im Entwurf oder in einer schriftlichen Ausnahmeliste.
2. TTLs senken. Verantwortlich: DNS-Verantwortliche
Senken Sie die TTL der umziehenden Records mindestens eine alte TTL vor dem Cutover, damit Resolver die Änderung schnell übernehmen. STACKIT weist darauf hin, dass eine Änderung je nach TTL und Caching wenige Minuten bis mehrere Stunden dauert, in manchen Fällen bis zu 48 Stunden. Prüfung: Zwei verschiedene Resolver liefern die niedrigere TTL.
3. Zone und Records bei STACKIT anlegen. Verantwortlich: Plattform-Engineer
Prüfen Sie terraform/dns.tf und wenden Sie es im Projekt an. Die Zone ist ab ihrer Erstellung öffentlich autoritativ, doch noch delegiert nichts darauf. Prüfung: Eine Abfrage direkt an einen STACKIT-Nameserver liefert alle Records. Die FAQ nennt ns1.stackit.cloud und ns2.stackit.zone; nutzen Sie die Nameserver, die STACKIT für Ihre Zone ausweist.
4. DNSSEC-Schritt entscheiden. Verantwortlich: Sicherheitsverantwortliche
STACKIT DNS führt DNSKEY und DS als Record-Typen, gibt aber an, dass das Signieren von Zonen derzeit nicht verfügbar ist; die Zone zieht also unsigniert um. Der Lauf verlangt, den DS-Record beim Registrar zu entfernen, bevor die Delegation wechselt, sonst weisen validierende Resolver die Zone ab. Googles Dokumentation ergänzt, dass Sie warten, bis die DS-Records aus den Caches abgelaufen sind. Prüfung: Für die Domain wird kein DS-Record mehr geliefert.
5. Delegation umschalten. Verantwortlich: Registrar-Kontakt
Ersetzen Sie die NS-Records beim Registrar durch die STACKIT-Nameserver. Die STACKIT-FAQ stellt klar, dass eine Zone erst auflöst, wenn die übergeordnete Ebene darauf delegiert. Prüfung: Die Parent-Zone liefert die neuen Nameserver; testen Sie wichtige Hostnamen aus mehreren Netzwerken.
6. Interne Namen behandeln. Verantwortlich: Netzwerkarchitekt
STACKIT DNS ist ausschließlich öffentliches autoritatives DNS, und laut FAQ ist das ACL-Feld der Zone inaktiv. Interne Namen brauchen einen eigenen Resolver, sonst werden sie zu öffentlichen Records. Der Lauf beschreibt, wie die STACKIT-Netzwerke diesen Resolver erreichen: über die Einstellung ipv4_nameservers jedes stackit_network. Welches Netzwerk welche VPC ersetzt, entscheiden Sie. Veröffentlichen Sie keine interne Adresse aus Versehen. Prüfung: Server lösen ihre internen Namen im neuen Netzwerk auf.
7. Beobachten, dann stilllegen. Verantwortlich: DNS-Verantwortliche
Allgemeine Praxis: Lassen Sie die alte Zone antworten, bis die alte TTL zweimal verstrichen ist, vergleichen Sie Query-Logs und Monitoring, und löschen Sie die Cloud-DNS-Zone erst, wenn das Rollback-Fenster geschlossen ist.
Rollback
Ein Rollback ist ein Delegationswechsel; deshalb bleibt die alte Zone bis zum Schluss unangetastet.
| Auslöser | Maßnahme und Verantwortliche | Prüfung |
|---|---|---|
| Ein Record antwortet bei STACKIT falsch | Record zuerst bei STACKIT korrigieren; drängt die Zeit, die NS-Records zurücksetzen. Verantwortlich: DNS-Verantwortliche | Der Record liefert bei den STACKIT-Nameservern den vorgesehenen Wert |
| Mail oder eine Anwendung fällt nach dem Wechsel aus | Die Cloud-DNS-Nameserver beim Registrar wiederherstellen. Die alte Zone enthält weiter alle Records. Verantwortlich: Registrar-Kontakt | Die Parent-Zone liefert die Cloud-DNS-Nameserver |
| Die Domain war signiert und soll es wieder sein | Nach der Rückdelegation erneut einen DS-Record veröffentlichen. Allgemeine Praxis: DNSSEC in der Cloud-DNS-Zone aktiviert lassen, bis das Rollback-Fenster vorbei ist, und die DS-Werte dann in Googles Dokumentation bestätigen. Verantwortlich: Sicherheitsverantwortliche | Validierende Resolver lösen die Zone auf |
| Interne Auflösung schlägt fehl | Die private Cloud-DNS-Zone behalten, bis der interne DNS-Server ihre Namen bedient. Verantwortlich: Netzwerkarchitekt | Interne Hostnamen lösen im neuen Netzwerk auf |
Fragen von DNS-Verantwortlichen
Signiert STACKIT DNS Zonen mit DNSSEC?
Stand November 2026 dokumentiert STACKIT das Signieren von Zonen mit DNSSEC als derzeit nicht verfügbar. Die Engine zieht die Zone unsigniert um und verlangt, zuerst den DS-Record beim Registrar zu entfernen.
Lassen sich private Cloud-DNS-Zonen auf STACKIT DNS umziehen?
Nein. STACKIT DNS ist öffentliches autoritatives DNS. Der Lauf stuft eine private Zone als REDESIGN ein: Interne Namen brauchen einen DNS-Server, den die STACKIT-Netzwerke als Resolver nutzen, oder sie werden öffentliche Records.
Ändern sich die TTLs beim Umzug der Zone?
Nicht im Entwurf. TTLs werden wie geschrieben übernommen. Sie vor dem Cutover zu senken und danach wieder anzuheben, ist Ihre Entscheidung.
Wer schaltet die Delegation um?
Sie, beim Registrar. Der Lauf führt keinen Cutover durch und nennt keine Dauer; der Delegationsschritt liegt bei Ihnen.
Quellen
Ihr nächster Schritt: STACKIT.
Erzählen Sie uns von Ihrer Umgebung. Wir zeigen Ihnen, was StackToIT dafür liefert: Zielarchitektur, Terraform-Artefakte und einen strukturierten Migrationsplan.