IPv6 in AWS, Azure und GCP
Aktivieren Sie IPv6 in Ihrer Cloud-Infrastruktur. Praktische Konfigurationsanleitungen für AWS, Azure und Google Cloud Platform.
Die meisten Cloud-Workloads laufen immer noch nur mit IPv4. Das wird zu einem Problem.
TL;DR - Kurzübersicht
Wichtige Punkte:
- Mobilfunknetze sind IPv6-first: Übersetzungen erzwingen fügt Latenz für die meisten Benutzer hinzu
- IPv4-Adressen kosten Geld in der Cloud, während IPv6 kostenlos ist
- Konfiguration ist ähnlich über AWS, Azure und GCP mit Dual-Stack-Unterstützung
- Kubernetes-Cluster können Dual-Stack auf allen großen Cloud-Providern betreiben
Direkt zu: AWS-Konfiguration | Azure-Konfiguration | GCP-Konfiguration | Kubernetes
Warum IPv6 in der Cloud aktivieren#
Mobilfunknetze sind seit Jahren IPv6-first. Wenn Ihre mobilen Benutzer Ihren Service aufrufen, kommen sie von einer IPv6-Adresse. Nur mit IPv4 zu laufen bedeutet, irgendwo im Pfad eine Übersetzung zu erzwingen, was Latenz und Komplexität hinzufügt.
Einige ISPs sind auf IPv6-only-Netzwerke mit NAT64 für Legacy-IPv4-Dienste umgestiegen. Wenn Sie nicht über IPv6 erreichbar sind, fügen Sie einen zusätzlichen Übersetzungs-Hop für diese Benutzer hinzu.
IPv4-Adressen kosten jetzt Geld. Cloud-Anbieter berechnen öffentliche IPv4-Adressen in den meisten Regionen. IPv6-Adressen sind kostenlos und reichlich vorhanden.
Die Architektur ist auch einfacher. Kein NAT, keine Port-Forwarding-Regeln, keine Adressknappheit zu verwalten. Jede Instanz erhält eine global routbare Adresse.
AWS IPv6-Konfiguration#
AWS hat solide IPv6-Unterstützung über die meisten Services. Beginnen Sie mit Ihrer VPC.
VPC Dual-Stack-Einrichtung#
Fügen Sie einen IPv6-CIDR-Block zu Ihrer bestehenden VPC hinzu:
aws ec2 associate-vpc-cidr-block \
--vpc-id vpc-abc123 \
--amazon-provided-ipv6-cidr-blockAWS weist einen /56-Block zu. Verknüpfen Sie /64-Subnetze mit jeder Verfügbarkeitszone:
aws ec2 associate-subnet-cidr-block \
--subnet-id subnet-xyz789 \
--ipv6-cidr-block 2600:1f13:123:4500::/64Aktualisieren Sie Ihre Routing-Tabellen. IPv6 benötigt seine eigene Route zum Internet-Gateway:
aws ec2 create-route \
--route-table-id rtb-abc123 \
--destination-ipv6-cidr-block ::/0 \
--gateway-id igw-xyz789EC2 IPv6-Adressierung#
Bestehende Instanzen erhalten nicht automatisch IPv6. Weisen Sie Adressen manuell zu:
aws ec2 assign-ipv6-addresses \
--network-interface-id eni-abc123 \
--ipv6-address-count 1Neue Instanzen in Dual-Stack-Subnetzen erhalten automatisch IPv6, wenn Sie beim Start --ipv6-address-count 1 setzen.
Innerhalb der Instanz überprüfen Sie, dass IPv6 konfiguriert ist. Amazon Linux und Ubuntu handhaben dies automatisch via cloud-init, aber verifizieren Sie mit ip -6 addr show.
Sicherheitsgruppen#
IPv6-Verkehr verwendet separate Regeln. Wenn Sie eine HTTP-Regel für 0.0.0.0/0 haben, gilt sie nicht für IPv6. Fügen Sie ::/0 hinzu:
aws ec2 authorize-security-group-ingress \
--group-id sg-abc123 \
--ip-permissions IpProtocol=tcp,FromPort=443,ToPort=443,Ipv6Ranges='[{CidrIpv6=::/0}]'Häufiger Fehler: IPv6-Regeln zu vergessen und sich zu wundern, warum Verbindungen fehlschlagen.
Load Balancer#
Application und Network Load Balancer unterstützen Dual-Stack. Setzen Sie ip-address-type auf dualstack:
aws elbv2 set-ip-address-type \
--load-balancer-arn arn:aws:elasticloadbalancing:... \
--ip-address-type dualstackDer Load Balancer erhält automatisch sowohl A- als auch AAAA-Records.
Route 53 DNS#
Erstellen Sie AAAA-Records, die auf Ihre IPv6-Adressen zeigen:
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890ABC \
--change-batch file://add-aaaa.jsonRoute 53 unterstützt IPv6 auch für Alias-Records, was für Load Balancer und CloudFront-Distributionen nützlich ist.
Egress-Only Internet Gateway#
Wenn Sie möchten, dass Instanzen ausgehende IPv6-Verbindungen initiieren, aber keine eingehenden akzeptieren, verwenden Sie ein Egress-Only-Gateway. Dies ist IPv6s Äquivalent zu NAT, aber nur Stateful – es gibt keine Adressübersetzung.
aws ec2 create-egress-only-internet-gateway \
--vpc-id vpc-abc123Aktualisieren Sie die Routing-Tabelle für private Subnetze, um IPv6-Verkehr dadurch statt durch das reguläre Internet-Gateway zu leiten.
Azure IPv6-Konfiguration#
Azures Ansatz ist ähnlich, verwendet aber andere Terminologie.
Virtual Network Dual-Stack#
Fügen Sie einen IPv6-Adressraum zu Ihrem VNet hinzu. Sie können hier keine Amazon-bereitgestellten Adressen verwenden; Azure weist aus seinen eigenen Bereichen zu.
az network vnet update \
--resource-group myResourceGroup \
--name myVNet \
--address-prefixes "10.0.0.0/16" "fd00:db8::/56"Azure verwendet fd00::/8-Präfixe für seine Dokumentationsbeispiele, aber Sie erhalten öffentliche GUA-Adressen in der Produktion.
Fügen Sie IPv6 zu Subnetzen hinzu:
az network vnet subnet update \
--resource-group myResourceGroup \
--vnet-name myVNet \
--name mySubnet \
--address-prefixes "10.0.1.0/24" "fd00:db8:1::/64"VM IPv6-Konfiguration#
VMs benötigen sowohl IPv4- als auch IPv6-Netzwerkinterface-Konfigurationen. Erstellen Sie eine öffentliche IPv6-Adresse:
az network public-ip create \
--resource-group myResourceGroup \
--name myPublicIPv6 \
--version IPv6 \
--sku StandardHängen Sie sie an das Netzwerkinterface an:
az network nic ip-config create \
--resource-group myResourceGroup \
--nic-name myNIC \
--name ipv6config \
--private-ip-address-version IPv6 \
--vnet-name myVNet \
--subnet mySubnet \
--public-ip-address myPublicIPv6Load Balancer mit IPv6#
Azure Load Balancer benötigt separate Frontend-IP-Konfigurationen für IPv4 und IPv6:
az network lb frontend-ip create \
--resource-group myResourceGroup \
--lb-name myLoadBalancer \
--name LoadBalancerFrontEndIPv6 \
--public-ip-address myPublicIPv6Konfigurieren Sie Backend-Pools, Gesundheitsprüfungen und Regeln für beide Stacks. Die Konfiguration ist dupliziert, was sich mühsam anfühlt, aber Ihnen volle Kontrolle gibt.
DNS-Zonen#
Fügen Sie AAAA-Records zu Azure DNS hinzu:
az network dns record-set aaaa add-record \
--resource-group myResourceGroup \
--zone-name example.com \
--record-set-name www \
--ipv6-address 2001:db8::1GCP IPv6-Konfiguration#
Google Cloud war langsamer bei der IPv6-Einführung als AWS und Azure, aber die Unterstützung hat sich deutlich verbessert.
VPC IPv6-Konfiguration#
GCP VPCs unterstützen Dual-Stack, aber IPv6 ist für einige Features noch in der Vorschau. Aktivieren Sie es bei der Subnetz-Erstellung:
gcloud compute networks subnets create mysubnet \
--network=myvpc \
--region=us-central1 \
--range=10.0.1.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=EXTERNALGCP weist ein /64 aus seinem 2600:1900::/28-Bereich zu.
Compute Engine-Instanzen#
Instanzen in Dual-Stack-Subnetzen erhalten automatisch IPv6. Überprüfen Sie mit:
gcloud compute instances describe myinstance \
--zone=us-central1-a \
--format="get(networkInterfaces[0].ipv6Address)"Firewall-Regeln benötigen explizite IPv6-CIDR-Blöcke:
gcloud compute firewall-rules create allow-ipv6-http \
--network myvpc \
--allow tcp:80 \
--source-ranges ::/0Cloud Load Balancing#
Googles globale Load Balancer unterstützen IPv6. Setzen Sie die IP-Version beim Erstellen einer Forwarding-Regel:
gcloud compute forwarding-rules create ipv6-lb-forwarding-rule \
--load-balancing-scheme=EXTERNAL \
--ip-protocol=TCP \
--ports=443 \
--address=myipv6address \
--ip-version=IPV6 \
--target-https-proxy=mytargetproxy \
--globalGoogle stellt automatisch eine Anycast-IPv6-Adresse für globale Load Balancer bereit.
Cloud DNS#
Erstellen Sie AAAA-Records:
gcloud dns record-sets create www.example.com \
--zone=myzone \
--type=AAAA \
--ttl=300 \
--rrdatas=2001:db8::1Kubernetes und IPv6#
Große verwaltete Kubernetes-Services unterstützen jetzt Dual-Stack-Cluster.
Dual-Stack-Cluster#
EKS, AKS und GKE können Dual-Stack betreiben. Pods erhalten sowohl IPv4- als auch IPv6-Adressen. Aktivieren Sie während der Cluster-Erstellung:
# EKS
eksctl create cluster --name mycluster --ip-family ipv4,ipv6
# GKE
gcloud container clusters create mycluster \
--enable-ip-alias \
--stack-type=IPV4_IPV6Services können beide Adressfamilien exponieren. Setzen Sie ipFamilyPolicy: RequireDualStack in Ihrem Service-Manifest.
Pod IPv6-Adressierung#
Jeder Pod erhält Adressen aus beiden Familien. CNI-Plugins (VPC CNI, Calico, Cilium) handhaben Adresszuweisung. Prüfen Sie Pod-Adressen:
kubectl get pods -o wideAnwendungen innerhalb von Pods sollten an :: binden, um auf beiden IPv4 und IPv6 zu hören.
Service IPv6#
Services erhalten ClusterIP-Adressen aus beiden Familien. LoadBalancer-Services stellen Cloud-Load-Balancer mit Dual-Stack-Frontends automatisch bereit, wenn der Cluster es unterstützt.
Ein Haken: Nicht alle Ingress-Controller unterstützen IPv6 noch. Überprüfen Sie die Dokumentation Ihres Controllers.
Häufige Herausforderungen#
Anwendungsunterstützung#
Die meisten modernen Sprachen und Frameworks unterstützen IPv6, aber ältere Anwendungen möglicherweise nicht. Java-Anwendungen benötigen manchmal -Djava.net.preferIPv6Addresses=true, um IPv6 zu bevorzugen.
Datenbanken sind knifflig. MySQL und PostgreSQL unterstützen IPv6, aber Connection-Strings und Client-Bibliotheken benötigen korrekte Klammernotation: psql -h [2001:db8::1] -p 5432.
Überwachungslücken#
Einige Überwachungstools sammeln standardmäßig nur IPv4-Metriken. CloudWatch, Azure Monitor und Cloud Monitoring unterstützen IPv6, aber benutzerdefinierte Dashboards benötigen möglicherweise Updates.
Drittanbieter-APM-Tools (Datadog, New Relic) handhaben Dual-Stack, aber verifizieren Sie, dass Ihre Agenten korrekt konfiguriert sind.
Kostenüberlegungen#
IPv6 selbst ist kostenlos, aber Egress-Kosten bleiben. Tatsächlich berechnen einige Cloud-Anbieter dieselben Egress-Raten für IPv6 wie für IPv4, was keine Kosteneinsparungen bietet – nur architektonische Vorteile.
AWS berechnet Egress-Only-Internet-Gateways in einigen Regionen. Prüfen Sie die Preisseite vor der Bereitstellung.
Ihr Cloud-IPv6 testen#
Nehmen Sie nicht an, dass es funktioniert. Testen Sie von einem IPv6-only-Netzwerk.
Deaktivieren Sie IPv4 auf Ihrer lokalen Maschine temporär:
# Linux
sudo ip addr del <ihre-ipv4-adresse> dev eth0
# macOS
sudo ifconfig en0 inet deleteVersuchen Sie, auf Ihren Service zuzugreifen. Wenn es fehlschlägt, haben Sie Konfigurationsprobleme.
Verwenden Sie Online-Tools wie ipv6-test.com, um Erreichbarkeit von verschiedenen Standorten zu verifizieren.
Prüfen Sie DNS-Propagation mit dig AAAA ihredomain.com von mehreren Resolvern.
Testen Sie Load-Balancer-Verhalten unter Dual-Stack-Verkehr. Einige Load Balancer haben subtile Routing-Unterschiede zwischen Adressfamilien, die nur unter Last erscheinen.
Verwandte Artikel#
- IPv6-Migrationsstrategien - Planen Sie Ihren Übergang zu IPv6 mit minimaler Störung
- IPv6-Best-Practices - Produktionsreife IPv6-Bereitstellungsrichtlinien
Testen Sie Cloud-Konnektivität
Verwenden Sie unser Ping-Tool, um zu verifizieren, dass Ihre Cloud-Instanzen über IPv6 erreichbar sind.