Mit Dual-Stack-Subnetzen können Ihre App Engine-Ressourcen IPv4- und IPv6-Traffic mit ausgehendem Direct VPC-Traffic an ein VPC-Netzwerk senden. Sie können ein vorhandenes Nur-IPv4-Subnetz (Single-Stack) in ein Dual-Stack-Subnetz ändern.
Subnetztypen
VPC-Netzwerke unterstützen die folgenden Compute Engine-Subnetztypen:
Nur-IPv4-Subnetze (Single-Stack) mit nur IPv4-Subnetzbereichen
IPv4- und IPv6-Subnetze (Dual-Stack) mit IPv4- und IPv6-Subnetzbereichen
Einschränkungen bei Dual-Stack
Beachten Sie die folgenden Einschränkungen, bevor Sie den Stacktyp für eine vorhandene App Engine-Ressource ändern:
Die Dual-Stack-Unterstützung ist nur für Subnetze in einem VPC-Netzwerk im benutzerdefinierten Modus verfügbar. Damit der interne Zugriffstyp für Dual-Stack-Subnetze verfügbar ist, muss der interne IPv6-Bereich des VPC-Netzwerk aktiviert sein. Richten Sie das VPC-Netzwerk im benutzerdefinierten Modus ein oder wandeln Sie es in diesen Modus um.
Im Vergleich zu Nur-IPv4-Subnetzen kann es bei Dual-Stack-Subnetzen zu längeren Latenzen beim Kaltstart kommen, wodurch die Skalierung Ihrer Anwendung verlangsamt wird.
NAT64 wird nicht unterstützt.
Hinweis
Der App Engine-Dienst-Agent muss die Rolle „Compute Public IP Admin“ (roles/compute.publicIpAdmin) haben, um das Subnetz mit externem IPv6 verwenden zu können.
Dual-Stack-Subnetz einrichten
Dual-Stack-Subnetze haben sowohl IPv4- als auch IPv6-Adressbereiche.
Sie können ein Dual-Stack-Subnetz entweder über die Google Cloud console oder die Google Cloud CLI einrichten:
Console
Rufen Sie die Google Cloud console auf und aktivieren Sie die Compute Engine API:
Rufen Sie die Seite VPC-Netzwerke auf:
Klicken Sie auf VPC-Netzwerk erstellen , wenn Sie ein neues Netzwerk im benutzerdefinierten Modus erstellen. Wenn Sie ein vorhandenes VPC-Netzwerk verwenden, klicken Sie auf den Namen des VPC-Netzwerks, um die zugehörige Seite VPC-Netzwerkdetails aufzurufen.
Wenn Sie ein neues Netzwerk erstellen oder ein vorhandenes konvertieren, geben Sie den Namen ein und prüfen Sie, ob der Subnetzerstellungsmodus auf Benutzerdefiniert gesetzt ist. Wählen Sie dann ULA-internen IPv6-Bereich für dieses VPC-Netzwerk konfigurieren aus.
Klicken Sie auf dem Tab Subnetze auf Subnetz hinzufügen. Führen Sie im angezeigten Bereich folgende Schritte aus:
- Geben Sie einen Namen an.
- Wählen Sie eine Region aus.
- Wählen Sie für IP-Stack-Typ IPv4 und IPv6 (Dual-Stack) aus.
- Geben Sie einen IPv4-Bereich ein. Dies ist der primäre IPv4-Bereich für das Subnetz.
Wählen Sie den IPv6-Zugriffstyp aus.
Wenn die Option Intern nicht verfügbar ist und Sie sie benötigen, prüfen Sie, ob im Netzwerk ein interner IPv6-Bereich zugewiesen ist.
Klicken Sie auf Hinzufügen.
gcloud
Führen Sie den Befehl
gcloud compute networks createaus, um ein Netzwerk im benutzerdefinierten Modus zu erstellen, das Dual-Stack-Subnetze unterstützt.Verwenden Sie das Flag
--enable-ula-internal-ipv6, um interne IPv6-Bereiche in allen Subnetzen dieses Netzwerks zu konfigurieren. Mit dieser Option wird ein/48ULA-Präfix aus dem Bereichfd20::/20zugewiesen, der von Google Cloud für interne IPv6-Subnetzbereiche verwendet wird.gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Ersetzen Sie NETWORK durch den Namen des VPC Netzwerks mit dem neuen Subnetz.
Führen Sie den folgenden Befehl aus, um ein Netzwerk im benutzerdefinierten Modus zu konvertieren oder zu aktualisieren, damit es Dual-Stack-Subnetze unterstützt:
gcloud compute networks update NETWORK \ --switch-to-custom-subnet-mode \ --enable-ula-internal-ipv6
Ersetzen Sie NETWORK durch den Namen des VPC Netzwerks mit dem neuen Subnetz.
Führen Sie den
subnets createBefehl mit den Dual-Stack-Einstellungen aus, um ein Dual-Stack-Subnetz mit einem IPv6-Bereich zu erstellen:gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=IPV6_ACCESS_TYPE \ --region=REGION
Ersetzen Sie Folgendes:
- SUBNET: ein Name für das neue Subnetz.
- NETWORK: der Name des VPC-Netzwerks mit dem neuen Subnetz.
- PRIMARY_IPv4_RANGE: der primäre IPv4-Bereich für das neue Subnetz in CIDR-Notation. Weitere Informationen finden Sie unter IPv4-Subnetz bereiche.
- IPV6_ACCESS_TYPE: der IPv6-Zugriffstyp für das neue
Subnetz, entweder
internaloderexternal. - REGION: die Google Cloud Region, in der das neue Subnetz erstellt wird.
Dual-Stack-Subnetz zu einer App Engine-Ressource hinzufügen
Nachdem Sie ein Dual-Stack-Subnetz erstellt haben, konfigurieren Sie Ihren App Engine-Dienst so, dass er das Subnetz verwendet:
Geben Sie in der Datei
app.yamldas Netzwerk und das Subnetz im Feldvpc_accessan:vpc_access: network_interface: network: NETWORK subnet: SUBNET vpc_egress: EGRESS_SETTING
Ersetzen Sie Folgendes:
NETWORK: der Name des Netzwerks, das Sie im vorherigen Schritt erstellt haben.
SUBNET: der Name des Subnetzes, das Sie im vorherigen Schritt erstellt haben.
Optional: EGRESS_SETTING: steuert, wie ausgehender Traffic weitergeleitet wird. Dieses Feld unterstützt die folgenden Konfigurationseinstellungen:
all-traffic: Alle ausgehenden Anfragen werden über das VPC-Netzwerk weitergeleitet.private-ranges-only(Standard): Nur Traffic an interne IP-Adressen wird über das VPC-Netzwerk weitergeleitet. Internet-Traffic verwendet den Standardpfad von App Engine.
Stellen Sie die Anwendung mit dem folgenden Befehl in App Engine bereit:
gcloud beta app deploy
Subnetz von Single-Stack in Dual-Stack ändern
Informationen zum Hinzufügen eines IPv6-Subnetzbereichs zu einem vorhandenen Nur-IPv4-Subnetz in einem VPC-Netzwerk im benutzerdefinierten Modus finden Sie unter Stack-Typ eines Subnetzes in Dual-Stack ändern. Stellen Sie dann den App Engine-Dienst im Dual-Stack-Subnetz bereit.
Subnetz von Dual-Stack in Single-Stack ändern
Informationen zum Ändern des Dual-Stack-Subnetzes einer Ressource in ein Single-Stack-Subnetz finden Sie unter Dual-Stack-Subnetz in Nur-IPv4-Subnetz ändern. Stellen Sie dann den App Engine-Dienst im Dual-Stack-Subnetz bereit.
Netzwerk und Subnetz prüfen
Führen Sie den folgenden Befehl aus, um zu prüfen, ob sich Ihre Ressource im VPC-Netzwerk befindet:
gcloud beta app versions describe VERSION --service=SERVICE
Ersetzen Sie Folgendes:
- VERSION: die bereitgestellte Version Ihres Dienstes
- SERVICE: der bereitgestellte Dienst
Die folgende Beispielausgabe zeigt Ihr Netzwerk und Subnetz:
vpcAccess:
networkInterfaces:
- network: projects/YOUR_PROJECT/global/networks/YOUR_NETWORK
subnet: projects/YOUR_PROJECT/regions/YOUR_REGION/subnetworks/YOUR_SUBNET
vpcEgress: ALL_TRAFFIC/PRIVATE_RANGES_ONLY