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 non lo fa. 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.
Sono supportati tipi di record aggiuntivi se la zona è firmata con DNS Security Extensions (DNSSEC), ad esempio Il firmatario di delega (DS) e i record di risorse TLSA (Transport Layer Security Authentication).
I tipi di record di risorse DNSSEC, ad esempio DNSKEY, RRSIG e NSEC3, vengono aggiunti automaticamente quando una zona viene firmata con DNSSEC. Questi tipi di record di risorse DNSSEC non possono essere creati o modificati dopo la firma della zona.
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 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. Tuttavia, gli esempi come quello precedente, in cui un set di record contiene più record, non sono insoliti.
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" è 203.0.113.11.
az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 203.0.113.11
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 203.0.113.11
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 FD00::1
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.fabrikam.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 "203.0.113.11" 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 203.0.113.11
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 203.0.113.11 all'indirizzo IP 203.0.113.22:
az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 203.0.113.22
az network dns record-set a remove-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 203.0.113.11
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.fabrikam.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.