DNS-Bindungen konfigurieren

Auf dieser Seite wird beschrieben, wie Sie DNS-Bindungen für Standard- VMware Engine-Netzwerke

Jede private Cloud stellt einen Cloud DNS-Server bereit, der für die gesamte Verwaltung verwendet wird Auflösung der Appliances. Sie können diesen Server als DNS-Server für alle VMware-Arbeitslasten durch Einrichten von DNS-Bindungen Gehen Sie dazu folgendermaßen vor:

  1. IP-Adresse des DNS-Servers der Private Cloud abrufen
  2. DNS-Bindungsberechtigungen einrichten, damit ein Nutzerhauptkonto an die Intranet-VPC gebunden werden kann
  3. Konfigurieren Sie das DNS für Ihre VMware-Arbeitslasten oder Ihre DHCP-DNS-Einstellung für NSX-T-Segmente

Hinweise

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

gcloud- und API-Anforderungen

So verwenden Sie das gcloud-Befehlszeilentool oder die API zum Verwalten Ihrer VMware Engine Ressourcen, 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 abfragen. Als Teil des cURL ist ein gültiges Zugriffstoken erforderlich Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken zu erhalten. folgende verwenden Sie für diese Schritte das gcloud-Tool, um ein Zugriffstoken zu generieren:

  1. Melden Sie sich in Google Cloud an:

    gcloud auth login
    
  2. Zugriffstoken generieren und in TOKEN exportieren:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Überprüfen Sie, ob das TOKEN richtig eingestellt 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

Bei Python-Codebeispielen in dieser Dokumentation wird die VMware Engine-Bibliothek verwendet, um mit der API zu kommunizieren. 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 den entsprechenden Befehl in Ihrer Shell ausführen:

    gcloud auth application-default login
    

    Oder verwenden Sie eine Dienstkonto-Schlüsseldatei:

    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. Auf die Google Cloud Console zugreifen
  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. 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

Rufen Sie die IP-Adresse des DNS-Servers Ihrer privaten Cloud mithilfe von Verwenden Sie in der Google Cloud CLI den Befehl gcloud vmware private-clouds describe:

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 Dies ist eine erweiterte private Cloud. Geben Sie die Zone für diese private Cloud an. Cloud

API

So rufen Sie die IP-Adresse des DNS-Servers Ihrer privaten Cloud mithilfe der VMware Engine API ab: Stellen Sie eine GET-Anfrage:

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 ist eine erweiterte private Cloud. Geben Sie die Zone für diese private Cloud an.
  • PRIVATE_CLOUD_ID: der Name der privaten Cloud

Berechtigungen für DNS-Bindung einrichten

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

Berechtigung für DNS-Bindung gewähren

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

gcloud

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

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

API

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

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/dnsBindPermission:grant -d '
{
"principal": {
  "user": "USER"
}
}'

Ersetzen Sie Folgendes:

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

Berechtigung für DNS-Bindung widerrufen

Hebt die Berechtigung für DNS-Bindung auf, die dem Nutzer zuvor gewährt wurde.

gcloud

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

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

API

Sende eine POST-Anfrage an dnsBindPermissions:revoke und gib dem Nutzer E-Mail-Adresse ein.

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/dnsBindPermission:revoke -d '
{
"principal": {
  "user": "USER"
}
}'

Ersetzen Sie Folgendes:

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

Berechtigung für DNS-Bindung beschreiben

Beschreibt DNS-Bindungsberechtigungen für ein Projekt und das Nutzerhauptkonto, das Zugriff hat um DNS-Bindungen zu konfigurieren.

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/dnsBindPermission

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

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

Nachdem Sie einem Nutzerprinzipal die Berechtigungen zum Konfigurieren von DNS-Bindungen gewährt haben, kann der Nutzer eine Bindung zwischen der privaten DNS-Zone in Cloud DNS und dem Intranet-VPC des VMware Engine-Netzwerks. VMware Engine verwendet DNS-Peering zur Vereinfachung der Cloud DNS-Auflösung.

Intranet-VPC-URL ermitteln

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

Console

So ermitteln Sie die Intranet-VPC-URL mithilfe der Google Cloud Console:

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

gcloud

gcloud vmware networks describe VMWARE_ENGINE_NETWORK

Ersetzen Sie VMWARE_ENGINE_NETWORK durch das Netzwerk, beschreiben. Als Teil der Antwort gibt gcloud die Details des Netzwerks zurück die die Intranet-VPC-URL enthält.

API

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

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

Wenn die Bindungsberechtigungen konfiguriert sind, wird als Workflow Fügen Sie Ihrem VMware Engine-Netzwerk-Intranet-VPC ein DNS-Peering Verwaltungsprozess für Cloud DNS-Zonen für jede Zone.

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 Domain, die erweitert werden soll, z. B. zone1.example.com
  • INTRANET_VPC_URL: die Intranet-VPC-URL für den VMware Engine-Netzwerk
  • EXISTING_VPC: die URL des vorhandenen VPC-Netzwerk dass die DOMAIN bereits an
  • 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:

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 Domain, die erweitert werden soll, z. B. zone1.example.com
  • INTRANET_VPC_URL: die Intranet-VPC-URL für das VMware Engine-Netzwerk.
  • EXISTING_VPC: 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."