Zugriff auf Google APIs über Endpunkte

In diesem Dokument wird erläutert, wie Sie mit Private Service Connect-Endpunkten eine Verbindung zu Google APIs herstellen. Anstatt API-Anfragen an die öffentlich verfügbaren IP-Adressen für Dienstendpunkte wie storage.googleapis.com zu senden, können Sie die Anfragen an die interne IP-Adresse eines Endpunkts senden.

Sie können Private Service Connect auch verwenden, um auf Dienste in einem anderen VPC-Netzwerk zuzugreifen und Dienste zu veröffentlichen.

Rollen

Die folgenden IAM-Rollen enthalten die Berechtigungen, die zum Ausführen der Aufgaben in dieser Anleitung erforderlich sind.

Aufgabe Rollen
Endpunkt erstellen Alle der folgenden Rollen:
Compute-Netzwerkadministrator (roles/compute.networkAdmin),
Service Directory-Bearbeiter (roles/servicedirectory.editor) und
DNS-Administrator (roles/dns.admin)
Privaten Google-Zugriff konfigurieren (optional) Compute-Netzwerkadministrator (roles/compute.networkAdmin)

Hinweis

  • Weitere Informationen, u. a. zur DNS-Konfiguration und zu den Einschränkungen, finden Sie unter Verbindung zu Google APIs mithilfe von Endpunkten herstellen.

  • Private Service Connect aktiviert keine API automatisch. Sie müssen die benötigten Google APIs separat aktivieren. Dies erfolgt über die Seite APIs & Dienste in der Google Cloud Console.

  • Sie müssen in Ihrem Projekt die Compute Engine API aktivieren.

  • Sie müssen die Service Directory API für Ihr Projekt aktivieren.

  • Sie müssen in Ihrem Projekt die Cloud DNS API aktivieren.

  • Sie müssen eine IP-Adresse für den Endpunkt auswählen. Informationen dazu, welche IP-Adressen Sie verwenden können, finden Sie unter IP-Adressanforderungen.

  • Firewallregeln für ausgehenden Traffic müssen Traffic zum Endpunkt zulassen. Die Standardkonfiguration der Firewall für ein VPC-Netzwerk erlaubt diesen Traffic, da er eine implizierte Regel zum Zulassen von ausgehendem Traffic enthält. Achten Sie darauf, dass Sie keine Regel für ausgehenden Traffic mit einer höheren Priorität erstellt haben, die den Traffic blockiert.

  • VM-Instanzen ohne externe IP-Adresse müssen ein Subnetz mit aktiviertem privaten Google-Zugriff verwenden, um über einen Endpunkt auf Google APIs und Google-Dienste zugreifen zu können.

    Eine VM mit einer externen IP-Adresse kann über Endpunkte auf Google APIs und Google-Dienste zugreifen, auch wenn der private Google-Zugriff für ihr Subnetz deaktiviert ist. Die Verbindung zum Endpunkt verbleibt im Google-Netzwerk.

  • Wenn Ihr VPC-Netzwerk keine Endpunkte enthält, prüfen Sie, ob für p.googleapis.com eine private Cloud DNS-Zone vorhanden ist. Wenn die Zone vorhanden ist, löschen Sie sie, bevor Sie den Endpunkt erstellen. Wenn Sie sie nicht löschen, schlägt das Erstellen der für Private Service Connect verwendeten Service Directory-DNS-Zone fehl. Weitere Informationen finden Sie unter Fehlerbehebung.

  • Endpunkte sind über Peering-VPC-Netzwerke nicht erreichbar.

Privaten Google-Zugriff für ein Subnetz aktivieren

VMs ohne eine zugewiesene externe IP-Adresse müssen mit einem Subnetz verbunden sein, für das der private Google-Zugriff aktiviert ist, um über einen Endpunkt auf Google APIs und Google-Dienste zuzugreifen.

Wenn die VM mehrere Schnittstellen hat, verbinden Sie die Schnittstelle, die mit einer Standardroute konfiguriert ist (normalerweise nic0).

Die Quell-IP-Adresse der von der VM gesendeten Pakete muss entsprechen der primären internen IPv4-Adresse der VM-Schnittstelle oder einer internen IPv4-Adresse aus einem Alias-IP-Bereich.

So aktivieren Sie den privaten Google-Zugriff für ein Subnetz:

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf den Namen des Netzwerks mit dem Subnetz, für das Sie den privaten Google-Zugriff aktivieren müssen.

  3. Klicken Sie auf den Namen des Subnetzes. Daraufhin wird die Seite Subnetzdetails angezeigt.

  4. Klicken Sie auf Bearbeiten.

  5. Wählen Sie im Abschnitt Privater Google-Zugriff die Option Ein aus.

  6. Klicken Sie auf Speichern.

gcloud

  1. Legen Sie den Namen und die Region des Subnetzes fest. Verwenden Sie den folgenden Befehl, um die Subnetze für ein bestimmtes Netzwerk aufzulisten:

    gcloud compute networks subnets list --filter=NETWORK_NAME
    
  2. Führen Sie den folgenden Befehl aus, um den privaten Google-Zugriff zu aktivieren:

    gcloud compute networks subnets update SUBNET_NAME \
    --region=REGION \
    --enable-private-ip-google-access
    
  3. Prüfen Sie, ob der private Google-Zugriff aktiviert ist. Führen Sie dazu folgenden Befehl aus:

    gcloud compute networks subnets describe SUBNET_NAME \
    --region=REGION \
    --format="get(privateIpGoogleAccess)"
    

Dabei gilt:

  • SUBNET_NAME: Name des Subnetzes
  • REGION: Region für das Subnetz
  • NETWORK_NAME: Name des VPC-Netzwerks, das das Subnetz enthält

Terraform

Sie können die Terraform-Ressource verwenden, um den privaten Google-Zugriff für ein Subnetz zu aktivieren.

resource "google_compute_network" "network" {
  project                 = var.project # Replace this with your project ID in quotes
  name                    = "tf-test"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "vpc_subnetwork" {
  project                  = google_compute_network.network.project
  name                     = "test-subnetwork"
  ip_cidr_range            = "10.2.0.0/16"
  region                   = "us-central1"
  network                  = google_compute_network.network.id
  private_ip_google_access = true
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Endpunkt erstellen

Nachdem Sie eine IP-Adresse ausgewählt haben, die die Anforderungen erfüllt, können Sie einen Endpunkt erstellen.

Ein Endpunkt stellt mithilfe einer globalen Weiterleitungsregel eine Verbindung zu Google APIs und Google-Diensten her. Jede Weiterleitungsregel wird auf das VPC-Netzwerkkontingent für Private Service Connect angerechnet.

Sie können einen Endpunkt für Google APIs und Google-Dienste nicht mehr aktualisieren, nachdem er erstellt wurde. Wenn Sie einen Endpunkt für Google APIs und Google-Dienste aktualisieren müssen, löschen Sie den Endpunkt und erstellen Sie einen neuen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

  3. Klicken Sie auf Endpunkt verbinden.

  4. Wählen Sie unter Ziel das Ziel-API-Bundle aus, das Sie verwenden möchten:

    • Alle Google APIs
    • VPC-SC
  5. Geben Sie unter Endpunktname einen Namen für den Endpunkt ein.

  6. Wählen Sie ein Netzwerk für den Endpunkt aus.

  7. Wählen Sie eine IP-Adresse für den Endpunkt aus.

    Die IP-Adresse muss diese Anforderungen erfüllen.

    Wenn Sie eine neue IP-Adresse benötigen, können Sie eine erstellen:

    1. Klicken Sie auf IP-Adresse erstellen.
    2. Geben Sie einen Namen und eine Beschreibung für die IP-Adresse ein.
    3. Geben Sie die IP-Adresse ein, die Sie verwenden möchten, und klicken Sie auf Speichern.
  8. Wenn für dieses VPC-Netzwerk noch keine Service Directory-Region konfiguriert ist, wählen Sie die Region aus, die Sie verwenden möchten.

    Alle Endpunkte, die für den Zugriff auf Google APIs und Google-Dienste in einem bestimmten VPC-Netzwerk verwendet werden, verwenden die gleiche Service Directory-Region.

  9. Wenn für dieses VPC-Netzwerk noch kein Service Directory-Namespace konfiguriert ist, konfigurieren Sie den gewünschten Namespace:

    • Um einen automatisch zugewiesenen Namespace zu verwenden, klicken Sie auf das Drop-down-Menü Namespace und wählen Sie den automatisch zugewiesenen Namespace aus.

    • Um einen vorhandenen Namespace auszuwählen, der in einem anderen Netzwerk verwendet wird, klicken Sie auf das Drop-down-Menü Namespace und wählen Sie einen Namespace aus der Liste aus. Die Liste zeigt alle Namespaces im Projekt an. Sie müssen einen Namespace auswählen, der nur für Endpunkte verwendet wird, die für den Zugriff auf Google APIs verwendet werden.

    • Klicken Sie zum Erstellen eines neuen Namespace auf das Drop-down-Menü Namespace und dann auf Namespace erstellen. Geben Sie den Namespace ein und klicken Sie auf Erstellen.

    Alle Endpunkte, die Sie für den Zugriff auf Google APIs und Google-Dienste in einem bestimmten VPC-Netzwerk verwenden, verwenden denselben Service Directory-Namespace.

  10. Klicken Sie auf Endpunkt hinzufügen.

gcloud

  1. Reservieren Sie eine globale interne IP-Adresse, die Sie dem Endpunkt zuweisen möchten.

    gcloud compute addresses create ADDRESS_NAME \
      --global \
      --purpose=PRIVATE_SERVICE_CONNECT \
      --addresses=ENDPOINT_IP \
      --network=NETWORK_NAME
    

    Dabei gilt:

    • ADDRESS_NAME: der Name, der der reservierten IP-Adresse zugewiesen werden soll.

    • ENDPOINT_IP: die IP-Adresse, die für den Endpunkt reserviert werden soll.

      Die IP-Adresse muss diese Anforderungen erfüllen.

    • NETWORK_NAME: der Name des VPC-Netzwerks für den Endpunkt.

  2. Erstellen Sie eine Weiterleitungsregel, um den Endpunkt mit Google APIs und Google-Diensten zu verbinden.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
      --global \
      --network=NETWORK_NAME \
      --address=ADDRESS_NAME \
      --target-google-apis-bundle=API_BUNDLE \
      [ --service-directory-registration=REGION_NAMESPACE_URI ]
    

    Dabei gilt:

    • ENDPOINT_NAME: der Name, der dem Endpunkt zugewiesen werden soll. Der Name muss ein String mit 1 bis 20 Zeichen sein, der ausschließlich aus Kleinbuchstaben und Zahlen besteht. Der Name muss mit einem Buchstaben beginnen.

    • NETWORK_NAME: der Name des VPC-Netzwerks für den Endpunkt.

    • ADDRESS_NAME: der Name der reservierten Adresse im zugehörigen Netzwerk.

    • API_BUNDLE: das API-Bundle, das über den Endpunkt verfügbar gemacht werden soll. Liste der unterstützten APIs.

      • Verwenden Sie all-apis, um Zugriff auf alle unterstützten APIs zu gewähren.

      • Schränken Sie den Zugriff auf Google APIs, die VPC Service Controls unterstützen, mit vpc-sc ein.

    • REGION_NAMESPACE_URI: URI der Service Directory-Region oder des Namespace, den Sie verwenden möchten. Dieser URI muss auf das Projekt verweisen, in dem Sie den Endpunkt erstellen.

      • Sie können eine Region nur mit projects/PROJECT_NAME/locations/REGION definieren.

      • Sie können eine Region und einen Namespace mit projects/PROJECT_NAME/locations/REGION/namespaces/NAMESPACE definieren.

      Wenn Sie --service-directory-registration vollständig weglassen oder eine Region ohne Namespace festlegen, geschieht Folgendes:

      • Wenn für dieses VPC-Netzwerk bereits eine Region oder ein Namespace konfiguriert ist, werden diese Standardeinstellungen verwendet.

      • Wenn eine Region nicht konfiguriert ist, wird sie auf us-central1 gesetzt. Wenn ein Namespace nicht konfiguriert ist, wird ein vom System generierter Namespace zugewiesen.

API

  1. Reservieren Sie eine globale interne IP-Adresse, die Sie dem Endpunkt zuweisen möchten.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
    
    {
    "name": ADDRESS_NAME,
    "address": ENDPOINT_IP,
    "addressType": "INTERNAL",
    "purpose": PRIVATE_SERVICE_CONNECT,
    "network": NETWORK_URL
    }
    

    Dabei gilt:

    • PROJECT_ID: Ihre Projekt-ID.

    • ADDRESS_NAME: der Name, der der reservierten IP-Adresse zugewiesen werden soll.

    • ENDPOINT_IP: die IP-Adresse, die für den Endpunkt reserviert werden soll.

      Die IP-Adresse muss diese Anforderungen erfüllen.

    • NETWORK_URL: das VPC-Netzwerk für den Endpunkt. Mit der Methode network.list oder gcloud compute networks list --uri können Sie die URLs Ihrer Netzwerke ermitteln.

  2. Erstellen Sie eine Weiterleitungsregel, um den Endpunkt mit Google APIs und Google-Diensten zu verbinden.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules
    {
     "IPAddress": ADDRESS_URL,
     "network": NETWORK_URL,
     "name": ENDPOINT_NAME,
     "target": API_BUNDLE,
     "serviceDirectoryRegistrations : [
       {
         "service_directory_region": REGION,
         "namespace": "NAMESPACE"
    
       }
     ],
    }
    

    Dabei gilt:

    • PROJECT_ID: Ihre Projekt-ID.

    • ENDPOINT_NAME: der Name, der dem Endpunkt zugewiesen werden soll. Der Name muss ein String mit 1 bis 20 Zeichen sein, der ausschließlich aus Kleinbuchstaben und Zahlen besteht. Der Name muss mit einem Buchstaben beginnen.

    • NETWORK_URL: das VPC-Netzwerk für den Endpunkt. Mit der Methode network.list oder gcloud compute networks list --uri können Sie die URLs Ihrer Netzwerke ermitteln.

    • ADDRESS_URL: die URL der reservierten Adresse im zugehörigen Netzwerk. Mit der Methode globalAddresses.list oder gcloud compute addresses list --uri können Sie die URLs Ihrer reservierten Adressen ermitteln.

    • API_BUNDLE: das API-Bundle, das über den Endpunkt verfügbar gemacht werden soll. Liste der unterstützten APIs.

      • Verwenden Sie all-apis, um Zugriff auf alle unterstützten APIs zu gewähren.

      • Schränken Sie den Zugriff auf Google APIs, die VPC Service Controls unterstützen, mit vpc-sc ein.

    • REGION: Die Service Directory-Region, die Sie verwenden möchten. Beispiel: us-central1 Wenn Sie REGION weglassen und eine Region bereits für dieses VPC-Netzwerk konfiguriert ist, wird diese Region verwendet. Wenn eine Region nicht konfiguriert ist, wird sie auf us-central1 gesetzt.

    • NAMESPACE: der Name des Service Directory-Namespace, den Sie verwenden möchten. Wenn Sie NAMESPACE weglassen und für dieses VPC-Netzwerk bereits ein Namespace konfiguriert ist, wird dieser Namespace verwendet. Wenn ein Namespace nicht konfiguriert ist, wird ein vom System generierter Namespace zugewiesen.

Terraform

Sie können die folgenden Terraform-Ressourcen verwenden, um einen Endpunkt zu erstellen:

resource "google_compute_global_address" "default" {
  project      = google_compute_network.network.project
  name         = "global-psconnect-ip"
  address_type = "INTERNAL"
  purpose      = "PRIVATE_SERVICE_CONNECT"
  network      = google_compute_network.network.id
  address      = "10.3.0.5"
}
resource "google_compute_global_forwarding_rule" "default" {
  project               = google_compute_network.network.project
  name                  = "globalrule"
  target                = "all-apis"
  network               = google_compute_network.network.id
  ip_address            = google_compute_global_address.default.id
  load_balancing_scheme = ""
}

Funktionsweise des Endpunkts prüfen

Erstellen Sie eine VM-Instanz im VPC-Netzwerk, in dem Private Service Connect konfiguriert ist. Führen Sie den folgenden Befehl auf der VM aus, um zu prüfen, ob der Private Service Connect-Endpunkt funktioniert. Endpunkte reagieren nicht auf Ping-Anfragen (ICMP).

curl -v ENDPOINT_IP/generate_204

Ersetzen Sie ENDPOINT_IP durch die IP-Adresse des Endpunkts.

Wenn der Endpunkt funktioniert, wird der HTTP-Antwortcode 204 angezeigt.

Endpunkte auflisten

Sie können alle konfigurierten Endpunkte auflisten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

    Die Endpunkte werden angezeigt.

gcloud

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Die Ausgabe sieht in etwa so aus:

NAME  REGION  IP_ADDRESS  IP_PROTOCOL  TARGET
RULE          IP          TCP          all-apis

Informationen zu einem Endpunkt abrufen

Sie können alle Konfigurationsdetails eines Endpunkts aufrufen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

    Die Endpunkte werden angezeigt.

  3. Klicken Sie auf den Endpunkt, dessen Details Sie sich ansehen möchten.

gcloud

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --global

Endpunkt mit Label versehen

Sie können Labels für Endpunkte verwalten. Weitere Informationen finden Sie unter Ressourcen mit Labels versehen.

Endpunkt löschen

Sie können Endpunkte löschen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

  3. Wählen Sie den Endpunkt aus, den Sie löschen möchten, und klicken Sie dann auf Löschen.

gcloud

    gcloud compute forwarding-rules delete \
        ENDPOINT_NAME --global

Ersetzen Sie ENDPOINT_NAME durch den Namen des Endpunkts, das Sie löschen möchten.

Endpunkt verwenden

Zur Verwendung eines Endpunkts senden Sie Anfragen an einen DNS-Hostnamen, der zur IP-Adresse des Endpunkts aufgelöst wird.

  • Sie können die automatisch erstellten p.googleapis.com-DNS-Namen verwenden, wenn Sie Ihre Clients so konfigurieren können, dass sie einen benutzerdefinierten Endpunkt verwenden, und wenn p.googleapis.com-DNS-Einträge für die APIs und Dienste erstellt werden, die Sie verwenden möchten. Weitere Informationen finden Sie unter p.googleapis.com-DNS-Namen verwenden.

    Wenn Ihr Endpunktname beispielsweise xyz lautet, werden DNS-Einträge für storage-xyz.p.googleapis.com, compute-xyz.p.googleapis.com und andere häufig verwendete APIs im API-Bundle erstellt.

  • Sie können DNS-Einträge unter Verwendung der Standard-DNS-Namen erstellen, wenn Sie einen Client verwenden, der nicht für die Verwendung eines benutzerdefinierten Endpunkts konfiguriert wurde, oder wenn kein p.googleapis.com-DNS-Eintrag für den Dienst existiert, den Sie verwenden möchten. Weitere Informationen finden Sie unter DNS-Einträge mit Standard-DNS-Namen erstellen.

    Erstellen Sie beispielsweise DNS-Einträge für storage.googleapis.com und compute.googleapis.com.

p.googleapis.com-DNS-Namen verwenden

Wenn Sie einen Endpunkt erstellen, erstellt Service Directory DNS-Einträge für häufig verwendete APIs und Dienste, die über den Endpunkt verfügbar sind. DNS-Einträge werden nur für APIs und Dienste erstellt, deren Standard-DNS-Namen auf googleapis.com enden, und nur für eine Teilmenge dieser APIs und Dienste.

Die DNS-Einträge werden in einer privaten p.googleapis.com-Zone erstellt. Die Einträge verweisen auf die Endpunkt-IP-Adresse und verwenden das folgende Format: SERVICE-ENDPOINT.p.googleapis.com

Wenn Ihr Endpunktname beispielsweise xyz lautet, werden DNS-Einträge für storage-xyz.p.googleapis.com, compute-xyz.p.googleapis.com und andere unterstützte APIs erstellt.

Clients, die für die Verwendung eines benutzerdefinierten Endpunkts konfiguriert werden können, können mithilfe der p.googleapis.com-DNS-Namen Anfragen an einen Endpunkt senden.

Weitere Informationen zur Konfiguration der Verwendung für benutzerdefinierte Endpunkte finden Sie in der Dokumentation zu Ihrem Client oder Ihrer Clientbibliothek. Beispiel:

  • Python: Sie können api_endpoint unter Clientoptionen konfigurieren.

  • Go: Sie können WithEndpoint unter Clientoptionen konfigurieren.

  • .NET: Sie können Endpoint in der Builder-Klasse des Clients konfigurieren.

  • gcloud: Sie können api_endpoint_overrides in der gcloud CLI konfigurieren.

DNS-Einträge mit Standard-DNS-Namen erstellen

Sie müssen DNS-Einträge erstellen, um die Standard-DNS-Namen für APIs und Dienste an Ihren Endpunkt weiterzuleiten.

  • Ihr Client oder Ihre Anwendung kann nicht für die Verwendung eines p.googleapis.com-DNS-Namens konfiguriert werden.

  • Sie müssen auf einen unterstützten Dienst zugreifen, aber es gibt keinen automatisch erstellten p.googleapis.com-DNS-Namen für diesen Dienst.

So erstellen Sie DNS-Einträge, die auf Ihren Private Service Connect-Endpunkt verweisen:

  1. Erstellen Sie eine DNS-Zone für die zu verwendende Domain, z. B. googleapis.com oder gcr.io. Ziehen Sie zu diesem Zweck in Betracht, eine private Cloud DNS-Zone zu erstellen.

  2. In dieser DNS-Zone:

    1. Erstellen Sie einen A-Eintrag für den Domainnamen (Zone) selbst. Beispiel: googleapis.com oder gcr.io. Verweisen Sie diesen A-Eintrag auf die IP-Adresse des Endpunkts. Wenn Sie Cloud DNS verwenden, lesen Sie den Abschnitt Eintrag hinzufügen.

    2. Erstellen Sie einen CNAME-Eintrag für alle möglichen Hostnamen der zusätzlichen Domain. Verwenden Sie dazu ein Sternchen und einen Punkt, gefolgt vom Domainnamen (Zone), z. B. *.googleapis.com oder *.gcr.io. Verweisen Sie in diesem CNAME-Eintrag auf den A-Eintrag in derselben Zone. Verweisen Sie beispielsweise *.googleapis.com auf googleapis.com oder *.gcr.io auf gcr.io.

Zugriff von lokalen Hosts auf den Endpunkt

Wenn Ihr lokales Netzwerk mit einem VPC-Netzwerk verbunden ist, können Sie mit Private Service Connect von lokalen Hosts aus über die interne IP-Adresse des Endpunkts auf Google APIs und Google-Dienste zugreifen.

  • Ihr lokales Netzwerk muss über Cloud VPN-Tunnel oder VLAN-Anhänge für Cloud Interconnect mit einem VPC-Netzwerk verbunden sein.

  • Der Endpunkt muss sich im VPC-Netzwerk befinden, das mit Ihrem lokalen Netzwerk verbunden ist.

  • Das lokale Netzwerk muss geeignete Routen für den Endpunkt haben. Konfigurieren Sie ein benutzerdefiniertes Route Advertisement für Cloud Router, um Routen für den Endpunkt in der BGP-Sitzung anzukündigen, die Routen für den Cloud VPN-Tunnel oder den VLAN-Anhang verwaltet.

    • Wenn Ihr Netzwerk in der lokalen Umgebung ECMP-Routing (Equal-Cost Multi-Path) zur Verteilung des Traffics an Private Service Connect-Endpunkte verwendet, müssen Sie sicherstellen, dass alle Pakete für eine einzelne TCP-Verbindung durch denselben Cloud VPN-Tunnel oder VLAN-Anhang weitergeleitet werden. Wenn Pakete für eine vorhandene TCP-Verbindung über mehrere Pfade weitergeleitet werden, können zeitweise TCP-Zurücksetzungen (RSTs) auftreten. Konfigurieren Sie Ihre lokalen Peer-Router so, dass sie konsistente Ziele für den nächsten Hop beibehalten, um ein Zurücksetzen zu verhindern.
  • Sie müssen lokale Systeme konfigurieren, damit sie Abfragen an Ihre privaten DNS-Zonen senden können.

    Wenn Sie die privaten DNS-Zonen mit Cloud DNS implementiert haben, führen Sie die folgenden Schritte aus:

Fehlerbehebung

Die folgenden Abschnitte enthalten Informationen zum Beheben von Problemen mit Private Service Connect-Endpunkten, die für den Zugriff auf Google APIs verwendet werden.

Erstellen einer privaten DNS-Zone schlägt fehl

Wenn Sie einen Endpunkt erstellen, wird eine Service Directory-DNS-Zone erstellt. Das Erstellen einer Zone kann aus folgenden Gründen fehlschlagen:

  • Sie haben die Cloud DNS API in Ihrem Projekt nicht aktiviert.

  • Sie haben nicht die erforderlichen Berechtigungen, um eine Service Directory-DNS-Zone zu erstellen.

  • Eine DNS-Zone mit demselben Zonennamen ist in diesem VPC-Netzwerk vorhanden.

  • In diesem VPC-Netzwerk ist bereits eine DNS-Zone für p.googleapis.com vorhanden.

In Konflikt stehende Zonen existieren möglicherweise, weil ein vorheriger Löschvorgang fehlgeschlagen ist.

So erstellen Sie die Service Directory-DNS-Zone:

  1. Prüfen Sie, ob die Cloud DNS API in Ihrem Projekt aktiviert ist.

  2. Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Erstellen der Service Directory-DNS-Zone haben:

    • dns.managedZones.create
    • servicedirectory.namespaces.associatePrivateZone
  3. Löschen Sie die DNS-Zone.

  4. Erstellen Sie eine Service Directory-DNS-Zone auf der Grundlage des Service Directory-Namespace, der mit Ihrem Endpunkt verknüpft ist.

    Verwenden Sie beim Erstellen der Zone die folgenden Werte:

    • Zonenname: Verwenden Sie denselben Zonennamen, den das System während des fehlgeschlagenen Versuchs verwendet hat. Die Fehlermeldung zeigt an, welcher Zonenname verwendet wurde.

    • DNS-Name: p.googleapis.com. (einschließlich des abschließenden Punkts).

    • Service Directory-Namespace: Suchen Sie den Service Directory-Namespace für den von Ihnen erstellten Private Service Connect-Endpunkt und verwenden Sie diesen Namespace beim Erstellen der Service Directory-DNS-Zone.

    Der Service Directory-Namespace hat das folgende Format: goog-psc-NETWORK_NAME-NETWORK_ID.

Fehler beim Löschen der privaten DNS-Zone

Wenn Sie den letzten Endpunkt in einem VPC-Netzwerk löschen, wird die zugehörige Service Directory-Konfiguration einschließlich der DNS-Zone gelöscht.

Das Löschen kann wegen folgende Gründe fehlschlagen:

  • Sie haben nicht die erforderlichen Berechtigungen, um die DNS-Zone zu löschen.

  • Die Zone enthält benutzerdefinierte DNS-Einträge, die nicht von Service Directory erstellt wurden.

So beheben Sie das Problem:

  1. Prüfen Sie, ob Sie die Berechtigung dns.managedZones.delete haben. Weitere Informationen finden Sie unter Zugriffssteuerung in der Dokumentation zu Cloud DNS.

  2. Löschen Sie die DNS-Zone.