Importare ed esportare un file di zona DNS usando l'interfaccia della riga di comando di Azure

Questo articolo illustra come importare ed esportare un file di zona DNS in DNS di Azure usando l'interfaccia della riga di comando di Azure. È anche possibile importare ed esportare un file di zona usando il portale di Azure.

Introduzione alla migrazione di zone DNS

Un file di zona DNS è un file di testo che contiene i dettagli di tutti i record DNS (Domain Name System) nella zona. Segue un formato standard, ideale per il trasferimento dei record DNS tra sistemi DNS. L'uso di un file di zona rappresenta un metodo rapido e conveniente di importare zone DNS in DNS di Azure. È anche possibile esportare un file di zona da DNS di Azure da usare con altri sistemi DNS.

DNS di Azure supporta l'importazione e l'esportazione di file di zona tramite l'interfaccia della riga di comando di Azure e il portale di Azure.

L'interfaccia della riga di comando di Azure è uno strumento da riga di comando multipiattaforma usato per la gestione dei servizi di Azure. È disponibile per Windows, Mac e Linux dalla pagina dei download di Azure.

Recupero del file di zona DNS esistente

Prima di importare un file di zona DNS in DNS di Azure, è necessario ottenere una copia del file di zona. L'origine di questo file dipende da dove è ospitata la zona DNS.

  • Se la zona DNS è ospitata da un servizio partner, il servizio deve avere un modo per scaricare il file di zona DNS. I servizi partner includono registrar di dominio, provider di hosting DNS dedicato o un provider di servizi cloud alternativo.
  • Se la zona DNS è ospitata nel DNS di Windows, la cartella predefinita per i file di zona è %systemroot%\system32\dns. Il percorso completo di ogni file di zona viene visualizzato anche nella scheda Generale della console DNS.
  • Se la zona DNS è ospitata con BIND, il percorso del file di zona per ogni zona è specificato nel file di configurazione di BIND named.conf.

Importante

Se il file di zona importato contiene voci CNAME che puntano ai nomi in un'altra zona privata, la risoluzione DNS di Azure di CNAME ha esito negativo a meno che non venga importata anche l'altra zona o le voci CNAME vengano modificate.

Importare un file di zona DNS in DNS di Azure

L'importazione di un file di zona crea una nuova zona in DNS di Azure se non ne esiste già una. Se la zona esiste, i set di record nel file di zona vengono uniti a quelli esistenti.

Comportamento di unione

  • Per impostazione predefinita, i nuovi set di record vengono uniti a quelli esistenti. I record identici all'interno di un set di record unito non vengono duplicati.
  • Quando i set di record sono uniti, viene usato il valore di durata (TTL) dei set di record preesistenti.
  • I parametri di origine di autorità (SOA), tranne host, vengono sempre rilevati dal file di zona importato. Il set di record del server dei nomi al vertice di zona usa sempre la durata (TTL) ricavata dal file di zona importato.
  • Un record CNAME importato sostituirà il record CNAME esistente con lo stesso nome.
  • Quando si verifica un conflitto tra un record CNAME e un altro record con lo stesso nome di tipo diverso, viene utilizzato il record esistente.

Altre informazioni sull'importazione

Le note seguenti forniscono altri dettagli tecnici sul processo di importazione di zone.

  • La direttiva $TTL è facoltativa e supportata. Se non si specifica una direttiva $TTL, i record senza una TTL esplicita vengono importati e impostati su una TLL predefinita di 3600 secondi. Quando per due record nello stesso set di record sono specificati TTL diversi, viene usato il valore più basso.
  • La direttiva $ORIGIN è facoltativa e supportata. Se $ORIGIN non è impostata, il valore predefinito usato è il nome della zona specificato nella riga di comando, incluso il punto di terminazione (.).
  • Le direttive $INCLUDE e $GENERATE non sono supportate.
  • Sono supportati questi tipi di record: A, AAAA, CAA, CNAME, MX, NS, SOA, SRV e TXT.
  • Il record SOA viene creato automaticamente da DNS di Azure quando si crea una zona. Quando si importa un file di zona, tutti i parametri SOA vengono rilevati dal file di zona tranne il parametro host. Questo parametro usa il valore fornito da DNS di Azure perché deve fare riferimento al server dei nomi primario fornito da DNS di Azure.
  • Anche il set di record del server dei nomi al vertice della zona viene creato automaticamente da DNS di Azure quando si crea la zona. Viene importata solo la durata TTL di questo set di record. Questi record contengono i nomi dei server dei nomi forniti da DNS di Azure. I dati dei record non vengono sovrascritti dai valori contenuti nel file di zona importato.
  • Durante l'anteprima pubblica, DNS di Azure supporta solo i record TXT a stringa singola. I record TXT multistringa vengono concatenati e troncati a 255 caratteri.

Valori e formato dell'interfaccia della riga di comando

Il formato del comando dell'interfaccia della riga di comando di Azure per importare una zona DNS è:

az network dns zone import -g <resource group> -n <zone name> -f <zone file name>

Valori:

  • <resource group> è il nome del gruppo di risorse per la zona in DNS di Azure.
  • <zone name> è il nome della zona.
  • <zone file name> è il nome/percorso del file di zona da importare.

Se una zona con questo nome non esiste già nel gruppo di risorse, ne viene creata una per l'utente. Per una zona esistente, i set di record importati vengono uniti con quelli esistenti.

Importare un file di zona

Per importare un file di zona per la zona contoso.com:

  1. Creare un gruppo di risorse, se non è presente.

    az group create --resource-group myresourcegroup -l westeurope
    
  2. Per importare la zona contoso.com dal file contoso.com.txt in una nuova zona DNS nel gruppo di risorse myresourcegroup, eseguire il comando az network dns zone import.

    Questo comando carica il file di zona e lo analizza. Il comando esegue una serie di operazioni nel servizio DNS di Azure per creare la zona e tutti i set di record nella zona. Il comando visualizza l'avanzamento nella finestra della console insieme agli errori o agli avvisi. Poiché i set di record vengono creati in serie, l'importazione di un file di zona di grandi dimensioni può richiedere alcuni minuti.

    az network dns zone import -g myresourcegroup -n contoso.com -f contoso.com.txt
    

Verificare la zona

Per verificare la zona DNS dopo aver importato il file, è possibile usare uno dei metodi seguenti:

  • Per elencare i record, usare il comando seguente dell'interfaccia della riga di comando di Azure:

    az network dns record-set list -g myresourcegroup -z contoso.com
    
  • È anche possibile elencare i record usando il comando dell'interfaccia della riga di comando di Azure az network dns record-set ns list.

  • Per verificare la risoluzione dei nomi per i record, usare nslookup. Se la zona non è ancora stata delegata, è necessario specificare esplicitamente i server dei nomi DNS di Azure corretti. Il seguente esempio mostra come recuperare i nomi dei server dei nomi assegnati alla zona.

    az network dns record-set ns list -g myresourcegroup -z contoso.com  --output json 
    
    [
      {
       .......
       "name": "@",
        "nsRecords": [
          {
            "additionalProperties": {},
            "nsdname": "ns1-03.azure-dns.com."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns2-03.azure-dns.net."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns3-03.azure-dns.org."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns4-03.azure-dns.info."
          }
        ],
        "resourceGroup": "myresourcegroup",
        "ttl": 86400,
        "type": "Microsoft.Network/dnszones/NS"
      }
    ]
    

    Usare il prompt dei comandi di Windows per eseguire una query sul record "www" con il comando nslookup.

    nslookup www.contoso.com ns1-03.azure-dns.com
    
        Server: ns1-01.azure-dns.com
        Address:  40.90.4.1
    
        Name:www.contoso.com
        Addresses:  134.170.185.46
        134.170.188.221
    

Aggiornare la delega DNS

Dopo aver verificato che la zona è stata importata correttamente, allora è necessario aggiornare la delega DNS in modo che punti verso i server dei nomi DNS di Azure. Per altre informazioni, vedere Aggiornare la delega DNS.

Esportare un file di zona DNS da DNS di Azure

Per esportare una zona DNS, usare il comando seguente dell'interfaccia della riga di comando di Azure:

az network dns zone export -g <resource group> -n <zone name> -f <zone file name>

Valori:

  • <resource group> è il nome del gruppo di risorse per la zona in DNS di Azure.
  • <zone name> è il nome della zona.
  • <zone file name> è il nome/percorso del file di zona da esportare.

Come per l'importazione di una zona, è necessario prima di tutto accedere, scegliere la sottoscrizione e configurare l'interfaccia della riga di comando di Azure per l'uso della modalità Resource Manager.

Per esportare un file di zona:

Per esportare la zona contoso.com di DNS di Azure esistente nel gruppo di risorse myresourcegroup nel file contoso.com.txt nella cartella corrente, eseguire azure network dns zone export. Questo comando chiama il servizio DNS di Azure per enumerare i set di record nella zona ed esportare i risultati in un file di zona compatibile con BIND.

az network dns zone export -g myresourcegroup -n contoso.com -f contoso.com.txt

Passaggi successivi