DNS-Bindungen konfigurieren

Auf dieser Seite wird beschrieben, wie Sie DNS-Bindungen für VMware Engine-Standardnetzwerke konfigurieren.

Jede private Cloud stellt einen Cloud DNS-Server bereit, der für die Auflösung aller Management Appliances verwendet wird. Sie können diesen Server als DNS-Server für alle VMware-Arbeitslasten konfigurieren. Richten Sie dazu DNS-Bindungen ein. Gehen Sie dazu so vor:

  1. IP-Adresse des DNS-Servers der privaten Cloud abrufen
  2. Richten Sie DNS-Bindeberechtigungen ein, damit ein Hauptkonto eines Nutzers an die Intranet-VPC gebunden werden kann
  3. DNS für VMware-Arbeitslasten oder DHCP-DNS-Einstellung des NSX-T-Segments konfigurieren

Hinweise

Sie können DNS-Bindungen nur mit dem gcloud-Tool oder der API konfigurieren.

gcloud- und API-Anforderungen

Wenn Sie das gcloud-Befehlszeilentool oder die API zum Verwalten Ihrer VMware Engine-Ressourcen verwenden möchten, empfehlen wir, die Tools wie unten beschrieben zu konfigurieren.

gcloud

  1. Legen Sie Ihre Standardprojekt-ID fest:

    gcloud config set project PROJECT_ID
    
  2. Legen Sie eine Standardregion und -zone fest:

    gcloud config set compute/region REGION
    
    gcloud config set compute/zone ZONE
    

Weitere Informationen zum gcloud vmware-Tool finden Sie in der Cloud SDK-Referenzdokumentation.

API

API-Beispiele in dieser Dokumentation verwenden das cURL-Befehlszeilentool, um die API abzufragen. Ein gültiges Zugriffstoken ist im Rahmen der cURL-Anfrage erforderlich. Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken abzurufen. In den folgenden Schritten wird das gcloud-Tool verwendet, um ein Zugriffstoken zu generieren:

  1. Melden Sie sich in Google Cloud an:

    gcloud auth login
    
  2. Generieren Sie ein Zugriffstoken und exportieren Sie es in TOKEN:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Überprüfen Sie, ob TOKEN ordnungsgemäß festgelegt ist:

    echo $TOKEN
    

Verwenden Sie nun das Autorisierungstoken in Ihren Anfragen an die API. Beispiel:

curl -X GET -H "Authorization: Bearer \"$TOKEN\"" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations

Python

In den Python-Codebeispielen in dieser Dokumentation wird die VMware Engine-Bibliothek für die Kommunikation mit der API verwendet. Um diesen Ansatz verwenden zu können, muss die Bibliothek installiert und die Standardanmeldedaten für Anwendungen konfiguriert werden.

  1. Laden Sie die Python-Bibliothek herunter und installieren Sie sie:

    pip install google-cloud-vmwareengine
    
  2. Konfigurieren Sie die ADC-Informationen, indem Sie diese Befehle in Ihrer Shell ausführen:

    gcloud auth application-default login
    

    Alternativ können Sie eine Dienstkonto-Schlüsseldatei verwenden:

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Weitere Informationen zur Bibliothek finden Sie auf der Referenzseite oder in den Codebeispielen auf GitHub.

IP-Adresse des DNS-Servers einer Arbeitslast der privaten Cloud abrufen

Console

Führen Sie die folgenden Schritte aus, um die IP-Adresse des DNS-Servers Ihrer privaten Cloud abzurufen.

  1. Rufen Sie die Google Cloud Console auf.
  2. Klicken Sie in der Hauptnavigation auf Private Clouds.
  3. Klicken Sie auf den Namen der privaten Cloud, zu der Sie eine Verbindung herstellen möchten.
  4. Klicken Sie auf der Seite Zusammenfassung für die private Cloud unter Private Cloud-DNS-Server auf Kopieren, um die IP-Adresse des privaten Cloud DNS-Servers zu kopieren.

gcloud

Verwenden Sie den Befehl gcloud vmware private-clouds describe, um die IP-Adresse des DNS-Servers Ihrer privaten Cloud über die Google Cloud CLI abzurufen:

gcloud vmware private-clouds describe \
  --private-cloud=PRIVATE_CLOUD_ID \
  --project=PROJECT_ID \
  --location=REGION

Ersetzen Sie Folgendes:

  • PRIVATE_CLOUD_ID: der Name der privaten Cloud für diese Anfrage
  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • REGION: Region der privaten Cloud. Wenn es sich um eine erweiterte private Cloud handelt, geben Sie die Zone für diese private Cloud an.

API

Stellen Sie eine GET-Anfrage, um die IP-Adresse des DNS-Servers Ihrer privaten Cloud mithilfe der VMware Engine API abzurufen:

curl -X GET -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/privateCloud/PRIVATE_CLOUD_ID"

Ersetzen Sie Folgendes:

  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • REGION: Region der privaten Cloud. Wenn dies eine erweiterte private Cloud ist, geben Sie die Zone für diese private Cloud an.
  • PRIVATE_CLOUD_ID ist der Name der privaten Cloud für diese Anfrage.

Berechtigungen für DNS-Bindung einrichten

Berechtigungen für DNS-Bindungen können Sie nur mit dem gcloud-Tool oder direkt über die REST API einrichten und verwalten. Es ist nicht möglich, Bindungen über die Console einzurichten.

DNS-Bindungsberechtigung gewähren

Damit ein Nutzer DNS-Bindungen konfigurieren kann, müssen Sie einem Hauptkonto die Berechtigung zum Binden an die Intranet-VPC erteilen. In diesem Fall ist ein Nutzerhauptkonto die E-Mail-Adresse des Nutzers, der die private DNS-Zone an die Intranet-VPC bindet.

gcloud

gcloud vmware dns-bind-permission grant \
  --user=USER

Ersetzen Sie USER durch die E-Mail-Adresse des Nutzers, der die private DNS-Zone an die Intranet-VPC binden wird. Beispiel: example1@gmail.com.

API

Stellen Sie eine POST-Anfrage an die Methode dnsBindPermissions:grant und geben Sie die E-Mail-Adresse des Nutzers im Anfragetext an.

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/privateClouds/dnsBindPermission:grant

{
"Principal": {
  "user": "USER"
}
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt für diese Anfrage.
  • USER: Die E-Mail-Adresse des Nutzers, dem Sie Berechtigungen widerrufen möchten. Beispiel: example1@gmail.com.

DNS-Bindungsberechtigung widerrufen

Hebt die zuvor dem Nutzer gewährte DNS-Bindungsberechtigung auf.

gcloud

gcloud vmware dns-bind-permission revoke \
  --user=USER

Ersetzen Sie USER durch die E-Mail-Adresse des Nutzers, dem Sie die Berechtigungen widerrufen möchten. Beispiel: example1@gmail.com.

API

Stellen Sie eine POST-Anfrage an dnsBindPermissions:revoke und geben Sie die E-Mail-Adresse des Nutzers im Anfragetext an.

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/privateClouds/dnsBindPermission:revoke

{
"Principal": {
  "user": "USER"
}
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt für diese Anfrage.
  • USER: Die E-Mail-Adresse des Nutzers, dem Sie Berechtigungen widerrufen möchten. Beispiel: example1@gmail.com.

DNS-Bind-Berechtigung beschreiben

Beschreibt DNS-Bindeberechtigungen für ein Projekt und das Nutzerhauptkonto, das Zugriff zum Konfigurieren von DNS-Bindungen hat.

gcloud

gcloud vmware dns-bind-permission describe

API

Stellen Sie eine GET-Anfrage an die Ressource dnsBindPermissions.

curl -X GET -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/privateClouds/dnsBindPermission

Ersetzen Sie PROJECT_ID durch das Projekt für diese Anfrage.

Private Cloud-DNS-Zone mit Intranet-VPC des VMware Engine-Netzwerks binden

Nachdem Sie einem Hauptkonto die Berechtigungen zum Konfigurieren von DNS-Bindungen erteilt haben, kann der Nutzer eine Bindung zwischen der privaten DNS-Zone in Cloud DNS und der Intranet-VPC des VMware Engine-Netzwerks erstellen. VMware Engine verwendet DNS-Peering, um die Cloud DNS-Auflösung zu vereinfachen.

Intranet-VPC-URL ermitteln

Sie benötigen die Intranet-VPC-URL des Netzwerks, um die neue Bindung zu erstellen. Die Intranet-VPC des VMware Engine-Netzwerks finden Sie, indem Sie die Details des VMware Engine-Netzwerks auflisten.

Console

So finden Sie die Intranet-VPC-URL über die Google Cloud Console:

  1. Rufen Sie die Google Cloud Console auf.
  2. Klicken Sie in der Hauptnavigation auf VMware Engine-Netzwerke.
  3. Suchen Sie das VMware Engine-Netzwerk, klicken Sie auf die Option Aktion und wählen Sie URL des Intranet-VPC-Netzwerk kopieren aus.

gcloud

gcloud vmware networks describe VMWARE_ENGINE_NETWORK

Ersetzen Sie VMWARE_ENGINE_NETWORK durch das zu beschreibende Netzwerk. Im Rahmen der Antwort gibt gcloud die Details des Netzwerks zurück, das die Intranet-VPC-URL enthält.

API

Stellen Sie eine GET-Anfrage an die Ressource vmwareEngineNetworks und geben Sie den Namen des Netzwerks an:

curl -X GET -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/vmwarenEngineNetworks/NETWORK_ID

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt für diese Anfrage
  • NETWORK_ID: das zu beschreibende Netzwerk

Bindung

Der vorgesehene Workflow besteht darin, nach dem Konfigurieren der Bindeberechtigungen ein DNS-Peering zur Intranet-VPC des VMware Engine-Netzwerks in die standardmäßige Cloud DNS-Zonenverwaltung für jede Zone aufzunehmen.

gcloud

gcloud dns managed-zones create peering-DOMAIN  \
--dns-name="DOMAIN" \
--visibility="private" \
--networks="INTRANET_VPC_URL" \
--target-project="PROJECT_ID" \
--target-network="EXISTING_VPC" \
--description="DESCRIPTION"

Ersetzen Sie Folgendes:

  • DOMAIN: die zu erweiternde Domain, Beispiel zone1.example.com
  • INTRANET_VPC_URL: die Intranet-VPC-URL für das VMware Engine-Netzwerk
  • EXISTING_VPC: die URL des vorhandenen VPC-Netzwerk, an das die DOMAIN bereits gebunden ist
  • PROJECT_ID ist die Projekt-ID für diese Anfrage.

API

Stellen Sie eine PATCH-Anfrage an die Ressource managedZones und geben Sie den Namen der Zone an:

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://dns.googleapis.com/v1/projects/PROJECT_ID/managedZones -d "{
"name": "peering-DOMAIN",
"description": "",
"dnsName": DOMAIN,
"peeringConfig": {
    "targetNetwork": {
        "networkUrl": EXISTING_VPC
    }
  },
  "privateVisibilityConfig": {
    "networks": [
      {
        "networkUrl": INTRANET_VPC_URL
      }
    ]
  }
}"

Ersetzen Sie Folgendes:

  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • DOMAIN: die zu erweiternde Domain, Beispiel zone1.example.com
  • INTRANET_VPC_URL: die Intranet-VPC-URL für das VMware Engine-Netzwerk
  • EXISTING_VPC: die URL des vorhandenen VPC-Netzwerk, an das die DOMAIN bereits gebunden ist

Beispiel-DNS-Bindungen

Im Folgenden finden Sie einige Beispiele für DNS-Bindungen, die Sie verwenden können.

Autoritativ

gcloud dns managed-zones create zone1 \
  --dns-name="zone1.example.com." \
  --visibility="private" \
  --description="DESCRIPTION" \
  --networks="EXISTING_VPC"
gcloud dns managed-zones create peering-zone1 \
  --dns-name="zone1.example.com." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"

Bedingte Weiterleitung

gcloud dns managed-zones create zone1 \
  --description="DESCRIPTION" \
  --dns-name="zone1.example.com." \
  --visibility="private" \
  --networks=EXISTING_VPC \
  --forwarding-targets="DNS_SERVER_IP1","DNS_SERVER_IP2"
gcloud dns managed-zones create peering-zone1 \
  --dns-name="zone1.example.com." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"

Alle weiterleiten

gcloud dns managed-zones create forward-all \
  --description="" --dns-name="." \
  --visibility="private" \
  --networks="EXISTING_VPC" \
  --forwarding-targets="DNS_SERVER_IP1","DNS_SERVER_IP2"
gcloud dns managed-zones create peering-forward-all \
  --dns-name="." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"

Google API privat

gcloud dns managed-zones create googleapis \
  --dns-name="googleapis.com." \
  --visibility="private" \
  --description="Direct GCVE traffic to Private IPs for Google API Access" \
  --networks="EXISTING_VPC"
gcloud dns managed-zones create peering-googleapis  \
  --dns-name="googleapis.com." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"
gcloud dns record-sets create private.googleapis.com. \
  --zone="googleapis" \
  --type="A" \
  --ttl="300" \
  --rrdatas="199.36.153.8,199.36.153.9,199.36.153.10,199.36.153.11"
gcloud dns record-sets create *.googleapis.com. \
  --zone="googleapis" \
  --type="CNAME" \
  --ttl="300" \
  --rrdatas="private.googleapis.com."

Google API eingeschränkt

gcloud dns managed-zones create googleapis \
  --dns-name="googleapis.com." \
  --visibility="private" \
  --description="Direct GCVE traffic to Private IPs for Google API Access" \
  --networks="EXISTING_VPC"
gcloud dns managed-zones create peering-googleapis \
  --dns-name="googleapis.com." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"
gcloud dns record-sets create restricted.googleapis.com. \
  --zone="googleapis" \
  --type="A" \
  --ttl="300" \
  --rrdatas="199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7"
gcloud dns record-sets create *.googleapis.com. \
  --zone="googleapis" \
  --type="CNAME" \
  --ttl="300" \
  --rrdatas="restricted.googleapis.com."