Gestire record e recordset DNS in DNS di Azure con l'interfaccia della riga di comando di Azure

Questo articolo descrive come gestire i record DNS per la zona DNS usando l'interfaccia della riga di comando di Azure multipiattaforma. L’interfaccia della riga di comando di Azure è disponibile per Windows, Mac e Linux. È anche possibile gestire i record DNS tramite Azure PowerShell o il portale di Azure.

Gli esempi contenuti in questo articolo presuppongono che l'utente abbia installato l'interfaccia della riga di comando di Azure, eseguito l'accesso e creato una zona DNS.

Introduzione

Prima di creare record DNS nel servizio DNS di Azure, è necessario comprendere il modo in cui quest'ultimo organizza i record DNS nei set di record DNS.

Nomi dei record

Nel servizio DNS di Azure i record vengono specificati usando nomi relativi. Un nome di dominio completo (FQDN) include il nome della zona, mentre un nome relativo no. Ad esempio, il nome del record relativo www nella zona contoso.com consente di ottenere il nome completo del record www.contoso.com.

Un record vertice è un record DNS alla radice (o vertice) di una zona DNS. Ad esempio, nella zona DNS contoso.com anche un record del dominio radice ha il nome completo contoso.com, chiamato a volte dominio di tipo naked. Per convenzione, per rappresentare record vertice viene usato il nome relativo \'\@\'.

Tipi di record

Ogni record DNS ha un nome e un tipo. I record sono organizzati in tipi diversi in base ai dati che contengono. Il tipo più comune è il record "A", che esegue il mapping di un nome a un indirizzo IPv4. Un altro tipo comune è il record "MX", che esegue il mapping di un nome a un server di posta.

DNS di Azure supporta tutti i tipi di record DNS comuni: A, AAAA, CAA, CNAME, MX, NS, PTR, SOA, SRV e TXT. Si noti che i record SPF vengono rappresentati usando record TXT.

Set di record

In alcuni casi è necessario creare più record DNS con un determinato nome e tipo. Si supponga, ad esempio, che il sito Web "www.contoso.com" sia ospitato in due diversi indirizzi IP. Questo sito Web richiede due diversi record A, uno per ogni indirizzo IP. Ecco un esempio di un set di record:

www.contoso.com.        3600    IN    A    134.170.185.46
www.contoso.com.        3600    IN    A    134.170.188.221

DNS di Azure gestisce tutti i record DNS usando set di record. Un set di record, chiamato anche set di record di risorse è la raccolta di record DNS che hanno lo stesso nome e sono dello stesso tipo in una zona. La maggior parte dei set di record contiene un singolo record. Non sono tuttavia rari esempi come quello precedente, in cui un set di record contiene più di un record.

Si supponga, ad esempio, di aver già creato un record "www" nella zona "contoso.com", che punta all'indirizzo IP "134.170.185.46" (primo record sopra). Per creare il secondo record, è necessario aggiungere il record al set di record esistente invece di creare un altro set di record.

I tipi di record SOA e CNAME sono eccezioni. Gli standard DNS non permettono più record con lo stesso nome per questi tipi, quindi questi set di record possono contenere un solo record.

Per altre informazioni sui record DNS nel servizio DNS di Azure, vedere Zone e record DNS.

Creare un record DNS

Per creare un record DNS, usare il comando az network dns record-set <record-type> add-record, dove <record-type> è il tipo di record, ovvero A, SRV, TXT e così via. Per altre informazioni, vedere az network dns record-set --help.

Quando si crea un record, è necessario specificare le informazioni seguenti:

  • Nome gruppo di risorse
  • Nome zona
  • Nome del set di record
  • Tipo di record

Il nome assegnato al set di record deve essere un nome relativo, ovvero deve escludere il nome della zona. Se il set di record non esiste già, questo comando lo creerà automaticamente. Se il set di record esiste già, lo stesso comando aggiungerà il record specificato.

Se viene creato un nuovo set di record, per la durata (TTL) viene usato un valore predefinito di 3600. Per istruzioni su come usare TTL diversi, vedere Creare un set di record DNS.

L'esempio seguente mostra come creare un record "A" denominato www nella zona contoso.com nel gruppo di risorse MyResourceGroup. L'indirizzo IP del record "A" è 1.2.3.4.

az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 1.2.3.4

Per creare un set di record nell'apice della zona, in questo caso "contoso.com", usare il nome record \"\@\", incluse le virgolette:

az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --ipv4-address 1.2.3.4

Creare un set di record DNS

Negli esempi precedenti, il record DNS è stato aggiunto a un set di record esistente oppure il set di record è stato creato in modo implicito. È anche possibile creare il set di record in modo esplicito prima di aggiungere i record. Il servizio DNS di Azure supporta set di record vuoti, che possono fungere da segnaposto per riservare un nome DNS prima della creazione di record DNS. I set di record vuoti sono visibili nel piano di controllo del servizio DNS di Azure, ma vengono visualizzati nei server dei nomi del servizio DNS di Azure.

I set di record vengono creati usando il comando az network dns record-set <record-type> create. Per altre informazioni, vedere az network dns record-set <record-type> create --help.

La creazione esplicita del set di record consente di specificare proprietà per il set come Durata (TTL) e metadati. È possibile usare i metadati del set di record per associare dati specifici dell'applicazione a ogni set di record, sotto forma di coppie chiave-valore.

L'esempio seguente crea un set di record vuoto di tipo "A" con un TTL di 60 secondi, usando il parametro --ttl (forma breve -l):

az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --ttl 60

L'esempio seguente crea un set di record con due voci di metadati, "dept=finance" e "environment=production", usando il parametro --metadata:

az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --metadata "dept=finance" "environment=production"

Dopo aver creato un set di record vuoto, è possibile aggiungervi i record usando azure network dns record-set <record-type> add-record come descritto in Creare un record DNS.

Creare record di altri tipi

Dopo aver visto in dettaglio come creare record di tipo A, gli esempi seguenti illustrano come creare record di altri tipi supportati dal servizio DNS di Azure.

I parametri usati per specificare i dati del record variano a seconda del tipo di record. Per un record di tipo "A", ad esempio, specificare l'indirizzo IPv4 con il parametro --ipv4-address <IPv4 address>. I parametri per ogni tipo di record possono essere elencati usando az network dns record-set <record-type> add-record --help.

In ogni caso viene illustrato come creare un record singolo. Il record viene aggiunto al set di record esistente oppure viene creato un set di record in modo implicito. Per ulteriori informazioni sulla creazione di set di record e sulla definizione esplicita dei parametri di un set di record, vedere Creare un set di record DNS.

Non esiste un esempio per creare un set di record SOA, poiché i record SOA vengono creati ed eliminati con ogni zona DNS. Il record SOA non può essere creato o eliminato separatamente. Tuttavia, è possibile modificare i record SOA, come illustrato in uno degli esempi successivi.

Creare un record AAAA

az network dns record-set aaaa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-aaaa --ipv6-address 2607:f8b0:4009:1803::1005

Creare un record CAA

az network dns record-set caa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-caa --flags 0 --tag "issue" --value "ca1.contoso.com"

Creare un record CNAME

Nota

Gli standard DNS non accettano record CNAME nel dominio radice di una zona (--Name "@") né set di record contenenti più di un record.

Per altre informazioni, vedereRecord CNAME.

az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.contoso.com

Creare un record MX

In questo esempio viene usato il nome del set di record "@" per creare il record MX al vertice della zona, in questo caso "contoso.com".

az network dns record-set mx add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --exchange mail.contoso.com --preference 5

Creare un record NS

az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-ns --nsdname ns1.contoso.com

Creare un record PTR

In questo caso "my-arpa-zone.com" è la zona ARPA che rappresenta l'intervallo IP dell'utente. Ogni record PTR impostato in questa zona corrisponde a un indirizzo IP che rientra nell'intervallo IP. Il nome del record "10" è l'ultimo ottetto dell'indirizzo IP all'interno di questo intervallo di indirizzi rappresentato dal record.

az network dns record-set ptr add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name my-arpa.zone.com --ptrdname myservice.contoso.com

Creare un record SRV

Quando si crea un set di record SRV, specificare _service e _protocol nel nome del set di record. Non è necessario includere "@" nel nome del set di record durante la creazione di un set di record SRV nel dominio radice della zona.

az network dns record-set srv add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name _sip._tls --priority 10 --weight 5 --port 8080 --target sip.contoso.com

Creare un record TXT

L'esempio seguente mostra come creare un record TXT. Per altre informazioni sulla lunghezza massima delle stringhe supportata nei record TXT, vedere Record TXT.

az network dns record-set txt add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-txt --value "This is a TXT record"

Ottenere un set di record

Per recuperare un set di record esistente, usare az network dns record-set <record-type> show. Per altre informazioni, vedere az network dns record-set <record-type> show --help.

Quando si crea un record o un set di record, il nome del set di record specificato deve essere un nome relativo. Questo nome non include il nome della zona. È anche necessario specificare il tipo di record, la zona contenente il set di record e il gruppo di risorse contenente la zona.

L'esempio seguente recupera il record "A" denominato www nella zona contoso.com nel gruppo di risorse MyResourceGroup:

az network dns record-set a show --resource-group myresourcegroup --zone-name contoso.com --name www

Elencare i set di record

È possibile elencare tutti i record in una zona DNS usando il comando az network dns record-set list . Per altre informazioni, vedere az network dns record-set list --help.

Questo esempio restituisce tutti i set di record nella zona contoso.com nel gruppo di risorse MyResourceGroup:

az network dns record-set list --resource-group myresourcegroup --zone-name contoso.com

Questo esempio restituisce tutti i set di record corrispondenti al tipo di record specificato, in questo caso, i record "A":

az network dns record-set a list --resource-group myresourcegroup --zone-name contoso.com 

Aggiungere un record a un set di record esistente

È possibile usare az network dns record-set <record-type> add-record sia per creare un record in un nuovo set di record che per aggiungere un record a un set di record esistente.

Per ulteriori informazioni, vedere Creare un record DNS e Creare record di altri tipi sopra.

Rimuovere un record da un set di record esistente.

Per rimuovere un record DNS da un set di record esistente, usare az network dns record-set <record-type> remove-record. Per altre informazioni, vedere az network dns record-set <record-type> remove-record -h.

Questo comando elimina un record DNS da un set di record. Se viene eliminato l'ultimo record in un set di record, viene eliminato anche il set stesso. Per mantenere il record vuoto, usare l'opzione --keep-empty-record-set.

Quando si usa il comando az network dns record-set <record-type> add-record, è necessario specificare il record da eliminare e la zona da cui deve essere eliminato. I parametri vengono descritti in Creare un record DNS e Creare record di altri tipi sopra.

L'esempio seguente elimina il record "A" con valore "1.2.3.4" dal set di record denominato www nella zona contoso.com nel gruppo di risorse MyResourceGroup.

az network dns record-set a remove-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "www" --ipv4-address 1.2.3.4

Modificare un set di record esistente

Ogni set di record contiene un time-to-live (TTL), metadati e record DNS. Nelle sezioni seguenti viene illustrato come modificare ognuna di queste proprietà.

Per modificare un record A, AAAA, CAA, MX, NS, PTR, SRV o TXT

Per modificare un record esistente di tipo A, AAAA, CAA, MX, NS, PTR, SRV o TXT, è necessario prima aggiungere un nuovo record e quindi eliminare il record esistente. Per istruzioni dettagliate su come eliminare e aggiungere record, vedere le sezioni precedenti di questo articolo.

Nell'esempio seguente viene illustrato come modificare un record "A", dall'indirizzo IP 1.2.3.4 all'indirizzo IP 5.6.7.8:

az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 5.6.7.8
az network dns record-set a remove-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 1.2.3.4

Non è possibile aggiungere, rimuovere o modificare record nel set di record NS creato automaticamente nel dominio radice della zona, vale a dire --Name "@", incluse le virgolette. Per questo set di record, le uniche modifiche consentite sono quelle relative alla durata (TTL) e ai metadati del set di record.

Per modificare un record CNAME

A differenza della maggior parte degli altri tipi di record, un set di record CNAME può contenere solo un singolo record. Di conseguenza, non è possibile sostituire il valore corrente aggiungendo un nuovo record e rimuovendo il record esistente, come con gli altri tipi di record.

Per modificare un record CNAME, usare invece az network dns record-set cname set-record. Per altre informazioni, vedere az network dns record-set cname set-record --help

Nell'esempio viene modificato il set di record CNAME www nella zona contoso.com nel gruppo di risorse MyResourceGroup, in modo che punti a "www.fabrikam.net" invece che al valore esistente:

az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.fabrikam.net

Per modificare un record SOA

A differenza della maggior parte degli altri tipi di record, un set di record SOA può contenere solo un singolo record. Di conseguenza, non è possibile sostituire il valore corrente aggiungendo un nuovo record e rimuovendo il record esistente, come con gli altri tipi di record.

Per modificare il record SOA, usare invece az network dns record-set soa update. Per altre informazioni, vedere az network dns record-set soa update --help.

Nell'esempio seguente viene illustrato come impostare la proprietà 'email' del record SOA della zona contoso.com:

az network dns record-set soa update --resource-group myresourcegroup --zone-name contoso.com --email admin.contoso.com

Per modificare i record NS al vertice della zona

Il set di record NS al vertice della zona viene creato automaticamente con ogni zona DNS. Contiene i nomi dei server dei nomi DNS di Azure assegnati alla zona.

È possibile aggiungere altri server dei nomi a questo set di record NS per supportare domini con co-hosting con più provider DNS. È anche possibile modificare il valore della durata TTL e i metadati per questo set di record. Non è tuttavia possibile rimuovere o modificare i server dei nomi DNS di Azure già popolati.

Questa restrizione si applica solo al set di record NS nel dominio radice della zona. Gli altri set di record NS nella zona (usati per delegare le zone figlio) possono essere modificati senza vincoli.

L'esempio seguente mostra come aggiungere un altro server dei nomi al set di record NS nel dominio radice della zona:

az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --nsdname ns1.myotherdnsprovider.com 

Per modificare il valore TTL di un set di record esistente

Per modificare il valore TTL di un set di record esistente, usare azure network dns record-set <record-type> update. Per altre informazioni, vedere azure network dns record-set <record-type> update --help.

Nell'esempio seguente viene illustrato come modificare il valore TTL di un set di record, impostandolo in questo caso su 60 secondi:

az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set ttl=60

Per modificare i metadati di un set di record esistente

È possibile usare i metadati del set di record per associare dati specifici dell'applicazione a ogni set di record, sotto forma di coppie chiave-valore. Per modificare i metadati di un set di record esistente, usare az network dns record-set <record-type> update. Per altre informazioni, vedere az network dns record-set <record-type> update --help.

L'esempio seguente mostra come modificare un set di record con due voci di metadati, "dept=finance" e "environment=production". Gli eventuali metadati esistenti vengono sostituiti dai valori assegnati.

az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set metadata.dept=finance metadata.environment=production

Eliminare un set di record

È possibile eliminare i set di record usando il commando az network dns record-set <record-type> delete . Per altre informazioni, vedere azure network dns record-set <record-type> delete --help. Eliminando un set di record vengono eliminati anche tutti i record in esso contenuti.

Nota

Non è possibile eliminare i set di record SOA e NS dal dominio radice della zona (--name "@"). Tali set di record vengono creati automaticamente durante la creazione della zona e vengono eliminati automaticamente quando la zona viene eliminata.

L'esempio seguente elimina il set di record "A" denominato www dalla zona contoso.com nel gruppo di risorse MyResourceGroup:

az network dns record-set a delete --resource-group myresourcegroup --zone-name contoso.com --name www

Verrà richiesto di confermare l'operazione di eliminazione. Per eliminare la richiesta, usare lo switch --yes.

Passaggi successivi

Altre informazioni su zone e record nel servizio DNS di Azure.
Informazioni su come proteggere zone e record quando si usa il servizio DNS di Azure.