Share via


DNS-zones beheren met PowerShell

In dit artikel leest u hoe u uw DNS-zones beheert met behulp van Azure PowerShell. U kunt uw DNS-zones ook beheren met behulp van de platformoverschrijdende Azure CLI of de Azure Portal.

Deze handleiding heeft specifiek betrekking op openbare DNS-zones. Zie Aan de slag met Privézones van Azure DNS met behulp van Azure PowerShell voor informatie over het gebruik van Azure PowerShell voor het beheren van privézones in Azure DNS.

Een DNS-zone wordt gebruikt om de DNS-records voor een bepaald domein te hosten. Als u uw domein wilt hosten in Azure DNS, moet u een DNS-zone maken voor die domeinnaam. Alle DNS-records voor uw domein worden vervolgens gemaakt binnen deze DNS-zone.

Het domein contoso.com kan bijvoorbeeld een aantal DNS-records bevatten, zoals mail.contoso.com (voor een e-mailserver) en www.contoso.com (voor een website).

Bij het maken van een DNS-zone in Azure DNS:

  • De naam van de zone moet uniek zijn binnen de resourcegroep en de zone mag niet al bestaan. Anders mislukt de bewerking.
  • Dezelfde zonenaam kan opnieuw worden gebruikt in een andere resourcegroep of in een ander Azure-abonnement.
  • Als meerdere zones dezelfde naam delen, wordt aan elk exemplaar een ander naamserveradres toegewezen. Er kan bij de domeinnaamregistrar slechts één set adressen worden geconfigureerd.

Notitie

U hoeft niet de eigenaar van een domeinnaam te zijn om een DNS-zone met die domeinnaam in Azure DNS te maken. U moet echter wel de eigenaar van het domein zijn om de Azure DNS-naamservers bij de domeinnaamregistrar te configureren als de juiste naamservers voor de domeinnaam.

Zie Delegate a domain to Azure DNS (Een domein aan Azure DNS overdragen) voor meer informatie.

Azure PowerShell voor Azure DNS instellen

Voordat u begint

Belangrijk

Als u deze Azure-functie van PowerShell wilt gebruiken, moet de AzureRM-module zijn geïnstalleerd. Dit is een oudere module die alleen beschikbaar is voor Windows PowerShell 5.1, dat geen nieuwe functies meer ontvangt. De modules Az en AzureRM zijn niet compatibel als ze voor dezelfde versies van PowerShell worden geïnstalleerd. Als u beide versies nodig hebt:

  1. De Az-module verwijderen vanuit een PowerShell 5.1-sessie.
  2. De AzureRM-module installeren vanuit een PowerShell 5.1-sessie.
  3. PowerShell Core 6.x of nieuwer downloaden en installeren.
  4. De Az-module installeren in een PowerShell Core-sessie.

Controleer voordat u met de configuratie begint of u de volgende items hebt.

Aanmelden bij uw Azure-account

Open de PowerShell-console en maak verbinding met uw account. Zie Aanmelden met Azure PowerShell voor meer informatie.

Connect-AzAccount

Het abonnement selecteren

Controleer de abonnementen voor het account.

Get-AzSubscription

Kies welk Azure-abonnement u wilt gebruiken.

Select-AzSubscription -SubscriptionName "your_subscription_name"

Een resourcegroep maken

Azure Resource Manager vereist dat er voor alle resourcegroepen een locatie wordt opgegeven. Deze locatie wordt gebruikt als de standaardlocatie voor resources in die resourcegroep. Aangezien alle DNS-resources globaal en niet regionaal zijn, is de keuze van de locatie voor de resourcegroep niet van invloed op Azure DNS.

U kunt deze stap overslaan als u een bestaande resourcegroep gebruikt.

New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"

Een DNS-zone maken

Een DNS-zone wordt gemaakt met de cmdlet New-AzDnsZone.

In het volgende voorbeeld wordt een DNS-zone met de naam contoso.com gemaakt in de resourcegroep met de naam MyDNSResourceGroup:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

In het volgende voorbeeld ziet u hoe u een DNS-zone maakt met twee Azure Resource Manager-tags, project = demo en env = test:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

Een DNS-zone ophalen

Gebruik de Get-AzDnsZone cmdlet om een DNS-zone op te halen. Met deze bewerking wordt een DNS-zoneobject geretourneerd dat overeenkomt met een bestaande zone in Azure DNS. Het object bevat gegevens over de zone (zoals het aantal recordsets), maar bevat niet de recordsets zelf (zie 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

DNS-zones vermelden

Door de zonenaam weg te laten uit Get-AzDnsZone, kunt u een opsomming maken van alle zones in een resourcegroep. Deze bewerking retourneert een matrix met zoneobjecten.

$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList

Door zowel de zonenaam als de resourcegroepnaam uit Get-AzDnsZone weg te laten, kunt u een opsomming maken van alle zones in het Azure-abonnement.

$zoneList = Get-AzDnsZone
$zoneList

Een DNS-zone bijwerken

Wijzigingen aan een DNS-zoneresource kunnen worden aangebracht met behulp van Set-AzDnsZone. Met deze cmdlet wordt geen van de DNS-recordsets in de zone bijgewerkt (zie DNS-records beheren). De cmdlet wordt alleen gebruikt voor het bijwerken van eigenschappen van de zoneresource zelf. De eigenschappen van de beschrijfbare zone zijn momenteel beperkt tot de Azure Resource Manager 'tags' voor de zoneresource.

Gebruik een van de volgende twee manieren om een DNS-zone bij te werken:

Geef de zone op met behulp van de zonenaam en resourcegroep

Met deze methode worden de bestaande zonetags vervangen door de opgegeven waarden.

Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

Geef de zone op met behulp van een $zone-object

Met deze methode wordt het bestaande zoneobject opgehaald, worden de tags gewijzigd en worden de wijzigingen vervolgens doorgevoerd. Op deze manier kunnen bestaande tags behouden blijven.

# 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

Wanneer u gebruikt Set-AzDnsZone met een $zone-object, worden Etag-controles gebruikt om ervoor te zorgen dat gelijktijdige wijzigingen niet worden overschreven. U kunt de optionele -Overwrite schakeloptie gebruiken om deze controles te onderdrukken.

Een DNS-zone verwijderen

DNS-zones kunnen worden verwijderd met behulp van de Remove-AzDnsZone cmdlet.

Notitie

Als u een DNS-zone verwijdert, worden ook alle DNS-records binnen de zone verwijderd. Deze bewerking kan niet ongedaan worden gemaakt. Als de DNS-zone in gebruik is en de zone wordt verwijderd, werken services die van de zone gebruik maken niet langer.

Zie DNS-zones en records beschermen om beveiliging in te stellen tegen het per ongeluk verwijderen van zones.

Gebruik een van de volgende twee manieren om een DNS-zone te verwijderen:

Geef de zone op met behulp van de zonenaam en de resourcegroepnaam

Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

Geef de zone op met behulp van een $zone-object

U kunt de te verwijderen zone opgeven met behulp van een $zone-object dat wordt geretourneerd door Get-AzDnsZone.

$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone

Het zone-object kan ook worden doorgesluisd in plaats van te worden doorgegeven als een parameter:

Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone

Net als bij Set-AzDnsZonekunt u de zone opgeven met behulp van een $zone -object, zodat Etag-controles ervoor zorgen dat gelijktijdige wijzigingen niet worden verwijderd. Gebruik de -Overwrite schakeloptie om deze controles te onderdrukken.

Bevestigingsprompts

De cmdlets New-AzDnsZone, Set-AzDnsZone en Remove-AzDnsZone ondersteunen bevestigingspromts.

Zowel in New-AzDnsZone als Set-AzDnsZone wordt om bevestiging gevraagd als de PowerShell-voorkeursvariabele $ConfirmPreference de waarde Medium of lager heeft. Omdat het verwijderen van een DNS-zone mogelijk ongewenste omstandigheden kan veroorzaken, vraagt de Remove-AzDnsZone cmdlet om bevestiging als de $ConfirmPreference PowerShell-variabele een andere waarde heeft dan None.

Omdat de standaardwaarde voor $ConfirmPreferenceHigh is, wordt standaard alleen in Remove-AzDnsZone om bevestiging gevraagd.

U kunt de huidige instelling van $ConfirmPreference overschrijven met behulp van de parameter -Confirm. Als u -Confirm of -Confirm:$True opgeeft, vraagt de cmdlet u om bevestiging voordat deze wordt uitgevoerd. Als u opgeeft -Confirm:$False , vraagt de cmdlet u niet om bevestiging.

Zie over voorkeursvariabelen voor meer informatie over -Confirm en $ConfirmPreference.

Volgende stappen

Meer informatie over het beheren van recordsets en records in uw DNS-zone.
Meer informatie over het delegeren van uw domein naar Azure DNS.
Raadpleeg de naslagdocumentatie voor Azure DNS PowerShell.