Importare ed esportare un file di zona DNS usando l'interfaccia della riga di comando di Azure 1.0Import and export a DNS zone file using the Azure CLI 1.0

Questo articolo spiega come importare ed esportare file di zona DNS per Azure DNS usando l'interfaccia della riga di comando di Azure 1.0.This article walks you through how to import and export DNS zone files for Azure DNS using the Azure CLI 1.0.

Introduzione alla migrazione di zone DNSIntroduction to DNS zone migration

Un file di zona DNS è un file di testo che contiene i dettagli di tutti i record DNS (Domain Name System) nella zona.A DNS zone file is a text file that contains details of every Domain Name System (DNS) record in the zone. Segue un formato standard, ideale per il trasferimento dei record DNS tra sistemi DNS.It follows a standard format, making it suitable for transferring DNS records between DNS systems. L'uso di un file di zona è un modo rapido, affidabile e pratico per trasferire una zona DNS all'interno o all'esterno di DNS di Azure.Using a zone file is a quick, reliable, and convenient way to transfer a DNS zone into or out of Azure DNS.

DNS di Azure supporta l'importazione e l'esportazione di file di zona tramite l'interfaccia della riga di comando di Azure.Azure DNS supports importing and exporting zone files by using the Azure command-line interface (CLI). L'importazione di file di zona non è attualmente supportata tramite Azure PowerShell o il portale di Azure.Zone file import is not currently supported via Azure PowerShell or the Azure portal.

L'interfaccia della riga di comando di Azure 1.0 è uno strumento a riga di comando multipiattaforma usato per la gestione di servizi di Azure.The Azure CLI 1.0 is a cross-platform command-line tool used for managing Azure services. È disponibile per le piattaforme Windows, Mac e Linux nella pagina di download di Azure.It is available for the Windows, Mac, and Linux platforms from the Azure downloads page. Il supporto multipiattaforma è importante per importare ed esportare i file di zona, perché il software server più conosciuto, BIND, viene generalmente eseguito in Linux.Cross-platform support is important for importing and exporting zone files, because the most common name server software, BIND, typically runs on Linux.

Nota

Esistono attualmente due versioni dell'interfaccia della riga di comando di Azure.There are currently two versions of the Azure CLI. CLI1.0 è basata su Node.js e ha comandi che iniziano con "azure".CLI1.0 is based on Node.js, and has commands beginning with "azure". CLI2.0 è basata su Python e ha comandi che iniziano con "az".CLI2.0 is based on Python and has commands beginning with "az". Nonostante l'importazione dei file di zona sia supportata in entrambe le versioni, è consigliabile usare i comandi CLI1.0, come descritto in questa pagina.While zone file import is supported in both versions, we recommend using the CLI1.0 commands, as described in this page.

Recupero del file di zona DNS esistenteObtain your existing DNS zone file

Prima di importare un file di zona DNS in DNS di Azure, è necessario ottenere una copia del file di zona.Before you import a DNS zone file into Azure DNS, you need to obtain a copy of the zone file. L'origine di questo file dipende da dove è attualmente ospitata la zona DNS.The source of this file depends on where the DNS zone is currently hosted.

  • Se la zona DNS è ospitata da un servizio partner, ad esempio un registrar, un provider di servizi di hosting DNS dedicato o un provider di servizi cloud alternativo, tale servizio deve fornire la possibilità di scaricare il file di zona DNS.If your DNS zone is hosted by a partner service (such as a domain registrar, dedicated DNS hosting provider, or alternative cloud provider), that service should provide the ability to download the DNS zone file.
  • Se la zona DNS è ospitata nel DNS di Windows, la cartella predefinita per i file di zona è %systemroot%\system32\dns.If your DNS zone is hosted on Windows DNS, the default folder for the zone files is %systemroot%\system32\dns. Il percorso completo di ogni file di zona viene visualizzato anche nella scheda Generale della console DNS.The full path to each zone file also shows on the General tab of the DNS console.
  • 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.If your DNS zone is hosted by using BIND, the location of the zone file for each zone is specified in the BIND configuration file named.conf.

Nota

I file di zona scaricati da GoDaddy hanno un formato leggermente non standard.Zone files downloaded from GoDaddy have a slightly nonstandard format. È necessario correggerlo prima di importare questi file di zona in DNS di Azure.You need to correct this before you import these zone files into Azure DNS.

I nomi DNS in RDATA di ogni record DNS sono specificati come nomi completi, ma non hanno un "." alla fine. Ciò significa che vengono interpretati da altri sistemi DNS come nomi relativi.DNS names in the RDATA of each DNS record are specified as fully qualified names, but they don't have a terminating "." This means they are interpreted by other DNS systems as relative names. È necessario modificare il file di zona aggiungendo il '.' di terminazione ai relativi nomi prima di importarli in DNS di Azure.You need to edit the zone file to append the terminating "." to their names before you import them into Azure DNS.

Ad esempio, il record CNAME "www 3600 IN CNAME contoso.com" deve essere modificato in "www 3600 IN CNAME contoso.com."For example, the CNAME record "www 3600 IN CNAME contoso.com" should be changed to "www 3600 IN CNAME contoso.com." con un "." alla fine.(with a terminating ".").

Importare un file di zona DNS in DNS di AzureImport a DNS zone file into Azure DNS

L'importazione di un file di zona crea una nuova zona in DNS di Azure se non ne esiste già una.Importing a zone file creates a new zone in Azure DNS if one does not already exist. Se la zona esiste già, i set di record nel file di zona devono essere uniti a quelli esistenti.If the zone already exists, the record sets in the zone file must be merged with the existing record sets.

UnioneMerge behavior

  • Per impostazione predefinita, i set di record nuovi ed esistenti vengono uniti.By default, existing and new record sets are merged. I record identici all'interno di un set di record unito vengono deduplicati.Identical records within a merged record set are de-duplicated.
  • In alternativa, se si specifica l'opzione --force, il processo di importazione sostituisce i set di record esistenti con quelli nuovi.Alternatively, by specifying the --force option, the import process replaces existing record sets with new record sets. I set di record esistenti che non hanno un set di record corrispondente nel file di zona importato non devono essere rimossi.Existing record sets that do not have a corresponding record set in the imported zone file are not be removed.
  • Quando i set di record sono uniti, viene usato il valore di durata (TTL) dei set di record preesistenti.When record sets are merged, the time to live (TTL) of preexisting record sets is used. Se si usa --force, viene applicato il valore TTL del nuovo set di record.When --force is used, the TTL of the new record set is used.
  • I parametri di origine di autorità (SOA), tranne host, vengono sempre rilevati dal file di zona importato, indipendentemente dall'uso di --force.Start of Authority (SOA) parameters (except host) are always taken from the imported zone file, regardless of whether --force is used. Analogamente, per il set di record del server di nomi al vertice della zona viene sempre applicato il valore TTL dal file di zona importato.Similarly, for the name server record set at the zone apex, the TTL is always taken from the imported zone file.
  • Un record CNAME importato non sostituisce un record CNAME esistente con lo stesso nome, a meno che non sia stato specificato il parametro --force.An imported CNAME record does not replace an existing CNAME record with the same name unless the --force parameter is specified.
  • Quando si verifica un conflitto tra un record CNAME e a un altro record con lo stesso nome, ma di tipo diverso, indipendentemente dal fatto che sia nuovo o esistente viene mantenuto il record esistente.When a conflict arises between a CNAME record and another record of the same name but different type (regardless of which is existing or new), the existing record is retained. È indipendente dall'uso di --force.This is independent of the use of --force.

Altre informazioni sull'importazioneAdditional information about importing

Le note seguenti forniscono altri dettagli tecnici sul processo di importazione di zone.The following notes provide additional technical details about the zone import process.

  • La direttiva $TTL è facoltativa e supportata.The $TTL directive is optional, and it is supported. Se non si specifica una direttiva $TTL, i record senza una TTL esplicita vengono importati e impostati su una TLL predefinita di 3600 secondi.When no $TTL directive is given, records without an explicit TTL are imported set to a default TTL of 3600 seconds. Quando per due record nello stesso set di record sono specificati TTL diversi, viene usato il valore più basso.When two records in the same record set specify different TTLs, the lower value is used.
  • La direttiva $ORIGIN è facoltativa e supportata.The $ORIGIN directive is optional, and it is supported. Se $ORIGIN non è impostata, il valore predefinito usato è il nome della zona specificato nella riga di comando, con "." di terminazione.When no $ORIGIN is set, the default value used is the zone name as specified on the command line (plus the terminating ".").
  • Le direttive $INCLUDE e $GENERATE non sono supportate.The $INCLUDE and $GENERATE directives are not supported.
  • Sono supportati questi tipi di record: A, AAAA, CNAME, MX, NS, SOA, SRV e TXT.These record types are supported: A, AAAA, CNAME, MX, NS, SOA, SRV, and TXT.
  • Il record SOA viene creato automaticamente da DNS di Azure quando si crea una zona.The SOA record is created automatically by Azure DNS when a zone is created. Quando si importa un file di zona, tutti i parametri SOA vengono rilevati dal file di zona tranne il parametro host.When you import a zone file, all SOA parameters are taken from the zone file except the host parameter. Questo parametro usa il valore fornito da DNS di Azure.This parameter uses the value provided by Azure DNS. Questo parametro deve infatti fare riferimento al server dei nomi primario fornito da DNS di Azure.This is because this parameter must refer to the primary name server provided by Azure DNS.
  • 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.The name server record set at the zone apex is also created automatically by Azure DNS when the zone is created. Viene importata solo la durata TTL di questo set di record.Only the TTL of this record set is imported. Questi record contengono i nomi dei server dei nomi forniti da DNS di Azure.These records contain the name server names provided by Azure DNS. I dati dei record non vengono sovrascritti dai valori contenuti nel file di zona importato.The record data is not overwritten by the values contained in the imported zone file.
  • Durante l'anteprima pubblica, DNS di Azure supporta solo i record TXT a stringa singola.During Public Preview, Azure DNS supports only single-string TXT records. I record TXT multistringa vengono concatenati e troncati a 255 caratteri.Multistring TXT records are be concatenated and truncated to 255 characters.

Valori e formato dell'interfaccia della riga di comandoCLI format and values

Il formato del comando dell'interfaccia della riga di comando di Azure per importare una zona DNS è:The format of the Azure CLI command to import a DNS zone is:

azure network dns zone import [options] <resource group> <zone name> <zone file name>

Valori:Values:

  • <resource group> è il nome del gruppo di risorse per la zona in DNS di Azure.<resource group> is the name of the resource group for the zone in Azure DNS.
  • <zone name> è il nome della zona.<zone name> is the name of the zone.
  • <zone file name> è il nome/percorso del file di zona da importare.<zone file name> is the path/name of the zone file to be imported.

Se una zona con questo nome non esiste nel gruppo di risorse, viene creata.If a zone with this name does not exist in the resource group, it is created for you. Se la zona esiste già, i set di record importati vengono uniti con quelli esistenti.If the zone already exists, the imported record sets are merged with existing record sets. Per sovrascrivere i set di record esistenti, usare l'opzione --force .To overwrite the existing record sets, use the --force option.

Per verificare il formato di un file di zona senza eseguirne effettivamente l'importazione, usare l'opzione --parse-only .To verify the format of a zone file without actually importing it, use the --parse-only option.

Passaggio 1.Step 1. Importare un file di zonaImport a zone file

Per importare un file di zona per la zona contoso.com:To import a zone file for the zone contoso.com.

  1. Accedere alla sottoscrizione di Azure usando l'interfaccia della riga di comando di Azure 1.0.Sign in to your Azure subscription by using the Azure CLI 1.0.

    azure login
    
  2. Selezionare la sottoscrizione in cui si vuole creare la nuova zona DNS.Select the subscription where you want to create your new DNS zone.

    azure account set <subscription name>
    
  3. DNS di Azure è un servizio solo di Gestione risorse di Azure, quindi nell'interfaccia della riga di comando di Azure deve essere impostata la modalità Gestione risorse.Azure DNS is an Azure Resource Manager-only service, so the Azure CLI must be switched to Resource Manager mode.

    azure config mode arm
    
  4. Prima di usare il servizio DNS di Azure, è necessario registrare la sottoscrizione per l'uso del provider di risorse Microsoft.Network.Before you use the Azure DNS service, you must register your subscription to use the Microsoft.Network resource provider. Questa operazione viene eseguita una sola volta per ogni sottoscrizione.(This is a one-time operation for each subscription.)

    azure provider register Microsoft.Network
    
  5. È anche necessario creare un gruppo di risorse di Resource Manager, se non ne è già disponibile uno.If you don't have one already, you also need to create a Resource Manager resource group.

    azure group create myresourcegroup westeurope
    
  6. Per importare la zona contoso.com dal file contoso.com.txt in una nuova zona DNS nel gruppo di risorse myresourcegroup, eseguire il comando azure network dns zone import.To import the zone contoso.com from the file contoso.com.txt into a new DNS zone in the resource group myresourcegroup, run the command azure network dns zone import.
    Questo comando carica il file di zona e lo analizza.This command loads the zone file and parse it. Il comando esegue una serie di comandi nel servizio DNS di Azure per creare la zona e tutti i set di record nella zona.The command executes a series of commands on the Azure DNS service to create the zone and all the record sets in the zone. Il comando visualizza l'avanzamento nella finestra della console insieme agli errori o agli avvisi.The command reports progress in the console window, along with any errors or warnings. Poiché i set di record vengono creati in serie, l'importazione di un file di zona di grandi dimensioni può richiedere alcuni minuti.Because record sets are created in series, it may take a few minutes to import a large zone file.

    azure network dns zone import myresourcegroup contoso.com contoso.com.txt
    

Passaggio 2.Step 2. Verificare la zonaVerify the zone

Per verificare la zona DNS dopo aver importato il file, è possibile usare uno dei metodi seguenti:To verify the DNS zone after you import the file, you can use any one of the following methods:

  • È possibile elencare i record usando il seguente comando dell'interfaccia della riga di comando di Azure:You can list the records by using the following Azure CLI command:

    azure network dns record-set list myresourcegroup contoso.com
    
  • È possibile elencare i record usando il cmdlet PowerShell Get-AzureRmDnsRecordSet.You can list the records by using the PowerShell cmdlet Get-AzureRmDnsRecordSet.

  • Per verificare la risoluzione dei nomi per i record, è possibile usare nslookup .You can use nslookup to verify name resolution for the records. Poiché la zona non è ancora stata delegata, è necessario specificare esplicitamente i server dei nomi DNS di Azure corretti.Because the zone isn't delegated yet, you need to specify the correct Azure DNS name servers explicitly. Il seguente esempio mostra come recuperare i nomi dei server dei nomi assegnati alla zona.The following sample shows how to retrieve the name server names assigned to the zone. Illustra anche come eseguire una query sul record "www" con nslookup.IT also shows how to query the "www" record by using nslookup.

      C:\>azure network dns record-set show myresourcegroup contoso.com @ NS
      info:Executing command network dns record-set show
      + Looking up the DNS Record Set "@" of type "NS"
      data:Id: /subscriptions/.../resourceGroups/myresourcegroup/providers/Microsoft.Network/dnszones/contoso.com/NS/@
      data:Name: @
      data:Type: Microsoft.Network/dnszones/NS
      data:Location: global
      data:TTL : 3600
      data:NS records
      data:Name server domain name : ns1-01.azure-dns.com
      data:Name server domain name : ns2-01.azure-dns.net
      data:Name server domain name : ns3-01.azure-dns.org
      data:Name server domain name : ns4-01.azure-dns.info
      data:
      info:network dns record-set show command OK
    
      C:\> nslookup www.contoso.com ns1-01.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
    

Passaggio 3.Step 3. Aggiornare la delega DNSUpdate DNS delegation

Dopo aver verificato che la zona è stata importata correttamente, è necessario aggiornare la delega DNS in modo che punti verso i server dei nomi DNS di Azure.After you have verified that the zone has been imported correctly, you need to update the DNS delegation to point to the Azure DNS name servers. Per altre informazioni, vedere l'articolo Aggiornare la delega DNS.For more information, see the article Update the DNS delegation.

Esportare un file di zona DNS da DNS di AzureExport a DNS zone file from Azure DNS

Il formato del comando dell'interfaccia della riga di comando di Azure per importare una zona DNS è:The format of the Azure CLI command to import a DNS zone is:

azure network dns zone export [options] <resource group> <zone name> <zone file name>

Valori:Values:

  • <resource group> è il nome del gruppo di risorse per la zona in DNS di Azure.<resource group> is the name of the resource group for the zone in Azure DNS.
  • <zone name> è il nome della zona.<zone name> is the name of the zone.
  • <zone file name> è il nome/percorso del file di zona da esportare.<zone file name> is the path/name of the zone file to be exported.

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.As with the zone import, you first need to sign in, choose your subscription, and configure the Azure CLI to use Resource Manager mode.

Per esportare un file di zona:To export a zone file

  1. Accedere alla sottoscrizione di Azure con l'interfaccia della riga di comando di Azure.Sign in to your Azure subscription by using the Azure CLI.

    azure login
    
  2. Selezionare la sottoscrizione in cui creare la zona DNS.Select the subscription where you want to create your DNS zone.

    azure account set <subscription name>
    
  3. DNS di Azure è un servizio solo di Gestione risorse di Azure.Azure DNS is an Azure Resource Manager-only service. L'interfaccia della riga di comando di Azure deve essere impostata sulla modalità Gestione risorse.The Azure CLI must be switched to Resource Manager mode.

    azure config mode arm
    
  4. 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.To export the existing Azure DNS zone contoso.com in resource group myresourcegroup to the file contoso.com.txt (in the current folder), run 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.This command calls the Azure DNS service to enumerate record sets in the zone and export the results to a BIND-compatible zone file.

    azure network dns zone export myresourcegroup contoso.com contoso.com.txt