CLOUD DNS → STACKIT DNS · RUNBOOK
Cloud DNS naar STACKIT DNS: cutover en rollback
Een publieke Cloud DNS-zone wordt rechtstreeks een STACKIT DNS-zone, en de recordsets worden STACKIT-recordsets met dezelfde namen, typen, TTL's en waarden. Wat de run niet kan doen, is juist het deel waar het risico zit: de DNSSEC-handtekeningketen verwijderen, de delegatie bij de registrar omzetten en privézones afhandelen, die STACKIT DNS niet biedt. Dit runbook zet die stappen in volgorde, noemt per stap een eigenaar en een controle, en eindigt met een rollback.
Een publieke zone en de records, omgezet
Een omgeving die voor deze pagina is geschreven en op 4 november 2026 door StackToIT is beoordeeld: een ondertekende publieke zone met A-, CNAME-, MX- en TXT-records, en een privézone voor interne namen. Eerst de invoer, dan de resourceblokken van de STACKIT-Terraform die de engine schreef, zonder de reviewcommentaren boven elk blok. De blokken staan in hun bestanden niet naast elkaar, dus elk heeft een eigen paneel, letterlijk.
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"]
}Dezelfde namen, dezelfde waarden
De afsluitende punten van Cloud DNS vervallen in de STACKIT-namen en de TXT-waarde behoudt de aanhalingstekens. TTL's van 300 en 3600 seconden worden ongewijzigd overgenomen; dat is de waarde die u vóór de cutover verlaagt.
De twee dingen die het concept niet overneemt
Twee eenheden uit dezelfde run, zoals engineering/architect-report.md ze vastlegt, in twee letterlijke fragmenten: de ondertekende publieke zone verhuist, maar zonder handtekening, en de privézone heeft op STACKIT geen tegenhanger. Het kandidaatdoel voor de privézone in hetzelfde rapport is zelf beheerde interne DNS, bijvoorbeeld CoreDNS of BIND op servers of 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`Wat de run classificeert
| Eenheid | Klasse en doel | Golf |
|---|---|---|
| Managed publieke zone met 4 recordsets | DIRECT, MEDIUM: STACKIT DNS-zone en recordsets | 1 |
| VPC-netwerk waaraan de privézone is gekoppeld | RECONFIGURE, MEDIUM: STACKIT-netwerken of een Network Area; de run schrijft er in deze omgeving geen resource voor | 1 |
| Managed privézone met 1 recordset | REDESIGN, LOW: een eigen DNS-server die de STACKIT-netwerken als resolver gebruiken, of publieke records | 2 |
Het cutoverdeel van de technical-sequencing.md van deze run meldt "No cutover facts", ook al bevat de omgeving een publieke zone. De onderstaande volgorde is dus algemene praktijk, gebouwd op de eenheden en bevindingen van de run, niet op een cutoverplan dat de engine schreef.
Het runbook, stap voor stap
Elke stap noemt de persoon die eigenaar is en de controle die aangeeft dat de stap klaar is. Stap 1 tot en met 3 veranderen niets wat gebruikers zien.
1. Inventariseer elk record. Eigenaar: DNS-eigenaar
De run leest alleen Terraform, dus records die in de console of met een andere tool zijn gemaakt, zijn onzichtbaar. Exporteer de live zone, bijvoorbeeld met gcloud dns record-sets export, en vergelijk die met de Terraform. Controle: elke live recordset staat in het concept of in een schriftelijke lijst met uitzonderingen.
2. Verlaag de TTL's. Eigenaar: DNS-eigenaar
Verlaag de TTL van de records die verhuizen, minstens één oude TTL vóór de cutover, zodat resolvers de wijziging snel oppikken. STACKIT merkt op dat een wijziging, afhankelijk van TTL en caching, enkele minuten tot enkele uren kan duren, in sommige gevallen tot 48 uur. Controle: de live TTL's tonen de lagere waarde vanaf twee verschillende resolvers.
3. Maak de zone en records aan op STACKIT. Eigenaar: platformengineer
Beoordeel terraform/dns.tf en pas het toe op het project. De zone is publiek en autoritatief zodra de zone bestaat, maar er delegeert nog niets naar. Controle: een query die rechtstreeks naar een STACKIT-nameserver gaat, geeft elk record terug. De FAQ noemt ns1.stackit.cloud en ns2.stackit.zone; gebruik de nameservers die STACKIT voor uw zone vermeldt.
4. Bepaal de DNSSEC-stap. Eigenaar: securityverantwoordelijke
STACKIT DNS noemt de recordtypen DNSKEY en DS, maar geeft aan dat het ondertekenen van zones momenteel niet beschikbaar is, dus de zone verhuist zonder handtekening. De run meldt dat u het DS-record bij de registrar verwijdert voordat u de delegatie verplaatst, anders weigeren valideerende resolvers de zone. De documentatie van Google voegt toe dat u wacht tot de DS-records uit de caches zijn verlopen. Controle: er wordt geen DS-record voor het domein teruggegeven.
5. Zet de delegatie om. Eigenaar: contactpersoon registrar
Vervang de NS-records bij de registrar door de STACKIT-nameservers. De FAQ van STACKIT is duidelijk dat een zone pas resolvet zodra het niveau erboven ernaar delegeert. Controle: de bovenliggende zone geeft de nieuwe nameservers terug; neem steekproeven van uw belangrijkste hostnamen vanaf meerdere netwerken.
6. Handel interne namen af. Eigenaar: netwerkarchitect
STACKIT DNS is uitsluitend publieke autoritatieve DNS, en volgens de FAQ is het ACL-veld van de zone niet actief. Interne namen hebben een eigen resolver nodig, anders worden ze publieke records. De run meldt hoe de STACKIT-netwerken die resolver bereiken: via de instelling ipv4_nameservers van elke stackit_network, en welk netwerk welke VPC vervangt, beslist u. Publiceer niet per ongeluk een intern adres. Controle: servers resolven hun interne namen vanuit het nieuwe netwerk.
7. Bewaak en faseer dan uit. Eigenaar: DNS-eigenaar
Algemene praktijk: laat de oude zone antwoorden totdat de oude TTL tweemaal is verstreken, vergelijk querylogs en monitoring, en verwijder de Cloud DNS-zone pas nadat het rollbackvenster is gesloten.
Rollback
Rollback is een delegatiewijziging, en daarom blijft de oude zone tot het einde intact.
| Aanleiding | Actie en eigenaar | Controle |
|---|---|---|
| Een record antwoordt verkeerd op STACKIT | Corrigeer het record eerst op STACKIT; als tijd telt, zet de NS-records terug. Eigenaar: DNS-eigenaar | Het record geeft de bedoelde waarde terug vanaf de STACKIT-nameservers |
| E-mail of een applicatie valt uit na de omschakeling | Zet de Cloud DNS-nameservers bij de registrar terug. De oude zone bevat nog elk record. Eigenaar: contactpersoon registrar | De bovenliggende zone geeft de Cloud DNS-nameservers terug |
| Het domein was ondertekend en moet dat weer worden | Publiceer opnieuw een DS-record nadat de delegatie is teruggekeerd. Algemene praktijk: laat DNSSEC ingeschakeld op de Cloud DNS-zone totdat het rollbackvenster voorbij is, en bevestig op dat moment de DS-waarden in de documentatie van Google. Eigenaar: securityverantwoordelijke | Valideerende resolvers resolven de zone |
| Interne naamresolutie mislukt | Houd de Cloud DNS-privézone aan totdat de interne DNS-server zijn namen serveert. Eigenaar: netwerkarchitect | Interne hostnamen resolven vanuit het nieuwe netwerk |
Vragen die DNS-eigenaren stellen
Ondertekent STACKIT DNS zones met DNSSEC?
Per november 2026 documenteert STACKIT het ondertekenen van zones met DNSSEC als momenteel niet beschikbaar. De engine verplaatst de zone zonder handtekening en meldt dat u eerst het DS-record bij de registrar verwijdert.
Kunnen privézones van Cloud DNS naar STACKIT DNS?
Nee. STACKIT DNS is publieke autoritatieve DNS. De run deelt een privézone in als REDESIGN: interne namen hebben een DNS-server nodig die de STACKIT-netwerken als resolver gebruiken, anders worden ze publieke records.
Veranderen de TTL's van records als de zone verhuist?
Niet in het concept. TTL's worden overgenomen zoals ze zijn geschreven. Ze vóór de cutover verlagen en erna verhogen is een beslissing die u neemt.
Wie zet de delegatie om?
U, bij de registrar. De run voert geen cutover uit en geeft geen tijdsinschatting; de delegatiestap is aan u.
Bronnen
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.