Auf dieser Seite wird erläutert, wie Sie die DNS-Einstellungen für eine Domain mithilfe von Cloud DNS und Cloud Tools for PowerShell konfigurieren. Sie werden Schritt für Schritt durch ein einfaches Beispiel geführt, in dem für die Verwaltung einer Domain und deren Subdomains eine verwaltete Zone erstellt wird. Anschließend werden der Zone Ressourceneinträge hinzugefügt. Darin ist angegeben, wie sich der DNS-Server bei der Verwaltung von Anfragen in der Domain verhalten soll.
In diesem Dokument wird vorausgesetzt, dass Sie einen Domainnamen und eine IP-Adresse haben, auf die Sie den Domainnamen verweisen können. Andernfalls können Sie einen Domainnamen über Google Domains oder einen anderen Domain-Registrator Ihrer Wahl anmelden.
Lesen Sie die Cmdlet-Referenz für Cloud Tools for PowerShell, um mehr über Cloud DNS-Cmdlets zu erfahren. Allgemeine Informationen zu Cloud DNS finden Sie in der Übersicht über Cloud DNS.
Eine verwaltete Zone für Ihre Domain erstellen
Der gesamte DNS-Namespace ist aus mehreren Domains zusammengesetzt, zu der Ihre eigene Domain auch bald gehören wird. Verwaltete Zonen in Cloud DNS modellieren DNS-Zonen und dienen als Container, um DNS-Einträge (wie A-, CNAME- oder TXT-Einträge) mit dem gleichen DNS-Namenssuffix zu organisieren. Zum Beispiel könnten sich die Einträge für "example.com." und Subdomains wie "first.example.com." in der gleichen Zone befinden, da sie dasselbe Suffix "example.com." haben. Beachten Sie den abschließenden Punkt, der notwendig ist und das Ende eines DNS-Namens anzeigt.
Richten Sie zuerst eine verwaltete Zone ein, um die DNS-Einträge zu verwalten, die Sie für Ihren Domainnamen erstellen. Sie können eine neue verwaltete Zone erstellen und mit dem Cmdlet Add-GcdManagedZone
dem Konsolenprojekt hinzufügen:
Add-GcdManagedZone ` -Name "my-new-zone" ` -DnsName "example.com." ` -Description "This is my first zone."
Dadurch wird eine neue Zone mit den angegebenen Details erstellt und dem aktuellen Projekt der aktiven gcloud-Befehlszeile hinzugefügt. Sie können jedoch auch eine andere Projekt-ID angeben. In diesem Fall werden zusätzlich NS- und SOA-Standardeinträge für Sie in der Zone erstellt.
Damit Ihre neuen Einträge in der Zone jedoch im Internet veröffentlicht werden können, müssen Sie auch die Nameserver Ihrer Domain so aktualisieren, dass Cloud DNS verwendet wird. Auch wenn Ihre Domain bei Google Domains registriert ist, müssen Sie die Nameserver aktualisieren.
Welche Cloud DNS-Nameserver Ihrer Domain zugewiesen sind, können Sie mit dem Cmdlet Get-GcdManagedZone
ermitteln. Führen Sie es in der verwalteten Zone aus, die für die Domain zuständig ist, um Informationen zur Zone abzurufen:
Get-GcdManagedZone -Zone "my-new-zone"
Ressourceneinträge hinzufügen und entfernen
DNS-Ressourceneinträge bieten Informationen, die das Verhalten des DNS-Servers bei der Verwaltung von Anfragen an eine Domain bestimmen. DNS-Einträge können zum Beispiel genutzt werden, um dem Server die IP-Adresse mitzuteilen, auf die eine Domain auflöst. Außerdem können Sie damit die nutzbaren Mail-Exchange-Server für eine Domain aufrufen und vieles mehr.
In Cloud DNS können Sie DNS-Einträge einer Zone hinzufügen oder daraus entfernen, um dieses Verhalten zu konfigurieren. Wenn Sie unveränderliche Ressourceneinträge hinzufügen oder entfernen möchten, ändern Sie die Einträge in einer Zone nicht direkt. Stattdessen erstellen Sie mit den Cmdlets New-GcdResourceRecordSet
und Get-GcdResourceRecordSet
unabhängige Ressourcendatensätze oder rufen diese ab und senden dann mithilfe des Add-GcdChange
-Cmdlets Änderungsanforderungen mit diesen Datensätzen an eine bestimmte Zone.
Ressourceneinträge erstellen
Sie können das Hilfs-Cmdlet New-GcdResourceRecordSet
verwenden, um einen Ressourcendatensatz zu erstellen, den Sie zu einer Änderung hinzufügen und dann zu einer verwalteten Zone hinzufügen oder löschen können.
Wenn Sie beispielsweise einen A-Eintrag erstellen möchten, durch den Ihre Domain auf eine externe IPv4-Adresse im Format #.#.#.# zu verweisen (wenn Sie eine IPv6-Adresse haben, verwenden Sie einen AAAA-Eintrag), können Sie den folgenden Befehl verwenden:
$ARecord = New-GcdResourceRecordSet ` -Name "example.com." -Rrdata "107.1.23.134" -Type "A"
Sie können auch einen CNAME-Eintrag für die Subdomain www erstellen, damit "www.example.com." auf die gleiche IP-Adresse auflöst und sich genauso wie "example.com." verhält. Verwenden Sie hierfür folgenden Befehl:
$CNAMERecord = New-GcdResourceRecordSet ` -Name "www.example.com." -Rrdata "example.com." -Type "CNAME"
Die unterstützten Ressourceneintragstypen, die Sie erstellen und in Änderungen an einer Zone einfügen können, sind A, AAAA, CNAME, MX, NAPTR, NS, PTR, SOA, SPF, SRV und TXT. Informationen dazu, welche Einträge Sie benötigen und wie Sie sie erstellen, finden Sie unter Unterstützte Ressourceneintragsformate für Cloud DNS.
Ressourceneinträge abrufen
Sie können mit dem Cmdlet Get-GcdResourceRecordSet
einen in einer Zone vorhandenen Ressourceneintrag abrufen. Es gibt alle Einträge in der jeweiligen Zone zurück und indexiert dann die Ergebnisse:
$allRecords = Get-GcdResourceRecordSet -Zone "my-new-zone" $record0 = $allRecords[0]
Wenn Sie nur Einträge eines bestimmten Typs abrufen möchten, können Sie die Ergebnisse entsprechend filtern:
$ARecord = Get-GcdResourceRecordSet -Zone "my-new-zone" -Filter "A"
Änderungen in einer verwalteten Zone vornehmen
Die Cmdlets New-GcdResourceRecordSet
und Get-GcdResourceRecordSet
geben beide Ressourceneinträge zurück, fügen aber keine Einträge hinzu und löschen sie nicht. Verwenden Sie dazu das Cmdlet Add-GcdChange
:
Add-GcdChange ` -Zone "my-new-zone" -Add $record1,$record2 -Remove $record0
Wenn Sie beispielsweise die oben erstellten A- und CNAME-Einträge unserer Zone hinzufügen möchten, geben Sie Folgendes ein:
Add-GcdChange -Zone "my-new-zone" -Add $ARecord,$CNAMERecord
Wenn Sie später die IPv4-Adresse ändern möchten, zu der Ihre Domain auflöst, können Sie einen neuen Eintrag vom Typ A erstellen und zur verwalteten Zone hinzufügen, während Sie den alten A-Eintrag löschen:
$oldARecord = Get-GcdResourceRecordSet -Zone "my-new-zone" -Filter "A" $newARecord = New-GcdResourceRecordSet ` -Name "example.com." -Rrdata "104.1.34.167" -Type "A" Add-GcdChange -Zone "my-new-zone" -Remove $oldARecord -Add $newARecord
Bei jedem Aufruf des Add-GcdChange
-Cmdlets wird das neu ausgeführte Change Request-Objekt zurückgegeben. Sie können auch das Cmdlet Add-GcdChange
an ein Änderungsanfrageobjekt übergeben, das direkt ausgeführt werden soll, anstatt Listen von Ressourceneinträgen zu erstellen:
Add-GcdChange -Zone "my-new-zone" -ChangeRequest $change0
Generell wird davon abgeraten, Änderungsanfrageobjekte manuell zu erstellen. Es kann aber nützlich sein, wenn Sie eine früher oder in einer anderen Zone vorgenommene Änderung wieder anwenden möchten.
Sie können mit dem Cmdlet Get-GcdChange
alle bisher auf eine Zone angewendeten Änderungsanfrageobjekte abrufen:
$allChanges = Get-GcdChange -Zone "my-new-zone"
Sie können eine bestimmte Änderung auswählen, indem Sie das vorherige Ergebnis indexieren oder mit einer ChangeID angeben, welche Änderung abgerufen werden soll. Änderungsanfragen werden normalerweise von 0 an in der Reihenfolge nummeriert, in der sie an die Zone gesendet wurden:
$firstChange = Get-GcdChange -Zone "my-new-zone" -ChangeId 0 Add-GcdChange -Zone "my-new-zone" -ChangeRequest $firstChange
Verwaltete Zonen löschen
Manchmal möchten Sie eine verwaltete Zone vielleicht komplett löschen. Dies kann verschiedene Gründe haben. Vielleicht haben Sie die Zone "user1-zone" für die Subdomain "user1.example.com." verwaltet, aber user1 hat sein Konto gelöscht. In dem Fall sollten Sie die Subdomain und alle damit verknüpften DNS-Einträge löschen.
Verwenden Sie zum Entfernen einer verwalteten Zone aus Ihrem Projekt das Cmdlet Remove-GcdManagedZone
:
Remove-GcdManagedZone -Zone "user1-zone"
Falls erfolgreich, wird der Befehl nichts zurückgeben.
Allerdings funktioniert dieses Cmdlet nicht sofort bei "nicht leeren" verwalteten Zonen in Cloud DNS oder bei Zonen, deren Einträge nicht vom Typ NS oder SOA und somit keine Standardeinträge sind. Sie können zum Beispiel "my-new-zone", der Sie A- und CNAME-Einträge hinzugefügt haben, nicht löschen, ohne dass Sie dem Cmdlet während der Bearbeitung die Berechtigung dazu geben oder den Switch -Force
verwenden:
Remove-GcdManagedZone -Zone "my-new-zone" -Force
Das Cmdlet Remove-GcdManagedZone
akzeptiert auch Pipeline-Eingaben für die zu löschenden Zonen. Mit dem folgenden Befehl wird beispielsweise das Löschen aller verwalteten Zonen im aktuellen Projekt erzwungen. Dies kann hilfreich sein, wenn Sie keine der in einem Projekt eingerichteten Domains mehr nutzen:
Get-GcdManagedZone | Remove-GcdManagedZone -Force