CLOUDNETWERKMIGRATIE · GIDS
Cloudnetwerkmigratie naar STACKIT: routing, VPN, DNS en firewalls
Subnets, security groups en een VPN-gateway zijn bijna één op één om te zetten. Aangepaste routes en privé-DNS niet: de engine houdt ze voor een architect achter in plaats van te gokken. Deze gids volgt één klein netwerk door een echte StackToIT-run en laat zien welke resources Terraform worden en welke beslissingen.
Een site-to-site-VPN, omgezet
Een demonetwerk voor deze gids, op 4 november 2026 beoordeeld door StackToIT: één VPC, twee subnets, een NAT-gateway, een VPN naar een kantoor en een privé-DNS-zone. Links: de VPN-resources uit de invoer. Rechts: de STACKIT-Terraform die de run ervoor schreef, zonder de reviewopmerkingen van het bestand.
resource "aws_vpn_gateway" "office" {
vpc_id = aws_vpc.core.id
}
resource "aws_customer_gateway" "office" {
bgp_asn = 65000
ip_address = "203.0.113.10"
type = "ipsec.1"
}
resource "aws_vpn_connection" "office" {
vpn_gateway_id = aws_vpn_gateway.office.id
customer_gateway_id = aws_customer_gateway.office.id
type = "ipsec.1"
static_routes_only = true
}resource "stackit_vpn_gateway" "office" {
project_id = var.project_id
display_name = "office"
plan_id = var.vpn_plan_id
routing_type = "ROUTE_BASED"
availability_zones = {
tunnel1 = var.availability_zones[0]
tunnel2 = var.availability_zones[1]
}
}
resource "stackit_vpn_connection" "office" {
project_id = var.project_id
display_name = "office"
gateway_id = stackit_vpn_gateway.office.gateway_id
tunnel1 = {
remote_address = var.office_peer_address
pre_shared_key_wo = var.office_pre_shared_keys[0]
pre_shared_key_wo_version = 1
phase1 = {
encryption_algorithms = ["aes256"]
integrity_algorithms = ["sha2_256"]
}
phase2 = {
encryption_algorithms = ["aes256"]
integrity_algorithms = ["sha2_256"]
}
}
tunnel2 = {
remote_address = var.office_peer_address
pre_shared_key_wo = var.office_pre_shared_keys[1]
pre_shared_key_wo_version = 1
phase1 = {
encryption_algorithms = ["aes256"]
integrity_algorithms = ["sha2_256"]
}
phase2 = {
encryption_algorithms = ["aes256"]
integrity_algorithms = ["sha2_256"]
}
}
static_routes = var.office_static_routes
}Drie resources worden twee
De virtual private gateway en de VPN-verbinding worden een STACKIT VPN-gateway en -verbinding. De customer gateway bevat alleen het adres en het ASN van het kantoorapparaat, dus de run legt die vast als ondersteunende resource van de verbinding en schrijft er geen blok voor. Het kantooradres komt terug als variabele.
Secrets blijven buiten het bestand
De twee pre-shared keys zijn variabelen zonder standaardwaarde, als gevoelig gemarkeerd. De run vraagt nieuwe sleutels, omdat het on-premises apparaat opnieuw wordt geconfigureerd voor de nieuwe peer; de sleutels van de oude verbinding worden niet overgenomen.
Statische routes worden een invoer
Routes die via de tunnel worden aangekondigd, zijn een invoerlijst (office_static_routes), geen gok. De STACKIT VPN-documentatie noemt policy-based routing, statische routes en dynamische routing via BGP, dus de keuze tussen statisch en BGP maakt u met het team dat het kantoorapparaat beheert.
Waar de run stopt en vraagt: routes en privé-DNS
Uit dezelfde run. Links: de routetabel met een NAT-route en een route naar het kantoor, en de private hosted zone. Rechts: hoe assessment.json ze vastlegt (id, klasse, zekerheidsniveau en doel; de redenen staan hieronder samengevat).
resource "aws_route_table" "app" {
vpc_id = aws_vpc.core.id
route {
cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.core.id
}
route {
cidr_block = "192.168.0.0/16"
gateway_id = aws_vpn_gateway.office.id
}
}
resource "aws_route53_zone" "internal" {
name = "corp.example.internal"
vpc {
vpc_id = aws_vpc.core.id
}
}{
"id": "aws_route_table.app",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW"
}
}
{
"id": "aws_route53_zone.internal",
"result": {
"class": "REDESIGN",
"confidence": "MEDIUM",
"target": {
"service": "self-managed internal DNS (e.g. CoreDNS or BIND on servers or SKE)"
}
}
}De routetabel wordt voor een architect achtergehouden
Geen van beide routes kan veilig worden geschreven. STACKIT kent geen NAT-gateway-resource, dus de standaardroute naar de NAT-gateway wordt achtergehouden en het vaste egress-adres van die gateway wordt niet overgenomen. De route naar het kantoor loopt via de VPN-configuratie, die de STACKIT VPN-FAQ noemt als plek voor VPN-routing. De klasse is MANUAL_REVIEW met zekerheidsniveau LOW, en elke route staat als niet overgenomen vermeld met wat u in plaats daarvan doet.
Privé-DNS is een redesign
Route 53 private zones antwoorden alleen binnen de gekoppelde VPC's of via een inbound endpoint van een hybride opzet. STACKIT DNS is openbare autoritatieve DNS: de records zijn per ontwerp openbaar oplosbaar en het ACL-veld van de zone dwingt niets af. De run classificeert de privézone daarom als REDESIGN en stelt een zelf beheerde resolver voor, bijvoorbeeld CoreDNS of BIND op servers of op SKE, in plaats van interne namen te publiceren.
Beide bevindingen verschijnen vóór de bouw
Omdat het plan ze als beslissingen meeneemt, hoort een team van het ontbrekende NAT-adres en het openbare DNS-model terwijl het nog kan kiezen, niet na de eerste cutover.
Hoe het netwerk wordt gekoppeld
| AWS-resource | STACKIT-doel | Migratieklasse |
|---|---|---|
| VPC | Netwerken op projectniveau van STACKIT of Network Area | Herconfiguratie |
| Subnets (openbaar en app) | STACKIT-netwerk met hetzelfde IPv4-prefix | Herconfiguratie |
| Internet gateway | Impliciet: de standaardgateway van het STACKIT-netwerk | Herconfiguratie |
| NAT-gateway en Elastic IP | Impliciet uitgaand verkeer; het vaste egress-adres blijft niet behouden | Herconfiguratie |
| Routetabel met aangepaste routes | Geen doel opgesteld; routingontwerp bepaald door een architect | Beslissing van de architect |
| Security group | STACKIT security group en regels | Herconfiguratie |
| VPN-gateway, customer gateway, VPN-verbinding | STACKIT VPN-gateway en -verbinding | Herconfiguratie |
| Route 53 private hosted zone en record | Zelf beheerde interne DNS | Redesign |
Klassen zoals de run ze heeft bepaald. De customer gateway is een ondersteunende resource van de VPN, en de koppeling van de routetabel en het DNS-record gaan op in de routetabel en de zone, waardoor 14 resources als 11 eenheden verschijnen.
Firewallregels: aan beide kanten stateful, met één valkuil
AWS security groups en STACKIT security groups zijn allebei stateful regelsets, dus de regels worden één voor één omgezet. Links: de invoergroep. Rechts: wat de run schreef.
resource "aws_security_group" "app" {
name = "app-tier"
vpc_id = aws_vpc.core.id
ingress {
description = "HTTPS from the office network"
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["192.168.0.0/16"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}resource "stackit_security_group" "app" {
project_id = var.project_id
name = "app-tier"
}
resource "stackit_security_group_rule" "app_ingress_1" {
project_id = var.project_id
security_group_id = stackit_security_group.app.security_group_id
description = "HTTPS from the office network"
direction = "ingress"
ether_type = "IPv4"
ip_range = "192.168.0.0/16"
port_range = {
max = 443
min = 443
}
protocol = {
name = "tcp"
}
}Egress naar alles wordt niet geschreven
De bronregel die al het uitgaande verkeer toestaat, wordt gedekt door de standaardregels voor egress van STACKIT, dus de run schrijft er geen regel voor. Als de workloads niet alles buiten het netwerk mogen bereiken, is het beperken van egress een eigen ontwerptaak: het concept houdt de platformstandaard aan.
Een groep die nergens aan hangt, beperkt niets
In deze demo gebruikt geen enkele server de groep, dus de run markeert die als verweesd: de regels ervan beperken geen verkeer totdat een server of interface de groep draagt. Controleer de koppeling van elke groep in het concept voordat u erop vertrouwt.
Adresbereiken veranderen
Een regel die een AWS-intern bereik noemt, zoals een prefixlijst, moet opnieuw worden uitgedrukt met STACKIT-netwerkprefixen. Network ACL's hebben geen stateless tegenhanger: in de gepubliceerde AWS Retail Store-run zijn de zeven network ACL's door de standaardwaarden van de module uitgeschakeld, en de klasse die de run ervoor vastlegt is REDESIGN, met STACKIT security groups als doel.
Een verstandige volgorde voor een netwerkmigratie
De onderstaande volgorde is algemene praktijk, verbonden met wat de run schrijft. De run zelf ordent de eenheden op afhankelijkheid in migration/technical-sequencing.md.
1 · Elk adresbereik inventariseren
Som de CIDR's van alle VPC's, subnets en kantoornetwerken op. AWS adviseert niet-overlappende bereiken wanneer meerdere netwerken samenkomen op een gemeenschappelijk on-premises netwerk; hetzelfde geldt voor STACKIT. Behoud de prefixen van de subnets waar machines hun adressen houden.
2 · Netwerken en security groups bouwen
Deze zijn niet afhankelijk van data en worden direct omgezet. Controleer met een plan in een testproject voordat iets ervan afhangt.
3 · Het routingontwerp bepalen
Beantwoord de achtergehouden routetabel: een gedeeld egress-adres of een openbaar IP per server die een derde partij op de allowlist zet, en hoe kantoorroutes via de VPN worden doorgegeven.
4 · De VPN parallel opzetten
Maak de STACKIT-gateway en -verbinding aan terwijl de oude nog draait. Spreek het venster af met de eigenaar van het kantoorapparaat, die de nieuwe peer en sleutels moet configureren.
5 · DNS beschikbaar stellen voordat servers verhuizen
Interne namen moeten vanuit de nieuwe netwerken oplosbaar zijn voordat de eerste workload arriveert, dus de zelf beheerde resolver komt vóór de applicatiegolven.
6 · Per naam overschakelen, de weg terug bewaren
Verlaag de DNS-TTL's van tevoren, schakel namen om na de controles en bewaar de oude VPN en zone tot het rollbackvenster voorbij is.
Beslissingen van de netwerkarchitect
Egress-adres
Accepteer het gedeelde, wijzigbare egress-adres van het STACKIT-netwerk, of geef servers een openbaar IP waar een externe allowlist het oude NAT-adres noemt.
Routeontwerp
Of het doel überhaupt een routingtabel nodig heeft en hoe routes naar on-premises netwerken worden doorgegeven: statische routes of BGP op de VPN.
Interne DNS
Welke resolver interne namen bedient, waar die draait en hoe de STACKIT-netwerken hem bereiken. Openbare DNS-zones kunnen naar STACKIT DNS; privézones niet.
Standaard nameservers
Het concept stelt ipv4_nameservers op elk netwerk in vanuit één variabele waarvan de standaardwaarde de drie eu01-adressen van de DNS Resolver van STACKIT zijn. Per november 2026 zegt de resolverpagina van STACKIT dat de dienst nog niet algemeen beschikbaar is en uitsluitend bedoeld is voor workloads binnen STACKIT, en het concept merkt op dat hij alleen openbare namen oplost. De beschrijving van de variabele voegt toe dat een openbaar project anders openbare resolvers krijgt en dat een Network Area-project de standaardnameservers van de area gebruikt. Bevestig de standaardwaarde of wijs naar uw interne resolver.
VPN-plan en cutover
Het serviceplan van de gateway, de tunnelzones, wie het kantoorapparaat wijzigt en wanneer.
Bereikbaarheid van servers
STACKIT-netwerken kennen geen scheiding tussen openbaar en privé: een server is bereikbaar wanneer hij een openbaar IP heeft en zijn groep dat toestaat. Bepaal welke servers er geen krijgen.
Vragen van netwerkteams
Heeft een STACKIT-netwerk een NAT-gateway nodig?
Er bestaat geen NAT-gateway-resource. In een project buiten een Network Area geeft de standaardroutering van het netwerk uitgaande toegang, en de run legt de NAT-gateway vast als impliciet uitgaand verkeer. Wat u verliest, is het vaste egress-adres van de AWS-gateway, dat de run als beslissing meldt.
Kan STACKIT DNS een Route 53 private hosted zone vervangen?
Niet rechtstreeks. STACKIT DNS is openbare autoritatieve DNS, de records zijn openbaar oplosbaar en de ACL van de zone wordt niet afgedwongen. Openbare zones verhuizen ernaartoe; interne namen vereisen een eigen resolver.
Is de VPN een één-op-één-kopie van de AWS-verbinding?
De VPN heeft dezelfde vorm: IPsec met IKEv2 en twee tunnels. De peeradressen, pre-shared keys en tunnelparameters zijn nieuw, en het apparaat aan uw kant wordt opnieuw geconfigureerd. De STACKIT VPN noemt een bandbreedte van 100 tot 1.000 Mbit/s.
Waarom schrijft de run mijn routes niet?
Een routingtabel zonder de bronroutes zou verkeer sturen waar de brontabel dat niet deed. De engine houdt die achter, noemt elke route als niet overgenomen en laat het ontwerp 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.