DNS-Bindungen konfigurieren
Auf dieser Seite wird beschrieben, wie Sie DNS-Bindungen für Standard-VMware Engine-Netzwerke konfigurieren.
In jeder privaten Cloud wird ein Cloud DNS-Server bereitgestellt, der für die Auflösung aller Verwaltungs-Appliances verwendet wird. Sie können diesen Server als DNS-Server für alle VMware-Arbeitslasten konfigurieren, indem Sie DNS-Bindungen einrichten. Gehen Sie dazu so vor:
- IP-Adresse des DNS-Servers der Private Cloud abrufen
- DNS-Bindungsberechtigungen einrichten, damit sich ein Nutzer an das Intranet-VPC binden kann
- DNS für VMware-Arbeitslasten oder NSX-T-Segment-DHCP-DNS-Einstellung 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 standardmäßige Projekt-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 Tool gcloud vmware
finden Sie in der Cloud SDK-Referenzdokumentation.
API
In den API-Beispielen in diesem Dokumentensatz wird die API mit dem cURL
-Befehlszeilentool abgefragt. Für die cURL
-Anfrage ist ein gültiges Zugriffstoken erforderlich. Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken zu erhalten. In den folgenden Schritten wird das Tool gcloud
verwendet, um ein Zugriffstoken zu generieren:
Melden Sie sich in Google Cloud an:
gcloud auth login
Zugriffstoken generieren und in TOKEN exportieren:
export TOKEN=`gcloud auth print-access-token`
Prüfen Sie, ob TOKEN richtig festgelegt ist:
echo $TOKEN
Verwenden Sie das Autorisierungstoken jetzt 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 verwendet, um mit der API zu kommunizieren. Damit dieser Ansatz verwendet werden kann, muss die Bibliothek installiert und die Standardanmeldedaten für Anwendungen konfiguriert sein.
Laden Sie die Python-Bibliothek herunter und installieren Sie sie:
pip install google-cloud-vmwareengine
Konfigurieren Sie die ADC-Informationen, indem Sie diesen Befehl in Ihrer Shell ausführen:
gcloud auth application-default login
Sie können auch eine Dienstkontoschlüsseldatei verwenden:
export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
Weitere Informationen zur Bibliothek finden Sie auf der Referenzseite oder in den Codebeispielen auf GitHub.
DNS-Server-IP-Adresse für eine Private Cloud-Arbeitslast abrufen
Console
So rufen Sie die IP-Adresse des DNS-Servers Ihrer privaten Cloud ab:
Rufen Sie in der Google Cloud Console die Seite Private Clouds auf.
Klicken Sie auf den Namen der privaten Cloud, zu der Sie eine Verbindung herstellen möchten.
Klicken Sie auf der Seite Summary (Zusammenfassung) für Private Cloud DNS-Server auf Copy (Kopieren), um die IP-Adresse des Private Cloud DNS-Servers zu kopieren.
gcloud
Verwenden Sie den Befehl gcloud vmware private-clouds describe
, um mit der Google Cloud CLI die IP-Adresse des DNS-Servers Ihrer privaten Cloud abzurufen:
gcloud vmware private-clouds describe PRIVATE_CLOUD_ID \ --project=PROJECT_ID \ --location=REGION
Ersetzen Sie Folgendes:
PRIVATE_CLOUD_ID
: der Name der Private Cloud für diese AnfragePROJECT_ID
ist die Projekt-ID für diese Anfrage.REGION
: die Region der privaten Cloud. Bei einer erweiterten privaten Cloud geben Sie die Zone für diese private Cloud an.
API
Wenn Sie die IP-Adresse des DNS-Servers Ihrer privaten Cloud mit der VMware Engine API abrufen möchten, senden 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
: Die Region der privaten Cloud. Bei einer erweiterten privaten Cloud geben Sie die Zone für diese private Cloud an.PRIVATE_CLOUD_ID
: der Name der privaten Cloud für diese Anfrage.
DNS-Bindungsberechtigungen einrichten
Sie können DNS-Bindungsberechtigungen nur mit dem gcloud
-Tool oder direkt über die REST API einrichten und verwalten. Über die Console können keine Bindungen eingerichtet werden.
DNS-Bindungsberechtigung gewähren
Damit ein Nutzer DNS-Bindungen konfigurieren kann, müssen Sie einem Nutzerprinzipal die Berechtigung zum Binden an das Intranet-VPC gewähren. In diesem Fall ist ein Nutzerprinzipal die E-Mail-Adresse des Nutzers, der die private DNS-Zone mit der 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 mit dem Intranet-VPC verknüpfen soll. 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/dnsBindPermission:grant -d ' { "principal": { "user": "USER" } }'
Ersetzen Sie Folgendes:
PROJECT_ID
: das Projekt für diese Anfrage.USER
: die E-Mail-Adresse des Nutzers, für den Sie die Berechtigungen widerrufen möchten. Beispiel:example1@gmail.com
.
DNS-Bindungsberechtigung widerrufen
Widerruft die DNS-Bindungsberechtigung, 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, für den Sie die Berechtigungen widerrufen möchten. Beispiel: example1@gmail.com
.
API
Stelle eine POST
-Anfrage an dnsBindPermissions:revoke
und gib 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/dnsBindPermission:revoke -d ' { "principal": { "user": "USER" } }'
Ersetzen Sie Folgendes:
PROJECT_ID
: das Projekt für diese Anfrage.USER
: die E-Mail-Adresse des Nutzers, für den Sie die Berechtigungen widerrufen möchten. Beispiel:example1@gmail.com
.
Berechtigung zum DNS-Binden beschreiben
Beschreibt die DNS-Bindungsberechtigungen für ein Projekt und welche Nutzeridentität Zugriff zum Konfigurieren von DNS-Bindungen hat.
gcloud
gcloud vmware dns-bind-permission describe
API
Stellen Sie eine GET
-Anfrage an die dnsBindPermissions
-Ressource.
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 mit dem VMware Engine-Netzwerk-Intranet-VPC verknüpfen
Sobald Sie einem Nutzer die Berechtigungen zum Konfigurieren von DNS-Bindungen erteilt haben, kann er eine Bindung zwischen der privaten DNS-Zone in Cloud DNS und dem Intranet-VPC des VMware Engine-Netzwerks erstellen. In der VMware Engine wird DNS-Peering verwendet, um die Cloud DNS-Auflösung zu ermöglichen.
Intranet-VPC-URL ermitteln
Sie benötigen die VPC-URL des Netzwerk-Intranets, um die neue Bindung zu erstellen. Das Intranet-VPC des VMware Engine-Netzwerks finden Sie in den Details des VMware Engine-Netzwerks.
Console
So rufen Sie die Intranet-VPC-URL mit der Google Cloud Console auf:
Rufen Sie in der Google Cloud Console die Seite VMware Engine-Netzwerke auf.
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
Stelle eine GET
-Anfrage an die vmwareEngineNetworks
-Ressource und gib 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
Sobald die Bindungsberechtigungen konfiguriert sind, sollten Sie für jede Zone ein DNS-Peering zum VMware Engine-Netzwerk-Intranet-VPC in Ihren standardmäßigen Cloud DNS-Zonenverwaltungsprozess aufnehmen.
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, z. B.zone1.example.com
INTRANET_VPC_URL
: die Intranet-VPC-URL für das VMware Engine-NetzwerkEXISTING_VPC
: die URL des vorhandenen VPC-Netzwerk, mit dem dieDOMAIN
bereits verknüpft istPROJECT_ID
ist die Projekt-ID für diese Anfrage.
API
Stellen Sie eine PATCH
-Anfrage an die managedZones
-Ressource 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, z. B.zone1.example.com
INTRANET_VPC_URL
: die Intranet-VPC-URL für das VMware Engine-Netzwerk.EXISTING_VPC
: die URL des vorhandenen VPC-Netzwerk, mit dem die DOMAIN bereits verknüpft ist
Beispiel für 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 Private
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."