Come gestire le zone DNS utilizzando PowerShellHow to manage DNS Zones using PowerShell

Questo articolo spiega come gestire una zona DNS mediante Azure PowerShell.This article shows you how to manage your DNS zones by using Azure PowerShell. È anche possibile gestire le zone DNS usando l'interfaccia della riga di comando di Azure multipiattaforma o il portale di Azure.You can also manage your DNS zones using the cross-platform Azure CLI or the Azure portal.

Una zona DNS viene usata per ospitare i record DNS per un particolare dominio.A DNS zone is used to host the DNS records for a particular domain. Per iniziare a ospitare il dominio in DNS di Azure, è necessario creare una zona DNS per il nome di dominio.To start hosting your domain in Azure DNS, you need to create a DNS zone for that domain name. Ogni record DNS per il dominio viene quindi creato all'interno di questa zona DNS.Each DNS record for your domain is then created inside this DNS zone.

Il dominio "contoso.com", ad esempio, può contenere diversi record DNS, come "mail.contoso.com" (per un server di posta) e "www.contoso.com" (per un sito Web).For example, the domain 'contoso.com' may contain several DNS records, such as 'mail.contoso.com' (for a mail server) and 'www.contoso.com' (for a web site).

Creazione di una zona DNS in DNS di Azure:When creating a DNS zone in Azure DNS:

  • Il nome della zona deve essere univoco all'interno del gruppo di risorse e la zona non deve esistere già,The name of the zone must be unique within the resource group, and the zone must not exist already. altrimenti l'operazione non riesce.Otherwise, the operation fails.
  • Lo stesso nome di zona può essere usato di nuovo in un gruppo di risorse diverso o in un'altra sottoscrizione di Azure.The same zone name can be reused in a different resource group or a different Azure subscription.
  • Se più zone condividono lo stesso nome, a ogni istanza vengono assegnati indirizzi di server dei nomi diversi.Where multiple zones share the same name, each instance is assigned different name server addresses. È possibile configurare solo un set di indirizzi con il registrar.Only one set of addresses can be configured with the domain name registrar.

Nota

Non è necessario essere proprietari di un dominio per creare una zona DNS con questo nome di dominio in DNS di Azure,You do not have to own a domain name to create a DNS zone with that domain name in Azure DNS. ma è necessario essere proprietari del dominio per configurare i server dei nomi DNS di Azure come server dei nomi corretti per il nome di dominio con il registrar.However, you do need to own the domain to configure the Azure DNS name servers as the correct name servers for the domain name with the domain name registrar.

Per altre informazioni, vedere Delegare un dominio a DNS di Azure.For more information, see Delegate a domain to Azure DNS.

Configurare Azure PowerShell per DNS di AzureSet up Azure PowerShell for Azure DNS

Prima di iniziareBefore you begin

Prima di iniziare la configurazione, verificare di essere in possesso degli elementi seguenti.Verify that you have the following items before beginning your configuration.

Accedere con l'account AzureSign in to your Azure account

Aprire la console di PowerShell e connettersi al proprio account.Open your PowerShell console and connect to your account. Per altre informazioni, vedere Uso di PowerShell con Resource Manager.For more information, see Using PowerShell with Resource Manager.

Login-AzureRmAccount

Selezionare la sottoscrizioneSelect the subscription

Controllare le sottoscrizioni per l'account.Check the subscriptions for the account.

Get-AzureRmSubscription

Scegliere le sottoscrizioni ad Azure da usare.Choose which of your Azure subscriptions to use.

Select-AzureRmSubscription -SubscriptionName "your_subscription_name"

Creare un gruppo di risorseCreate a resource group

Azure Resource Manager richiede che tutti i gruppi di risorse specifichino una località.Azure Resource Manager requires that all resource groups specify a location. che viene usato come percorso predefinito per le risorse presenti in tale gruppo di risorse.This location is used as the default location for resources in that resource group. Tuttavia, dato che tutte le risorse DNS sono globali, non regionali, la scelta del percorso del gruppo di risorse non ha alcun impatto sul servizio DNS di Azure.However, because all DNS resources are global, not regional, the choice of resource group location has no impact on Azure DNS.

Se si usa un gruppo di risorse esistente, è possibile ignorare questo passaggio.You can skip this step if you are using an existing resource group.

New-AzureRmResourceGroup -Name MyAzureResourceGroup -location "West US"

Registrare il provider di risorseRegister resource provider

Il servizio DNS di Azure viene gestito dal provider di risorse Microsoft.Network.The Azure DNS service is managed by the Microsoft.Network resource provider. Per poter usare il servizio DNS di Azure, la sottoscrizione di Azure deve essere registrata per l'uso di questo provider di risorse.Your Azure subscription must be registered to use this resource provider before you can use Azure DNS. Questa operazione viene eseguita una sola volta per ogni sottoscrizione.This is a one-time operation for each subscription.

Register-AzureRmResourceProvider -ProviderNamespace Microsoft.Network

Creare una zona DNSCreate a DNS zone

Viene creata una zona DNS con il cmdlet New-AzureRmDnsZone .A DNS zone is created by using the New-AzureRmDnsZone cmdlet.

L'esempio seguente crea una zona DNS denominata contoso.com nel gruppo di risorse denominato MyResourceGroup:The following example creates a DNS zone called contoso.com in the resource group called MyResourceGroup:

New-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup

L'esempio seguente illustra come creare una zona DNS con due tag di Azure Resource Manager, project = demo e env = test:The following example shows how to create a DNS zone with two Azure Resource Manager tags, project = demo and env = test:

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

DNS di Azure supporta ora anche le zone DNS private (attualmente una funzionalità di anteprima).Azure DNS now also supports private DNS zones (currently a preview feature). Per un esempio di come creare una zona DNS privata, vedere Introduzione alle zone private di Azure DNS con PowerShell.For an example of how to create a private DNS zone, see Get started with Azure DNS private zones using PowerShell.

Ottenere una zona DNSGet a DNS zone

Per recuperare una zona DNS, usare il cmdlet Get-AzureRmDnsZone .To retrieve a DNS zone, use the Get-AzureRmDnsZone cmdlet. Questa operazione restituisce un oggetto di zona DNS corrispondente a una zona esistente nel servizio DNS di Azure.This operation returns a DNS zone object corresponding to an existing zone in Azure DNS. L'oggetto contiene i dati sulla zona (ad esempio il numero di set di record), ma non contiene i set di record stessi (vedere Get-AzureRmDnsRecordSet).The object contains data about the zone (such as the number of record sets), but does not contain the record sets themselves (see Get-AzureRmDnsRecordSet).

Get-AzureRmDnsZone -Name contoso.com –ResourceGroupName MyAzureResourceGroup

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

Elencare le zone DNSList DNS zones

Omettendo il nome della zona da Get-AzureRmDnsZone, è possibile enumerare tutte le zone in un gruppo di risorse.By omitting the zone name from Get-AzureRmDnsZone, you can enumerate all zones in a resource group. Questa operazione restituisce una matrice di oggetti di zona.This operation returns an array of zone objects.

$zoneList = Get-AzureRmDnsZone -ResourceGroupName MyAzureResourceGroup

Omettendo il nome della zona e il nome del gruppo di risorse da Get-AzureRmDnsZone, è possibile enumerare tutte le zone nella sottoscrizione di Azure.By omitting both the zone name and the resource group name from Get-AzureRmDnsZone, you can enumerate all zones in the Azure subscription.

$zoneList = Get-AzureRmDnsZone

Aggiornare una zona DNSUpdate a DNS zone

È possibile apportare modifiche a una risorsa di zona DNS usando Set-AzureRmDnsZone.Changes to a DNS zone resource can be made by using Set-AzureRmDnsZone. Il cmdlet non consente di aggiornare alcuni dei set di record DNS compresi nella zona (vedere Come gestire i record DNS).This cmdlet does not update any of the DNS record sets within the zone (see How to Manage DNS records). Questa operazione permette solo di aggiornare le proprietà della risorsa di zona stessa.It's only used to update properties of the zone resource itself. Le proprietà della zona scrivibile sono attualmente limitate ai "tag" di Azure Resource Manager relativi alla risorsa di zona.The writable zone properties are currently limited to the Azure Resource Manager ‘tags’ for the zone resource.

Usare una delle due opzioni seguenti per aggiornare una zona DNS:Use one of the following two ways to update a DNS zone:

Specificare la zona usando il nome della zona e del gruppo di risorse.Specify the zone using the zone name and resource group

Questo approccio sostituisce i tag di zona esistenti con i valori specificati.This approach replaces the existing zone tags with the values specified.

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

Specificare la zona usando un oggetto $zoneSpecify the zone using a $zone object

Questo approccio recupera l'oggetto zona esistente, modifica i tag e quindi esegue il commit delle modifiche.This approach retrieves the existing zone object, modifies the tags, and then commits the changes. Ciò consente di conservare i tag esistenti.In this way, existing tags can be preserved.

# Get the zone object
$zone = Get-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup

# Remove an existing tag
$zone.Tags.Remove("project")

# Add a new tag
$zone.Tags.Add("status","approved")

# Commit changes
Set-AzureRmDnsZone -Zone $zone

Quando si usa Set-AzureRmDnsZone con un oggetto $zone, i controlli ETag vengono usati per verificare che le modifiche simultanee non vengano sovrascritte.When using Set-AzureRmDnsZone with a $zone object, Etag checks are used to ensure concurrent changes are not overwritten. È possibile usare l'opzione facoltativa -Overwrite per disattivare tali controlli.You can use the optional -Overwrite switch to suppress these checks.

Eliminare una zona DNSDelete a DNS Zone

Le zone DNS possono essere eliminate usando il cmdlet Remove-AzureRmDnsZone.DNS zones can be deleted using the Remove-AzureRmDnsZone cmdlet.

Nota

L'eliminazione di una zona DNS comporta anche l'eliminazione di tutti i record DNS all'interno della zona. Questa operazione non può essere annullata. Se la zona DNS è in uso, i servizi che la usano rileveranno un errore quando la zona viene eliminata.

Per evitare l'eliminazione accidentale di una zona, vedere How to protect DNS zones and records (Come proteggere le zone e i record DNS).

Usare una delle due opzioni seguenti per eliminare la zona DNS:Use one of the following two ways to delete a DNS zone:

Specificare la zona usando il nome della zona e del gruppo di risorse:Specify the zone using the zone name and resource group name

Remove-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup

Specificare la zona usando un oggetto $zoneSpecify the zone using a $zone object

È possibile specificare la zona da eliminare usando un oggetto $zone restituito da Get-AzureRmDnsZone.You can specify the zone to be deleted using a $zone object returned by Get-AzureRmDnsZone.

$zone = Get-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup
Remove-AzureRmDnsZone -Zone $zone

L'oggetto di zona può essere anche reindirizzato invece che passato come parametro:The zone object can also be piped instead of being passed as a parameter:

Get-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup | Remove-AzureRmDnsZone

Come con Set-AzureRmDnsZone, specificare la zona usando un oggetto $zone consente di abilitare i controlli ETag per garantire che le modifiche simultanee non vengano eliminate.As with Set-AzureRmDnsZone, specifying the zone using a $zone object enables Etag checks to ensure concurrent changes are not deleted. Usare l'opzione -Overwrite per disattivare tali controlli.Use the -Overwrite switch to suppress these checks.

Richieste di confermaConfirmation prompts

I cmdlet New-AzureRmDnsZone, Set-AzureRmDnsZone e Remove-AzureRmDnsZone supportano le richieste di conferma.The New-AzureRmDnsZone, Set-AzureRmDnsZone, and Remove-AzureRmDnsZone cmdlets all support confirmation prompts.

New-AzureRmDnsZone e Set-AzureRmDnsZone richiedono la conferma se la variabile di preferenza $ConfirmPreference di PowerShell ha un valore uguale o inferiore a Medium.Both New-AzureRmDnsZone and Set-AzureRmDnsZone prompt for confirmation if the $ConfirmPreference PowerShell preference variable has a value of Medium or lower. A causa dell'impatto potenzialmente significativo dell'eliminazione di una zona DNS, il cmdlet Remove-AzureRmDnsZone richiede la conferma se la variabile $ConfirmPreference di PowerShell ha un valore diverso da None.Due to the potentially high impact of deleting a DNS zone, the Remove-AzureRmDnsZone cmdlet prompts for confirmation if the $ConfirmPreference PowerShell variable has any value other than None.

Poiché il valore predefinito per $ConfirmPreference è High, solo Remove-AzureRmDnsZone richiede la conferma per impostazione predefinita.Since the default value for $ConfirmPreference is High, only Remove-AzureRmDnsZone prompts for confirmation by default.

Per eseguire l'override dell'impostazione $ConfirmPreference corrente è possibile usare il parametro -Confirm.You can override the current $ConfirmPreference setting using the -Confirm parameter. Se si specifica -Confirm o -Confirm:$True, il cmdlet chiede conferma prima dell'esecuzione.If you specify -Confirm or -Confirm:$True , the cmdlet prompts you for confirmation before it runs. Se si specifica -Confirm:$False, il cmdlet non chiede alcuna conferma.If you specify -Confirm:$False , the cmdlet does not prompt you for confirmation.

Per altre informazioni su -Confirm e $ConfirmPreference, vedere About Preference Variables (Informazioni sulle variabili di preferenza).For more information about -Confirm and $ConfirmPreference, see About Preference Variables.

Passaggi successiviNext steps

Informazioni su come gestire record e set di record nella zona DNS.Learn how to manage record sets and records in your DNS zone.
Informazioni su come delegare il dominio al servizio DNS di Azure.Learn how to delegate your domain to Azure DNS.
Vedere la documentazione di riferimento di PowerShell nel servizio DNS di Azure.Review the Azure DNS PowerShell reference documentation.