Dela via


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:

  1. Avinstallera Az-modulen från en PowerShell 5.1-session.
  2. Installera AzureRM-modulen från en PowerShell 5.1-session.
  3. Ladda ned och installera PowerShell Core 6.x eller senare.
  4. Installera Az-modulen i en PowerShell Core-session.

Kontrollera att du har följande innan du påbörjar konfigurationen.

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-AzDnsZoneanger 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.