Zugriff auf private Dienste konfigurieren
Der Zugriff auf private Dienste ist eine private Verbindung zwischen Ihrem VPC-Netzwerk und einem Netzwerk von Google oder einem Drittanbieter. Google oder der Drittanbieter (Entitäten, die Dienste anbieten) werden auch als Dienstersteller bezeichnet. Die private Verbindung aktiviert VM-Instanzen in Ihrem VPC-Netzwerk und die Dienste, auf die Sie ausschließlich über interne IP-Adressen zugreifen. VM-Instanzen erfordern keinen Internetzugang oder externe IP-Adressen, um verfügbare Dienste über den Zugriff auf private Dienste zu erreichen.
Weitere Informationen zum Zugriff auf private Dienste und zu anderen privaten Zugriffsoptionen finden Sie unter Optionen für den Zugriff auf private Dienste.
Wenn Sie den Zugriff auf private Dienste nutzen möchten, müssen Sie einen IP-Adressbereich (CIDR-Block) in Ihrem VPC-Netzwerk zuweisen und anschließend eine private Verbindung zu einem Dienstersteller erstellen.
Vorbereitung
Sie müssen die folgenden Voraussetzungen erfüllen, um eine private Verbindung zu erstellen:
- Prüfen Sie, ob der von Ihnen verwendete Dienst Zugriff auf private Dienste unterstützt.
- Sie müssen ein vorhandenes VPC-Netzwerk haben, mit dem Sie sich mit dem Netzwerk des Diensterstellers verbinden. VM-Instanzen müssen dieses VPC-Netzwerk verwenden, um sich über eine private Verbindung mit Diensten zu verbinden.
- Aktivieren Sie die Service Networking API in Ihrem Projekt. Die API ist erforderlich, um eine private Verbindung zu erstellen.
- Erstellen Sie ein Google Cloud-Projekt oder wählen Sie ein vorhandenes Projekt aus. Informationen zum Erstellen eines Cloud-Projekts finden Sie unter Projekte erstellen und verwalten.
- Installieren Sie die gcloud CLI, wenn Sie die
gcloud
-Befehlszeilenbeispiele in dieser Anleitung ausführen möchten.
Berechtigungen
Projektinhaber und IAM-Mitglieder mit der Rolle Compute-Netzwerkadministrator (roles/compute.networkAdmin
) können zugewiesene IP-Adressbereiche erstellen und private Verbindungen verwalten.
Weitere Informationen zu Rollen finden Sie in der Dokumentation zu VPC-IAM-Rollen.
Szenario mit freigegebener VPC
Wenn Sie eine freigegebene VPC verwenden, erstellen Sie den zugewiesenen IP-Bereich und die private Verbindung im Hostprojekt. Normalerweise muss ein Netzwerkadministrator im Hostprojekt diese Aufgaben ausführen. Nachdem das Hostprojekt eingerichtet wurde, können VM-Instanzen in Dienstprojekten die private Verbindung nutzen.
Kontingente und Limits
Da eine private Verbindung als VPC-Peering-Verbindung implementiert wird, gelten die gleichen Kontingente und Beschränkungen, die für VPC-Netzwerk-Peering gelten, auch für den Zugriff auf private Dienste.
Zugewiesene IP-Adressbereiche für Dienste
Bevor Sie eine private Verbindung erstellen, müssen Sie einen IPv4-Adressbereich zuweisen, der vom VPC-Netzwerk des Diensterstellers verwendet werden soll. Dadurch wird sichergestellt, dass kein IP-Adressenkonflikt zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers auftritt. Erstellen Sie einen zugewiesenen Bereich für jeden Dienstersteller.
Wenn Sie einen Bereich in Ihrem VPC-Netzwerk zuweisen, ist dieser Bereich für Subnetze (primäre und sekundäre Bereiche) und Ziele von benutzerdefinierten statischen Routen nicht geeignet.
Die Verwendung von IPv6-Adressbereichen mit dem Zugriff auf private Dienste wird nicht unterstützt.
Größe des IP-Adressbereichs
Wenn ein Dienstersteller auf seiner Verbindungsseite ein Subnetz erstellt, wird ein offener Bereich aus der Zuweisung für den IP-Adressbereich des Subnetzes ausgewählt.
Jeder Dienstersteller benötigt einen IP-Adressbereich mit einer Mindestgröße. Für Google ist die Mindestgröße ein einzelner /24
-Block (256 Adressen). Die empfohlene Größe ist ein /16
-Block (65.536 Adressen).
Die Größe hängt von mehreren Faktoren ab:
- Die Anzahl der Dienste und Regionen, die Sie verwenden.
- Die Anforderungen der von Ihnen verwendeten Dienste.
- Die Mindestgröße des IP-Adressbereichs für die Dienste.
- Gibt an, ob der Dienstanbieter für jede von Ihnen erstellte Instanz des Dienstes separate IP-Bereiche benötigt oder ob er denselben IP-Bereich für mehrere Instanzen des Dienstes verwenden kann.
Wenn Sie keinen zusammenhängenden /16
-Block haben, können Sie mit einer kleineren Zuweisung beginnen und neue hinzufügen, wenn Sie später mehr IP-Adressen benötigen.
Subnetz des Diensterstellers
Wenn Sie eine private Verbindung herstellen und eine Ressource mit einer privaten IP-Adresse erstellen, erstellt der Dienst ein Subnetz, in dem die Ressource bereitgestellt werden soll. Der Dienst wählt einen verfügbaren IP-Adressbereich aus dem zugewiesenen Bereich aus. Sie können den Subnetz-IP-Adressbereich des Diensterstellers nicht auswählen oder ändern. Das Subnetz wird nur vom Dienst gelöscht, wenn Sie alle Ressourcen im Subnetz löschen.
Wenn Sie nun zusätzliche Ressourcen bereitstellen, stellt der Dienst sie in vorhandenen regionalen Subnetzen bereit, die zuvor erstellt wurden. Wenn ein Subnetz voll ist, erstellt der Dienst ein neues Subnetz in derselben Region.
Hinweise
Beachten Sie vor dem Zuweisen eines IP-Adressbereichs die folgenden Einschränkungen:
- Wählen Sie einen zugewiesenen Bereich aus, der vollständig von aktuellen und zukünftigen Subnetzbereichen getrennt ist, einschließlich Subnetzbereiche von Netzwerken, die über VPC-Netzwerk-Peering verbunden sind, und Subnetzbereiche von VPC-Spokes, die mit demselben Network Connectivity Center-Hub verbunden sind.
Wählen Sie einen Bereich, der nicht genau mit den Zielen von benutzerdefinierten statischen oder dynamischen Routen übereinstimmt oder diese enthält.
Wenn ein Dienstersteller einen nicht verwendeten Teil eines zugewiesenen Bereichs als Kandidat für neue Ressourcen auswählt, werden alle benutzerdefinierten Routenziele ausgeschlossen, die genau mit dem zugewiesenen Bereich übereinstimmen oder in diesen passen. Wenn ein VPC-Netzwerk einen zugewiesenen Bereich und benutzerdefinierte Routen mit Zielen enthält, die mit dem zugewiesenen Bereich übereinstimmen oder darin passen, wird der nutzbare Teil des zugewiesenen Bereichs reduziert. Diese Konfiguration kann zu unerwarteten Fehlern des Typs Zuweisung erschöpft führen.
Wenn Sie beispielsweise einen zugewiesenen Bereich für
10.0.0.0/16
erstellen, gilt Folgendes:Wenn eine benutzerdefinierte Route mit einem Ziel für
10.0.0.0/16
existiert oder später erstellt wird, gilt der gesamte10.0.0.0/16
-Bereich als nicht verfügbar. Wenn ein Dienstersteller versucht, den zugewiesenen Bereich zu verwenden, gibt Google Cloud den Fehler „Zuweisung erschöpft“ zurück.Wenn eine benutzerdefinierte Route mit einem Ziel für
10.0.0.0/20
existiert oder später erstellt wird, gilt der10.0.0.0/20
-Teil des zugewiesenen Bereichs10.0.0.0/16
als nicht verfügbar. Wenn ein Dienstersteller versucht, den zugewiesenen Bereich zu verwenden, und der verfügbare Teil Ihres zugewiesenen Bereichs für einen Dienstersteller nicht ausreicht, gibt Google Cloud den Fehler „Zuweisung erschöpft“ zurück.Wenn eine benutzerdefinierte Route mit einem Ziel für
10.0.0.0/8
existiert oder später erstellt wird, wirkt sich dies nicht auf die Verfügbarkeit des zugewiesenen Bereichs10.0.0.0/16
aus.
Wählen Sie einen Bereich, der nicht mit Ihren anderen IP-Adressanforderungen in Konflikt steht:
- Einige Google- und Drittanbieterprodukte verwenden
172.17.0.0/16
für das Routing innerhalb des Gastbetriebssystems. Das Bereich Standard-Docker-Bridge-Netzwerk verwendet beispielsweise diesen Bereich. Wenn Sie von einem Produkt abhängig sind, das172.17.0.0/16
verwendet, verwenden Sie172.17.0.0/16
nicht in einem zugewiesenen Bereich für den Zugriff auf private Dienste. - Wenn Sie ein VPC-Netzwerk im automatischen Modus verwenden, können Sie keinen zugewiesenen Bereich erstellen, der mit
10.128.0.0/9
übereinstimmt oder sich damit überschneidet. Google verwendet den Bereich10.128.0.0/9
für automatisch erstellte Subnetze, einschließlich jener in zukünftigen Regionen.
- Einige Google- und Drittanbieterprodukte verwenden
Wählen Sie einen CIDR-Block aus, der groß genug ist, um Ihre derzeitigen und zukünftigen Anforderungen zu erfüllen. Wenn Sie später feststellen, dass der Bereich nicht ausreichend groß ist, erweitern Sie den Bereich nach Möglichkeit. Sie können zwar einem einzigen Dienstersteller mehrere Zuordnungen zuweisen, Google erzwingt jedoch ein Kontingent für die Anzahl der IP-Adressbereiche, die Sie zuweisen können (nicht jedoch die Größe (Netzmaske) jedes Bereichs).
Wenn Sie einer privaten Verbindung einen zusätzlichen zugewiesenen Bereich hinzufügen, wird der Bereich der IP-Adressen erweitert, die dem Dienstersteller zur Verfügung stehen, wenn neue Dienstressourcen für jeden von ihm bereitgestellten Dienst erstellt werden. Sie können einen bestimmten zugewiesenen Bereich innerhalb einer privaten Verbindung nicht für die Verwendung durch einen bestimmten Dienst reservieren.
Verwenden Sie nicht denselben zugewiesenen Bereich für mehrere Dienstersteller. Obwohl dies möglich ist, kann dies zu einer IP-Adressüberschneidung führen. Jeder Dienstersteller sieht nur sein Netzwerk und kann nicht wissen, welche IP-Adressen andere Dienstersteller verwenden.
Sie können einem zugewiesenen Bereich nur einen CIDR-Block zuordnen, wenn Sie die Zuweisung erstellen. Wenn Sie den IP-Adressbereich erweitern möchten, können Sie keine weiteren Blöcke zu einer Zuweisung hinzufügen. Stattdessen können Sie eine andere Zuweisung erstellen oder die vorhandene neu erstellen. Dazu verwenden Sie einen größeren Block, der die neuen und vorhandenen Bereiche umfasst.
Wenn Sie die Zuweisung selbst erstellen, anstatt dies Google zu überlassen (z. B. über Cloud SQL), können Sie dieselbe Namenskonvention verwenden, um anderen Nutzern oder Google-Diensten zu signalisieren, dass bereits eine Zuweisung für Google vorhanden ist. Wenn ein Google-Dienst einen Bereich in Ihrem Namen zuordnet, verwendet der Dienst das folgende Format zur Benennung der Zuordnung:
google-managed-services-[your network name]
. Wenn diese Zuweisung vorhanden ist, verwenden Google-Dienste die vorhandene, anstatt eine andere zu erstellen.Da private Verbindungen als VPC-Netzwerk-Peering-Verbindungen implementiert werden, gelten die Verhaltensweisen und Einschränkungen von Peering-Verbindungen, z. B. die Limits für VPC-Netzwerk-Peering, auch für private Verbindungen.
Wenn Sie die interne IP-Adresse einer vorhandenen Dienstinstanz mit VPC ändern möchten, sollten Sie prüfen, ob diese Aktion störend sein könnte, z. B. wenn die Dienstinstanz gelöscht und neu erstellt werden muss. Weitere Informationen finden Sie in der Dokumentation zum zugehörigen verwalteten Dienst. Wenn Sie beispielsweise Cloud SQL verwenden, finden Sie weitere Informationen unter Private IP-Adresse einer vorhandenen Cloud SQL-Instanz ändern.
IP-Adresszuweisung erstellen
In den folgenden Schritten wird beschrieben, wie Sie einen zugewiesenen IP-Adressbereich erstellen.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Wählen Sie das VPC-Netzwerk aus, für das eine Verbindung zu einem Dienstersteller hergestellt werden soll.
Wählen Sie den Tab Private Dienstverbindung aus.
Wählen Sie auf dem Tab Private Dienstverbindung den Tab Diensten zugewiesene IP-Bereiche aus.
Klicken Sie auf Zugewiesener IP-Bereich.
Geben Sie Werte für Name und Beschreibung für den zugewiesenen Bereich ein.
Geben Sie einen IP-Bereich für die Zuweisung an:
- Wenn Sie einen IP-Adressbereich festlegen möchten, wählen Sie Benutzerdefiniert aus und geben einen CIDR-Block ein, z. B.
192.168.0.0/16
. - Wenn Sie eine Präfixlänge festlegen möchten und die Auswahl eines verfügbaren Bereichs durch Google erfolgen soll, wählen Sie Automatisch aus und geben eine Präfixlänge ein, beispielsweise
16
.
- Wenn Sie einen IP-Adressbereich festlegen möchten, wählen Sie Benutzerdefiniert aus und geben einen CIDR-Block ein, z. B.
Klicken Sie auf Zuweisen, um den zugewiesenen Bereich zu erstellen.
gcloud
Verwenden Sie den Befehl addresses create
, um einen zugewiesenen Bereich in Ihrem VPC-Netzwerk zu erstellen.
Legen Sie einen Adressbereich und eine Präfixlänge (Subnetzmaske) mit den Flags
addresses
undprefix-length
fest. Wenn Sie beispielsweise den CIDR-Block192.168.0.0/16
zuordnen möchten, geben Sie192.168.0.0
für die Adresse und16
für die Präfixlänge an.gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
Wenn Sie nur eine Präfixlänge (Subnetzmaske) angeben möchten, verwenden Sie einfach das Flag
prefix-length
. Wenn Sie den Adressbereich weglassen, wählt Google Cloud automatisch einen nicht verwendeten Adressbereich in Ihrem VPC-Netzwerk aus. In diesem Beispiel wird ein nicht verwendeter IP-Adressbereich mit einer Präfixlänge von16
Bit ausgewählt.gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
Dabei gilt:
RESERVED_RANGE_NAME
: ein Name für den zugewiesenen Bereich, z. B.my-allocated-range
DESCRIPTION
: eine Beschreibung für den Bereich, z. B.allocated for my-service
VPC_NETWORK
: der Name Ihres VPC-Netzwerks, z. B.my-vpc-network
Im folgenden Beispiel wird eine private Verbindung zu Google erstellt, damit die VM-Instanzen im VPC-Netzwerk my-network
den Zugriff auf private Dienste verwenden können, um die Google-Dienste zu erreichen, die sie unterstützen.
gcloud compute addresses create google-managed-services-my-network \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="peering range for Google" \ --network=my-network
Terraform
Verwenden Sie zum Erstellen eines zugewiesenen Bereichs in Ihrem VPC-Netzwerk die Ressource google_compute_global_address
.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Wenn Ihnen ein Fehler mit der Berechtigung compute.globalAddresses.list
für das Projekt angezeigt wird, finden Sie weitere Informationen unter Dienstkontoberechtigungen.
Zugewiesene IP-Adressbereiche auflisten
Verwenden Sie den Befehl addresses list
, um zugewiesene IP-Adressbereiche aufzulisten.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
Private Verbindung erstellen
Nachdem Sie einen zugewiesenen Bereich erstellt haben, können Sie eine private Verbindung zu einem Dienstersteller erzeugen. Die private Verbindung richtet eine VPC-Netzwerk-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers ein.
Private Verbindungen erfolgen als 1:1-Beziehung zwischen Ihrem VPC-Netzwerk und einem Dienstersteller. Wenn ein einzelner Dienstersteller mehrere Dienste anbietet, benötigen Sie nur eine private Verbindung für alle Dienste des Erstellers.
Wenn ein einzelner Dienstersteller mehrere Dienste anbietet und Sie steuern möchten, welche zugewiesenen Bereiche für verschiedene Dienstressourcen verwendet werden, können Sie mehrere VPC-Netzwerke mit jeweils eigenen privaten Verbindungen verwenden. Bei dieser Konfiguration können Sie beim Erstellen einer neuen verwalteten Dienstressource ein bestimmtes Netzwerk auswählen, damit die zugehörigen zugewiesenen Bereiche für die neue Ressource verwendet werden.
Wenn Sie eine Verbindung zu mehreren Diensterstellern herstellen, verwenden Sie für jeden Dienstersteller eine eindeutige Zuweisung. Mit dieser Vorgehensweise können Sie Ihre Netzwerkeinstellungen wie Routen und Firewallregeln für jeden Dienstersteller verwalten.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Wählen Sie das VPC-Netzwerk aus, für das eine Verbindung zu einem Dienstersteller hergestellt werden soll.
Wählen Sie den Tab Private Dienstverbindung aus.
Wählen Sie auf dem Tab Private Dienstverbindung den Tab Private Verbindungen zu Diensten aus.
Klicken Sie auf Verbindung erstellen, um eine private Verbindung zwischen Ihrem Netzwerk und einem Dienstersteller herzustellen.
Wählen Sie für Zugewiesene Bereiche einen oder mehrere vorhandene zugewiesene Bereiche aus, die nicht von anderen Diensterstellern verwendet werden.
Klicken Sie auf Verbinden, um die Verbindung herzustellen.
gcloud
Führen Sie den Befehl
vpc-peerings connect
aus.gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK
Dabei gilt:
RESERVED_RANGE_NAME
: der Name eines oder mehrerer zugewiesener BereicheVPC_NETWORK
: der Name des VPC-Netzwerks
Der Befehl initiiert einen lange laufenden Vorgang und gibt einen Vorgangsnamen zurück.
Mit dem Befehl
vpc-peerings operations describe
können Sie prüfen, ob der Vorgang erfolgreich war.gcloud services vpc-peerings operations describe \ --name=OPERATION_NAME
Ersetzen Sie
OPERATION_NAME
durch den Vorgangsnamen, der im vorherigen Schritt zurückgegeben wurde.
Sie können mehr als einen zugewiesenen Bereich angeben, wenn Sie eine private Verbindung erstellen. Wenn beispielsweise ein Bereich aufgebraucht ist, können Sie zusätzliche zugewiesene Bereiche zuordnen. Der Dienst verwendet IP-Adressen aus allen angegebenen Bereichen in der von Ihnen angegebenen Reihenfolge.
Terraform
Verwenden Sie zum Erstellen einer privaten Verbindung die Ressource google_service_networking_connection
.
Private Verbindungen auflisten
Nachdem Sie eine private Verbindung erstellt haben, können Sie diese auflisten, um zu prüfen, ob sie existiert. Die Liste zeigt auch die zugewiesenen Bereiche an, die jeder Verbindung zugeordnet sind. Wenn Sie sich beispielsweise nicht erinnern können, welchen zugewiesenen Bereich Sie einer Verbindung zugeordnet haben, finden Sie diesen in dieser Liste.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Wählen Sie das VPC-Netzwerk mit den Verbindungen aus.
Wählen Sie den Tab Private Dienstverbindung aus.
Wählen Sie auf dem Tab Private Dienstverbindung den Tab Private Verbindungen zu Diensten aus, in dem alle privaten Verbindungen des Netzwerks aufgeführt sind.
gcloud
Führen Sie den Befehl vpc-peerings list
aus.
gcloud services vpc-peerings list \ --network=VPC_NETWORK
Ersetzen Sie VPC_NETWORK
durch den Namen Ihres VPC-Netzwerks.
Private Verbindung ändern
Bei vorhandenen privaten Verbindungen können Sie zugewiesene IP-Adressbereiche hinzufügen oder entfernen, ohne den Traffic zu beeinträchtigen. Beim Skalieren können Sie beispielsweise einen zugewiesenen Bereich hinzufügen, wenn der vorhandene Bereich fast aufgebraucht ist.
Sie können zugewiesene IP-Bereiche nicht mit der Google Cloud Console entfernen. Wenn Sie einen zugewiesenen Bereich entfernen möchten, ändern Sie die Verbindung mit der Anleitung gcloud
. Wenn Sie einen Bereich aus einer privaten Verbindung entfernen, gilt Folgendes:
Der zugewiesene Bereich ist der privaten Verbindung nicht mehr zugeordnet. Er ist aber nicht gelöscht.
- Wenn ein entfernter Bereich nicht mehr verwendet wird, können Sie die Zuweisung löschen.
Vorhandene Diensterstellerressourcen können den entfernten Bereich weiterhin nutzen.
Der Zugriff auf private Dienste verwendet die entfernten Bereiche nicht, um neue Subnetze zuzuweisen.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Wählen Sie das VPC-Netzwerk mit den Verbindungen aus.
Wählen Sie den Tab Private Dienstverbindung aus.
Wählen Sie auf dem Tab Private Dienstverbindung den Tab Private Verbindungen zu Diensten aus, in dem alle privaten Verbindungen des Netzwerks aufgeführt sind.
Klicken Sie in der Liste auf einen Verbindungsnamen.
Wählen Sie im Drop-down-Menü Zugewiesene Bereiche die Bereiche aus, die Sie zuordnen möchten.
Klicken Sie auf OK.
gcloud
Verwenden Sie den Befehl vpc-peerings update
, um der vorhandenen privaten Verbindung zugeordnete, zugewiesene IP-Adressbereiche hinzuzufügen oder zu entfernen.
gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ [--force]
Dabei gilt:
RESERVED_RANGE_NAME
: eine Liste mit einem oder mehreren Namen zugewiesener Bereiche, die der privaten Verbindung zugewiesen werden sollenRESERVED_RANGE_NAME
ersetzt die vorherige Liste von zugewiesenen Bereichen. Wenn Sie einen Bereich weglassen, der zuvor mit dieser privaten Verbindung verknüpft war, wird er aus der Verbindung entfernt. Verwenden Sie die Option--force
, um einen Bereich zu entfernen.VPC_NETWORK
: der Name des VPC-Netzwerks
Zugewiesenen IP-Adressbereich löschen
Prüfen Sie vor dem Löschen eines zugewiesenen IP-Adressbereichs, ob der Bereich von einer privaten Verbindung verwendet wird.
Wenn der zugewiesene IP-Adressbereich verwendet wird, ändern Sie zuerst die private Verbindung, um den Bereich zu entfernen. Löschen Sie anschließend den zugewiesenen IP-Adressbereich.
Wenn Sie eine zugewiesene IP-Adresse löschen, die verwendet wird, und die private Verbindung nicht ändern, gilt Folgendes:
Vorhandene Verbindungen bleiben aktiv. Es gibt jedoch keinen Grund, warum Ihr VPC-Netzwerk nicht IP-Adressen verwenden sollte, die sich mit dem Netzwerk des Diensterstellers überschneiden.
Wenn Sie den einzigen zugewiesenen IP-Adressbereich löschen, der einer privaten Verbindung zugeordnet ist, kann der Dienst keine neuen Subnetze erstellen, da es keinen zugewiesenen IP-Adressbereich zur Auswahl gibt.
Wenn Sie später einen zugewiesenen IP-Adressbereich erstellen, der mit dem gelöschten Bereich übereinstimmt oder sich damit überschneidet, schlägt das Hinzufügen des Bereichs zu einer privaten Verbindung fehl.
Um diese Probleme zu vermeiden, ändern Sie immer Ihre privaten Verbindungen, wenn Sie einen verwendeten zugewiesenen IP-Adressbereich löschen.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Wählen Sie das VPC-Netzwerk aus, das die Zuweisungen enthält, die gelöscht werden sollen.
Wählen Sie den Tab Private Dienstverbindung aus.
Wählen Sie auf dem Tab Private Dienstverbindung den Tab Diensten zugewiesene IP-Bereiche aus.
Wählen die Zuweisung aus, die gelöscht werden soll.
Klicken Sie auf Freigeben, um den zugewiesenen IP-Adressbereich wieder dem Pool der verfügbaren internen IP-Adressen des Netzwerks hinzuzufügen.
Wenn der zugewiesene IP-Adressbereich weiter einer bestehenden Verbindung zugewiesen ist, müssen Sie zusätzlich eine Bestätigung eingeben, bevor die Zuweisung freigegeben werden kann.
Klicken Sie noch einmal auf Freigeben, um den Löschvorgang zu bestätigen.
gcloud
Sie können die Zuweisung löschen, indem Sie deren Namen angeben.
gcloud compute addresses delete NAME \ --global
Ersetzen Sie NAME
durch den Namen des zugewiesenen Bereichs, den Sie löschen möchten.
Eine private Verbindung löschen
Bevor Sie eine private Verbindung löschen, müssen Sie alle Dienstinstanzen löschen, auf die Sie über die Verbindung zugreifen. Wenn Sie beispielsweise eine private Verbindung löschen möchten, die für den Zugriff auf Cloud SQL verwendet wird, müssen Sie zuerst die Cloud SQL-Instanzen löschen, die diese Verbindung verwenden. Nachdem Sie die Dienstinstanzen gelöscht haben, werden die Ressourcen des Diensterstellers gelöscht. Dieser Löschvorgang erfolgt jedoch möglicherweise nicht sofort. Einige Dienstersteller verzögern den Löschvorgang, bis eine Wartezeit abgelaufen ist. Die private Verbindung kann während der Wartezeit nicht gelöscht werden. Sie müssen warten, bis die Ressourcen des Diensterstellers gelöscht wurden, bevor Sie die Verbindung löschen können.
Wenn Sie beispielsweise eine Cloud SQL-Instanz löschen, erhalten Sie eine Erfolgsantwort, aber der Dienst wartet vier Tage, bevor die Diensterstellerressourcen gelöscht werden. Die Wartezeit macht es möglich, dass Sie eine Wiederherstellung der Ressourcen beantragen können, wenn Sie sich entscheiden, den Dienst doch nicht zu löschen. Wenn Sie versuchen, die Verbindung während der Wartezeit zu löschen, schlägt das Löschen mit der Meldung fehl, dass die Ressourcen noch vom Dienstersteller verwendet werden.
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Wählen Sie das VPC-Netzwerk aus, das die Verbindungen enthält, die gelöscht werden sollen.
Wählen Sie den Tab Private Dienstverbindung aus.
Wählen Sie auf dem Tab Private Dienstverbindung den Tab Private Verbindungen zu Diensten aus.
Wählen Sie die private Verbindung aus, die gelöscht werden soll.
Klicken Sie zum Löschen auf Löschen.
Klicken Sie noch einmal auf Löschen, um den Löschvorgang zu bestätigen.
gcloud
Verwenden Sie den Befehl vpc-peerings delete
, um die VPC-Netzwerk-Peering-Verbindung einer privaten Verbindung zu löschen.
gcloud services vpc-peerings delete \ --service=servicenetworking.googleapis.com \ --network=VPC_NETWORK
Ersetzen Sie VPC_NETWORK
durch den Namen Ihres VPC-Netzwerks.
Private DNS-Zonen für Dienstersteller freigeben
Private Cloud DNS-Zonen sind normalerweise nur in Ihrem VPC-Netzwerk zugänglich. Wenn ein Diensterstellernetzwerk Namen aus Ihrer privaten Zone auflösen soll, können Sie DNS-Peering zwischen den beiden Netzwerken konfigurieren.
Wenn Sie DNS-Peering konfigurieren, geben Sie ein VPC-Netzwerk und ein DNS-Suffix an. Wenn der Dienstersteller eine Adresse mit diesem DNS-Suffix auflösen muss, leitet der Dienstersteller diese Abfragen an Ihr VPC-Netzwerk weiter, damit die Auflösung vorgenommen wird.
Diese unterstützten Dienste unterstützen DNS-Peering, mit Ausnahme von Cloud SQL.
Wenn Sie DNS-Peering aktivieren möchten, müssen Sie in Ihrem Projekt die Cloud DNS API aktivieren.
Peer-DNS mit einem Dienstersteller
gcloud
Verwenden Sie den Befehl peered-dns-domains create
, um DNS-Peering zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Dienstanbieters einzurichten.
gcloud services peered-dns-domains create PEERING_NAME \ --network=VPC_NETWORK \ --dns-suffix=DNS_SUFFIX
Dabei gilt:
PEERING_NAME
: ein Name für diese DNS-Peering-Konfiguration.VPC_NETWORK
: der Name Ihres VPC-Netzwerks, das über den Zugriff auf private Dienste mit dem Dienstersteller verbunden ist.DNS_SUFFIX
: das DNS-Suffix, das Sie per Peering mit dem Dienstersteller verbinden möchten. Sie müssen einen vollständigen DNS-Domainnamen angeben, einschließlich des Punkts.example.com.
ist z. B. ein gültiges DNS-Suffix.
Terraform
Verwenden Sie zum Einrichten des DNS-Peerings zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Dienstanbieters die Ressource google_service_networking_peered_dns_domain
.
DNS-Peering-Konfigurationen auflisten
gcloud
Führen Sie den Befehl peered-dns-domains list
aus.
gcloud services peered-dns-domains list \ --network=VPC_NETWORK
Ersetzen Sie VPC_NETWORK
durch den Namen Ihres VPC-Netzwerks.
DNS-Peering-Konfiguration löschen
gcloud
Führen Sie den Befehl peered-dns-domains delete
aus.
gcloud services peered-dns-domains delete PEERING_NAME \ --network=VPC_NETWORK
Dabei gilt:
PEERING_NAME
: der Name der DNS-Peering-KonfigurationVPC_NETWORK
: der Name des VPC-Netzwerks
Fehlerbehebung
Wie viel von meiner Zuweisung wird verwendet?
Wenn Sie eine private Verbindung mit einem Dienstersteller erzeugen, weisen Sie einen IP-Adressbereich zu, den dieser verwenden kann. Wenn Sie mehrere Dienste von einem Dienstersteller verwenden, reserviert jeder Dienst einen Teil der IP-Adressen aus diesem zugewiesenen Bereich. Sie können prüfen, welche Dienste welche IP-Adressen verwenden, damit Sie beispielsweise sehen können, welche Dienste große Blöcke von IP-Adressen verwenden und die Ausschöpfung der IP-Adressen vermeiden.
So sehen Sie, welcher Dienst einen bestimmten IP-Adressbereich verwendet:
- Sie listen Ihre privaten Verbindungen auf.
- Danach suchen Sie den Peering-Verbindungsnamen, der Sie mit dem relevanten Dienstersteller verbindet.
- Sie listen die Routen für Ihr VPC-Netzwerk auf.
- Sie suchen die Routen mit einem nächsten Hop, der dem Peering-Verbindungsnamen entspricht. Der Zielbereich der Routen gibt an, welche IP-Adressen die jeweiligen Dienste nutzen.
IP-Adressbereich aufgebraucht
Wenn Sie für eine bestimmte private Verbindung den zugewiesenen IP-Adressbereich aufgebraucht haben, gibt Google Cloud diesen Fehler zurück: Failed to create subnetwork.
Couldn't find free blocks in allocated IP ranges.
Dieser Fehler wird möglicherweise angezeigt, weil der zugewiesene Bereich für Ihre Nutzung nicht ausreicht oder weil eine benutzerdefinierte statische oder dynamische Route verhindert, dass der zugewiesene Bereich vollständig genutzt wird. Weitere Informationen zu Routingaspekten finden Sie unter Überlegungen.
Sie können die bestehende Zuweisung erweitern oder neue hinzufügen. Die erweiterte Zuweisung muss ein zusammenhängender IP-Adressbereich sein, der den vorhandenen Bereich umfasst. Das Erweitern einer Zuweisung wird empfohlen, da die Größe einer Zuweisung nicht begrenzt ist. Die Anzahl der Zuweisungen, die Sie erstellen können, ist dagegen begrenzt.
So erweitern Sie eine bestehende Zuweisung:
- Sie listen Ihre privaten Verbindungen auf und notieren den Namen des zugewiesenen Bereichs, den Sie erweitern möchten.
- Sie löschen den vorhandenen zugewiesenen Bereich.
- Sie erstellen einen neuen zugewiesenen Bereich. Dazu verwenden Sie den Namen des gelöschten Bereichs. Dabei geben Sie einen IP-Adressbereich an, der den gelöschten IP-Adressbereich enthält. Auf diese Weise können vorhandene Peering-Ressourcen, die den alten zugewiesenen Bereich nutzen, weiterhin dieselben IP-Adressen verwenden, ohne dass es Konflikte mit Ressourcen in Ihrem VPC-Netzwerk gibt. Wenn der zuvor zugewiesene Bereich beispielsweise
192.168.0.0/20
war, erstellen Sie einen neuen zugewiesenen Bereich als192.168.0.0/16
.
So fügen Sie einer vorhandenen privaten Verbindung zugewiesene Bereiche hinzu:
- Erstellen Sie einen neuen zugewiesenen Bereich. Dieser Bereich muss nicht an vorhandene zugewiesene Bereiche angrenzen.
- Fügen Sie den zugewiesenen Bereich zur vorhandenen privaten Verbindung hinzu.
Lokale Hosts können nicht mit dem Netzwerk des Diensterstellers kommunizieren
Im Netzwerk des Diensterstellers sind möglicherweise nicht die richtigen Routen vorhanden, um Traffic zu Ihrem lokalen Netzwerk zu leiten. Standardmäßig erlernt das Netzwerk des Diensterstellers nur die Subnetzrouten aus Ihrem VPC-Netzwerk. Daher wird jede Anfrage, die nicht aus einem Subnetz-IP-Bereich stammt, vom Dienstersteller verworfen.
Aktualisieren Sie die Peering-Verbindung in Ihrem VPC-Netzwerk, um benutzerdefinierte Routen zum Netzwerk des Diensterstellers zu exportieren. Beim Exportieren von Routen werden alle zulässigen statischen und dynamischen Routen, die sich in Ihrem VPC-Netzwerk befinden, z. B. Routen zu Ihrem lokalen Netzwerk, an das Netzwerk des Diensterstellers gesendet. Das Netzwerk des Diensterstellers importiert sie automatisch und kann dann über das VPC-Netzwerk Traffic zurück an Ihr lokales Netzwerk senden.
Dienstkontoberechtigungen
Wenn beim Erstellen einer IP-Zuordnung ein Fehler bezüglich der Berechtigung compute.globalAddresses.list
für ein Projekt angezeigt wird oder wenn beim Erstellen, Auflisten oder Ändern privater Verbindungen Fehler wie Error 400: Precondition check failed
auftreten, kann es ein Problem mit den Rollen der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) für das Dienstkonto der Service Networking API geben.
Dieses Dienstkonto wird automatisch erstellt, nachdem Sie die Service Networking API aktiviert haben. Es kann einige Zeit dauern, bis das Konto bereitgestellt und auf der IAM-Seite angezeigt wird.
Console
So prüfen Sie, ob das Dienstkonto die richtige IAM-Rolle hat:
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen einschließen.
Suchen Sie in der Spalte Name das Hauptkonto Service Networking-Dienst-Agent und klicken Sie dann in der entsprechenden Zeile auf
Hauptkonto bearbeiten.Prüfen Sie im Feld Rolle, ob die Rolle Service Networking-Dienst-Agent (
roles/servicenetworking.serviceAgent
) vorhanden ist.Wenn die Rolle Service Networking-Dienst-Agent nicht vorhanden ist, klicken Sie entweder auf
Rolle hinzufügen oder auf Weitere Rolle hinzufügen.Klicken Sie auf Rolle auswählen.
Geben Sie im Textfeld Filter
Service Networking Service Agent
ein.Wählen Sie Service Networking-Dienst-Agent aus der Liste aus und klicken Sie dann auf Speichern.
gcloud
Verwenden Sie den Befehl add-iam-policy-binding
, um ein Dienstkonto für die Service Networking API zu erstellen.
gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \ --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com \ --role=roles/servicenetworking.serviceAgent
Dabei gilt:
HOST_PROJECT_NAME
: der Name des Hostprojekts.HOST_PROJECT_NUMBER
: die Nummer des Hostprojekts.
Die Peering-Subnetzroute bleibt bestehen, nachdem die IP-Zuweisung aktualisiert wurde
Nachdem Sie den zugewiesenen IP-Adressbereich einer privaten Dienstverbindung aktualisiert haben, wird die alte Peering-Subnetzroute möglicherweise noch in der Routingtabelle Ihres VPC-Netzwerks angezeigt. Die Route bleibt bestehen, da der IP-Adressbereich noch verwendet wird.
So beheben Sie das Problem:
- Achten Sie darauf, dass beim Löschen einer IP-Zuweisung auch die private Verbindung aktualisiert wird.
- Löschen oder aktualisieren Sie alle Ressourcen, die den alten IP-Adressbereich verwenden.
Die Peering-Subnetzroute wird automatisch entfernt, wenn der IP-Adressbereich nicht mehr verwendet wird. Zwischen dem Löschen der Ressource und dem vollständigen Löschen der Ressource durch den Dienstersteller kann es eine Verzögerung geben. Wenn der alte IP-Adressbereich beispielsweise von einer Cloud SQL-Instanz verwendet wird, kann es bis zu vier Tage dauern, bis der Dienstersteller die Instanz vollständig gelöscht hat. Die Peering-Subnetzroute wird entfernt, nachdem der Löschvorgang abgeschlossen ist.