Verwalten von DNS-Zonen mithilfe der PowerShell
In diesem Artikel wird gezeigt, wie DNS-Zonen mithilfe von Azure PowerShell verwaltet werden. Sie können Ihre DNS-Zonen auch mithilfe der plattformübergreifenden Azure CLI oder über das Azure-Portal verwalten.
Dieses Handbuch befasst sich insbesondere mit öffentlichen DNS-Zonen. Informationen zur Verwendung von Azure PowerShell zum Verwalten von privaten Zonen in Azure DNS finden Sie unter Erste Schritte mit Azure DNS Private Zones mithilfe von Azure PowerShell.
Eine DNS-Zone wird zum Hosten der DNS-Einträge für eine bestimmte Domäne verwendet. Wenn Sie eine Domäne in Azure DNS hosten möchten, müssen Sie eine DNS-Zone für diesen Domänennamen erstellen. Jeder DNS-Eintrag für Ihre Domäne wird dann in dieser DNS-Zone erstellt.
Beispiel: Die Domäne „contoso.com“ kann eine Reihe von DNS-Einträgen wie „mail.contoso.com“ (für einen E-Mail-Server) und „www.contoso.com“ (für eine Website) enthalten.
Beim Erstellen einer DNS-Zone in Azure DNS gilt Folgendes:
- Der Name der Zone muss innerhalb der Ressourcengruppe eindeutig sein. Außerdem darf die Zone noch nicht vorhanden sein. Andernfalls ist der Vorgang nicht erfolgreich.
- Der gleiche Zonennamen kann in einer anderen Ressourcengruppe oder einem anderen Azure-Abonnement erneut verwendet werden.
- Wenn mehrere Zonen den gleichen Namen haben, erhält jede Instanz eine andere Adresse für den Namenserver. Mit der Domänennamen-Registrierungsstelle kann nur ein Satz von Adressen konfiguriert werden.
Hinweis
Sie müssen keinen Domänennamen besitzen, um eine DNS-Zone mit diesem Domänennamen in Azure DNS zu erstellen. Sie müssen jedoch die Domäne besitzen, um die Azure DNS-Namenserver als korrekte Namenserver für den Domänennamen mit der Domänennamen-Registrierungsstelle zu konfigurieren.
Weitere Informationen finden Sie unter Delegieren einer Domäne an Azure DNS.
Einrichten des Azure PowerShell für Azure DNS
Vorbereitung
Wichtig
Die Verwendung dieser Azure-Funktion mit PowerShell erfordert, dass Sie das AzureRM
-Modul installiert haben. Dies ist ein älteres Modul, das nur für Windows PowerShell 5.1 verfügbar ist und keine neuen Funktionen mehr erhält.
Die Az
- und AzureRM
-Module sind nicht kompatibel, wenn sie für dieselben PowerShell-Versionen installiert werden.
Wenn Sie beide Versionen benötigen:
- Deinstallieren Sie das Az-Modul über eine PowerShell 5.1-Sitzung.
- Deinstallieren Sie das AzureRM-Modul über eine PowerShell 5.1-Sitzung.
- Laden Sie mindestens PowerShell Core 6.x herunter, und installieren Sie die Anwendung.
- Installieren Sie das Az-Modul in einer PowerShell Core-Sitzung.
Vergewissern Sie sich vor Beginn der Konfiguration, dass Sie über Folgendes verfügen:
- Ein Azure-Abonnement. Wenn Sie noch kein Azure-Abonnement besitzen, können Sie Ihre MSDN-Abonnentenvorteile aktivieren oder sich für ein kostenloses Konto registrieren.
- Sie müssen die aktuelle Version der PowerShell-Cmdlets für Azure Resource Manager installieren. Weitere Informationen finden Sie unter Installieren und Konfigurieren von Azure PowerShell.
Anmelden bei Ihrem Azure-Konto
Öffnen Sie die PowerShell-Konsole, und stellen Sie eine Verbindung mit Ihrem Konto her. Weitere Informationen finden Sie unter Anmelden mit Azure PowerShell.
Connect-AzAccount
Auswählen des Abonnements
Überprüfen Sie die Abonnements für das Konto.
Get-AzSubscription
Wählen Sie aus, welches Azure-Abonnement Sie verwenden möchten.
Select-AzSubscription -SubscriptionName "your_subscription_name"
Erstellen einer Ressourcengruppe
Azure Resource Manager erfordert, dass alle Ressourcengruppen einen Speicherort angeben. Dieser wird als Standardspeicherort für Ressourcen in dieser Ressourcengruppe verwendet. Da alle DNS-Ressourcen global und nicht regional sind, hat die Auswahl des Speicherorts für die Ressourcengruppe jedoch keine Auswirkungen auf Azure DNS.
Dieser Schritt kann übersprungen werden, wenn Sie eine vorhandene Ressourcengruppe verwenden.
New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"
Erstellen einer DNS-Zone
Eine DNS-Zone wird mit dem New-AzDnsZone
-Cmdlet erstellt.
Im folgenden Beispiel wird in der Ressourcengruppe namens MyDNSResourceGroup eine DNS-Zone namens contoso.com erstellt:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Das folgende Beispiel zeigt, wie Sie eine DNS-Zone mit zwei Azure Resource Manager-Tags erstellen: project = demo und env = test:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Abrufen einer DNS-Zone
Verwenden Sie zum Abrufen einer DNS-Zone das Cmdlet Get-AzDnsZone
. Dieser Vorgang gibt ein DNS-Zonenobjekt zurück, das einer vorhandenen Zone in Azure DNS entspricht. Das Objekt enthält Daten über die Zone (z.B. die Anzahl der Ressourceneintragssätze), jedoch nicht die Ressourceneintragssätze selbst (siehe Get-AzDnsRecordSet
).
Get-AzDnsZone -Name contoso.com –ResourceGroupName MyDNSResourceGroup
Name : contoso.com
ResourceGroupName : myresourcegroup
Etag : 00000003-0000-0000-8ec2-f4879750d201
Tags : {project, env}
NameServers : {ns1-01.azure-dns.com., ns2-01.azure-dns.net., ns3-01.azure-dns.org.,
ns4-01.azure-dns.info.}
NumberOfRecordSets : 2
MaxNumberOfRecordSets : 5000
Auflisten von DNS-Zonen
Durch Auslassen des Zonennamens in Get-AzDnsZone
können Sie alle Zonen in einer Ressourcengruppe auflisten: Dieser Vorgang gibt ein Array von Zonenobjekten zurück.
$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList
Durch das Weglassen des Zonennamens und des Ressourcengruppennamens aus Get-AzDnsZone
können Sie alle Zonen im Azure-Abonnement auflisten.
$zoneList = Get-AzDnsZone
$zoneList
Aktualisieren einer DNS-Zone
Änderungen an einer DNS-Zonenressource können mithilfe von Set-AzDnsZone
vorgenommen werden. Durch dieses Cmdlet wird keine der DNS-Datensatzgruppen in der Zone aktualisiert (siehe Verwalten von DNS-Einträgen). Es wird nur verwendet, um Eigenschaften der Zonenressource selbst zu aktualisieren. Die schreibbaren Zoneneigenschaften sind derzeit auf die Azure Resource Manager-„Tags“ für die Zonenressource beschränkt.
Verwenden Sie eine der folgenden zwei Möglichkeiten, um eine DNS-Zone zu aktualisieren:
Angeben der Zone mithilfe des Zonennamens und der Ressourcengruppe
Mit diesem Ansatz werden die vorhandenen Zonen-Tags durch die angegebenen Werte ersetzt.
Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Angeben der Zone mithilfe eines $zone-Objekts
Mit diesem Ansatz werden das vorhandene Zonenobjekt abgerufen, die Tags geändert und dann ein Commit für die Änderungen ausgeführt. Auf diese Weise können vorhandene Tags beibehalten werden.
# Get the zone object
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
# Remove an existing tag
$zone.Tags.Remove("project")
# Add a new tag
$zone.Tags.Add("status","approved")
# Commit changes
Set-AzDnsZone -Zone $zone
Wenn Sie Set-AzDnsZone
mit einem $zone-Objekt verwenden, werden ETag-Überprüfungen verwendet, um sicherzustellen, dass gleichzeitige Änderungen nicht überschrieben werden. Diese Überprüfungen können mithilfe des optionalen Switchs -Overwrite
unterdrückt werden.
Löschen einer DNS-Zone
DNS-Zonen können mithilfe des Remove-AzDnsZone
-Cmdlets gelöscht werden.
Hinweis
Durch das Löschen einer DNS-Zone werden auch alle DNS-Einträge in der Zone gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden. Wenn die DNS-Zone verwendet wird, tritt in Diensten, die die Zone verwenden, ein Fehler auf.
Informationen dazu, wie Sie Zonen vor versehentlichem Löschen schützen, finden Sie unter How to protect DNS zones and records (Schützen von DNS-Zonen und -Einträgen).
Verwenden Sie eine der beiden folgenden Möglichkeiten, um eine DNS-Zone zu entfernen:
Geben Sie die Zone mithilfe des Zonennamens und des Ressourcengruppennamens an.
Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Angeben der Zone mithilfe eines $zone-Objekts
Sie können festlegen, dass die Zone mithilfe eines von Get-AzDnsZone
zurückgegebenen $zone
-Objekts gelöscht werden soll.
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone
Das Zonenobjekt kann auch weitergeleitet werden, anstatt als Parameter übergeben zu werden:
Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone
Wie bei Set-AzDnsZone
ermöglicht die Angabe der Zone mithilfe eines $zone
-Objekts die ETag-Überprüfung, um sicherzustellen, dass gleichzeitige Änderungen nicht gelöscht werden. Verwenden Sie den -Overwrite
-Switch, um diese Überprüfungen zu unterdrücken.
Bestätigungsaufforderungen
Die Cmdlets New-AzDnsZone
, Set-AzDnsZone
und Remove-AzDnsZone
unterstützen jeweils Bestätigungsaufforderungen.
Sowohl New-AzDnsZone
als auch Set-AzDnsZone
fordern eine Bestätigung an, wenn die PowerShell-Einstellungsvariable $ConfirmPreference
einen Wert von Medium
oder weniger hat. Da das Löschen einer DNS-Zone potentiell ungewollte Bedingungen verursachen kann, fordert dasRemove-AzDnsZone
Cmdlet zur Bestätigung auf, wenn die $ConfirmPreference
PowerShell-Variable einen anderen Wert als None
aufweist.
Da High
der Standardwert für $ConfirmPreference
ist, fordert nur Remove-AzDnsZone
standardmäßig zur Bestätigung auf.
Die aktuelle Einstellung für $ConfirmPreference
kann mithilfe des -Confirm
-Parameters überschrieben werden. Bei Angabe von -Confirm
oder -Confirm:$True
fordert das Cmdlet vor der Ausführung eine Bestätigung an. Bei Angabe von -Confirm:$False
fordert das Cmdlet keine Bestätigung an.
Weitere Informationen zu -Confirm
und $ConfirmPreference
finden Sie unter About Preference Variables (Informationen zu Einstellungsvariablen).
Nächste Schritte
Erfahren Sie, wie Sie Ressourceneintragssätze und Einträge in Ihrer DNS-Zone verwalten.
Erfahren Sie, wie Sie Ihre Domäne an Azure DNS delegieren.
Machen Sie sich mit der Azure DNS PowerShell-Referenzdokumentation vertraut.