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:
- IP-Adresse des DNS-Servers der privaten Cloud abrufen
- Richten Sie DNS-Bindeberechtigungen ein, damit ein Hauptkonto eines Nutzers an die Intranet-VPC gebunden werden kann
- 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
Legen Sie Ihre Standardprojekt-ID fest:
gcloud config set project PROJECT_ID
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:
Melden Sie sich in Google Cloud an:
gcloud auth login
Generieren Sie ein Zugriffstoken und exportieren Sie es in TOKEN:
export TOKEN=`gcloud auth print-access-token`
Ü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.
Laden Sie die Python-Bibliothek herunter und installieren Sie sie:
pip install google-cloud-vmwareengine
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.
- Rufen Sie die Google Cloud Console auf.
- Klicken Sie in der Hauptnavigation auf Private Clouds.
- Klicken Sie auf den Namen der privaten Cloud, zu der Sie eine Verbindung herstellen möchten.
- 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 AnfragePROJECT_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:
- Rufen Sie die Google Cloud Console auf.
- Klicken Sie in der Hauptnavigation auf VMware Engine-Netzwerke.
- 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 AnfrageNETWORK_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, Beispielzone1.example.com
INTRANET_VPC_URL
: die Intranet-VPC-URL für das VMware Engine-NetzwerkEXISTING_VPC
: die URL des vorhandenen VPC-Netzwerk, an das dieDOMAIN
bereits gebunden istPROJECT_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, Beispielzone1.example.com
INTRANET_VPC_URL
: die Intranet-VPC-URL für das VMware Engine-NetzwerkEXISTING_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."