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:
- IP-Adresse des DNS-Servers der Private Cloud abrufen
- DNS-Bindungsberechtigungen einrichten, damit ein Nutzerhauptkonto an die Intranet-VPC gebunden werden kann
- 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
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 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:
Melden Sie sich in Google Cloud an:
gcloud auth login
Zugriffstoken generieren und in TOKEN exportieren:
export TOKEN=`gcloud auth print-access-token`
Ü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.
Laden Sie die Python-Bibliothek herunter und installieren Sie sie:
pip install google-cloud-vmwareengine
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.
- Auf die Google Cloud Console zugreifen
- Klicken Sie in der Hauptnavigation auf Private Clouds.
- Klicken Sie auf den Namen der privaten Cloud, zu der Sie eine Verbindung herstellen möchten.
- 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 AnfragePROJECT_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:
- Auf die Google Cloud Console zugreifen
- Klicken Sie in der Hauptnavigation auf VMware Engine-Netzwerke.
- 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 AnfrageNETWORK_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-NetzwerkEXISTING_VPC
: die URL des vorhandenen VPC-Netzwerk dass dieDOMAIN
bereits anPROJECT_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."