Hantera DNS-zoner med PowerShell
Den här artikeln visar hur du hanterar DNS-zoner med hjälp av Azure PowerShell. Du kan också hantera dina DNS-zoner med hjälp av plattformsoberoende Azure CLI eller Azure Portal.
Den här guiden behandlar specifikt offentliga DNS-zoner. Information om hur du använder Azure PowerShell för att hantera privata zoner i Azure DNS finns i Komma igång med privata Azure DNS-zoner med Azure PowerShell.
En DNS-zon används som värd åt DNS-posterna för en viss domän. Om du vill låta Azure DNS vara värd för din domän så måste du skapa en DNS-zon för det domännamnet. Varje DNS-post för din domän skapas sedan i den här DNS-zonen.
Domänen contoso.com kan t.ex. innehålla flera DNS-poster, som mail.contoso.com (för en e-postserver) och www.contoso.com (för en webbplats).
När du skapar en DNS-zon i Azure DNS:
- Namnet på zonen måste vara unikt inom resursgruppen och zonen får inte redan finnas. Annars misslyckas åtgärden.
- Samma zonnamn kan återanvändas i en annan resursgrupp eller Azure-prenumeration.
- Om flera zoner som delar samma namn, tilldelas varje instans sin egen namnserveradress. Endast en uppsättning adresser kan konfigureras hos domänamnsregistratorn.
Anteckning
Du behöver inte äga ett domännamn för att kunna skapa en DNS-zon med det domännamnet i Azure DNS. Du måste dock äga domänen för att kunna konfigurera Azure DNS-namnservrarna som rätt namnservrar för domännamnet hos domännamnsregistratorn.
Mer information finns i Delegera en domän till Azure DNS.
Konfigurera Azure PowerShell för Azure DNS
Innan du börjar
Viktigt
Om du använder den här Azure-funktionen från PowerShell måste modulen AzureRM
vara installerad. Det här är en äldre modul som bara är tillgänglig för Windows PowerShell 5.1 som inte längre tar emot nya funktioner.
Az
Modulerna och AzureRM
är inte kompatibla när de installeras för samma versioner av PowerShell.
Om du behöver båda versionerna:
- Avinstallera Az-modulen från en PowerShell 5.1-session.
- Installera AzureRM-modulen från en PowerShell 5.1-session.
- Ladda ned och installera PowerShell Core 6.x eller senare.
- Installera Az-modulen i en PowerShell Core-session.
Kontrollera att du har följande innan du påbörjar konfigurationen.
- En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du aktivera dina MSDN-prenumerantförmåner eller registrera dig för ett kostnadsfritt konto.
- Du måste installera den senaste versionen av Azure Resource Managers PowerShell-cmdletar. Mer information finns i Installera och konfigurera Azure PowerShell.
Logga in på ditt Azure-konto
Öppna PowerShell-konsolen och anslut till ditt konto. Mer information finns i Logga in med Azure PowerShell.
Connect-AzAccount
Välja prenumerationen
Kontrollera prenumerationerna för kontot.
Get-AzSubscription
Välj vilka av dina Azure-prenumerationer som du vill använda.
Select-AzSubscription -SubscriptionName "your_subscription_name"
Skapa en resursgrupp
Azure Resource Manager kräver att alla resursgrupper anger en plats. Den här platsen används som standardplats för resurserna i den resursgruppen. Men eftersom alla DNS-resurser är globala, inte regionala, så påverkar inte valet av resursgruppens plats Azure DNS.
Du kan hoppa över det här steget om du använder en befintlig resursgrupp.
New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"
Skapa en DNS-zon
En DNS-zon skapas med hjälp av cmdleten New-AzDnsZone
.
I följande exempel skapas en DNS-zon med namnet contoso.com i resursgruppen MyDNSResourceGroup:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
I följande exempel visas hur du skapar en DNS-zon med två Azure-Resource Manager-taggar, project = demo och env = test:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Hämta en DNS-zon
Om du vill hämta en DNS-zon använder du cmdleten Get-AzDnsZone
. Den här åtgärden returnerar ett DNS-zonobjekt som motsvarar en befintlig zon i Azure DNS. Objektet innehåller data om zonen (till exempel antalet postuppsättningar), men innehåller inte själva postuppsättningarna (se 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
Lista DNS-zoner
Genom att utelämna zonnamnet från Get-AzDnsZone
kan du räkna upp alla zoner i en resursgrupp. Den här åtgärden returnerar en matris med zonobjekt.
$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList
Genom att utelämna både zonnamnet och resursgruppsnamnet från Get-AzDnsZone
kan du räkna upp alla zoner i Azure-prenumerationen.
$zoneList = Get-AzDnsZone
$zoneList
Uppdatera en DNS-zon
Du kan göra ändringar i en DNS-zonresurs med Set-AzDnsZone
. Den här cmdleten uppdaterar inte någon av DNS-postuppsättningarna i zonen (se Hantera DNS-poster). Den används endast för att uppdatera zonresursens egenskaper. De skrivbara zonegenskaperna är för närvarande begränsade till Azure Resource Manager "taggar" för zonresursen.
Använd något av följande två sätt att uppdatera en DNS-zon:
Ange zonen med zonnamnet och resursgruppen
Den här metoden ersätter befintliga zontaggar med de angivna värdena.
Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Ange zonen med ett $zone-objekt
Den här metoden hämtar det befintliga zonobjektet, ändrar taggarna och genomför sedan ändringarna. På så sätt kan befintliga taggar bevaras.
# 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
När du använder Set-AzDnsZone
med ett $zone objekt används Etag-kontroller för att säkerställa att samtidiga ändringar inte skrivs över. Du kan använda den valfria -Overwrite
växeln för att ignorera dessa kontroller.
Ta bort en DNS-zon
DNS-zoner kan tas bort med hjälp av cmdleten Remove-AzDnsZone
.
Anteckning
Om du tar bort en DNS-zon så tar du även bort DNS-posterna i zonen. Du kan inte ångra den här åtgärden. Om DNS-zonen används, så misslyckas de tjänster som använder zonen när zonen tas bort.
Hur du gör för att förebygga oavsiktlig zonborttagning beskrivs i Skydda DNS-zoner och poster.
Använd något av följande två sätt när du ska ta bort en DNS-zon:
Ange zonen med zonnamnet och resursgruppens namn
Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Ange zonen med ett $zone-objekt
Du kan ange zonen som ska tas bort med hjälp av ett $zone
-objekt som returnerats av Get-AzDnsZone
.
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone
Zonobjektet kan även pipas i stället för att skickas som en parameter:
Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone
Precis som med Set-AzDnsZone
anger du zonen med ett $zone
objekt så att Etag-kontroller ser till att samtidiga ändringar inte tas bort. Använd växeln -Overwrite
för att ignorera dessa kontroller.
Bekräftelsemeddelanden
Cmdletarna New-AzDnsZone
, Set-AzDnsZone
och Remove-AzDnsZone
stöder alla bekräftelsemeddelanden.
Både New-AzDnsZone
och Set-AzDnsZone
frågar efter bekräftelse om $ConfirmPreference
PowerShell-inställningsvariabeln har värdet Medium
eller lägre. Eftersom borttagning av en DNS-zon potentiellt kan orsaka oönskade villkor uppmanas cmdleten Remove-AzDnsZone
att bekräfta om $ConfirmPreference
PowerShell-variabeln har något annat värde än None
.
Eftersom standardvärdet för $ConfirmPreference
är High
, så frågar endast Remove-AzDnsZone
om bekräftelse som standard.
Du kan åsidosätta den aktuella $ConfirmPreference
-inställningen med hjälp av parametern -Confirm
. Om du anger -Confirm
eller -Confirm:$True
, så uppmanar cmdleten dig att bekräfta detta innan den körs. Om du anger -Confirm:$False
uppmanas du inte att bekräfta cmdleten.
Mer information om -Confirm
och $ConfirmPreference
finns i Om inställningsvariabler.
Nästa steg
Lär dig hur du hanterar postuppsättningar och poster i DNS-zonen.
Lär dig hur du delegerar din domän till Azure DNS.
Läs referensdokumentationen för Azure DNS PowerShell.