Importar e exportar um arquivo de zona DNS usando a CLI do Azure

Neste artigo, você aprenderá a importar e exportar um arquivo de zona DNS no DNS do Azure usando a CLI do Azure. Você também pode importar e exportar um arquivo de zona usando o portal do Azure.

Introdução à migração de zona DNS

Um arquivo de zona DNS é um arquivo de texto que contém informações sobre cada registro DNS (Sistema de Nomes de Domínio ) na zona. Ele segue um formato padrão, tornando-o adequado para transferir registros DNS entre sistemas DNS. Usar um arquivo de zona é uma maneira rápida e conveniente de importar zonas DNS para o DNS do Azure. Você também pode exportar um arquivo de zona do DNS do Azure para usar com outros sistemas DNS.

O DNS do Azure dá suporte à importação e à exportação de arquivos de zona por meio da CLI do Azure e do portal do Azure.

A CLI do Azure é uma ferramenta de linha de comando de plataforma cruzada usada para gerenciar os serviços do Azure. Ela está disponível para Windows, Mac e Linux por meio da página de downloads do Azure.

Obtenha seu arquivo de zona DNS existente

Antes de importar um arquivo de zona DNS para o DNS do Azure, você precisa obter uma cópia do arquivo de zona. A origem desse arquivo depende do local em que a zona DNS está hospedada.

  • Se a zona DNS for hospedada por um serviço de parceiro, o serviço deverá disponibilizar uma forma para você baixar o arquivo de zona DNS. Os serviços de parceiro incluem o registrador de domínios, o provedor de hospedagem de DNS dedicado ou um provedor de nuvem alternativo.
  • Se a zona DNS estiver hospedada no DNS do Windows, a pasta padrão para os arquivos de zona será %systemroot%\system32\dns. O caminho completo de cada arquivo de zona é mostrado também na guia Geral do console de DNS.
  • Se a zona DNS for hospedada usando o BIND, o local do arquivo de zona para cada zona é especificado no arquivo de configuração do BIND, named.conf.

Importante

Se o arquivo de zona importado contiver entradas CNAME que apontam para nomes em outra zona privada, ocorrerá uma falha na resolução do DNS do Azure do CNAME, a menos que a outra zona também seja importada ou as entradas CNAME sejam modificadas.

Importar um arquivo de zona DNS para o DNS do Azure

A importação de um arquivo de zona cria uma nova zona no DNS do Azure, se a zona ainda não existir. Se a zona existir, os conjuntos de registros no arquivo de zona serão mesclados com os conjuntos de registros existentes.

Comportamento de mesclagem

  • Por padrão, os novos conjuntos de registros são mesclados com os conjuntos de registros existentes. Os registros idênticos em um conjunto de registros mesclados não são duplicados.
  • Quando os conjuntos de registros são mesclados, é usado o TTL dos conjuntos de registros pré-existentes.
  • Os parâmetros SOA (início de autoridade), exceto host, são sempre obtidos a partir do arquivo de zona importado. O conjunto de registros do servidor de nomes no ápice da zona sempre usa o TTL obtido do arquivo de zona importado.
  • Um registro CNAME importado substituirá o registro CNAME existente que tem o mesmo nome.
  • Quando um conflito acontece entre um registro CNAME e outro registro com o mesmo nome de tipo diferente, o registro existente é usado.

Informações adicionais sobre importação

As observações a seguir fornecem mais detalhes técnicos sobre o processo de importação de zona.

  • A diretiva $TTL é opcional e tem suporte. Quando nenhuma diretiva $TTL for especificada, registros sem um TTL explícito são importados definidos com um TTL padrão de 3600 segundos. Quando dois registros no mesmo conjunto de registros especificarem TTLs diferentes, o menor valor será usado.
  • A diretiva $ORIGIN é opcional e tem suporte. Quando nenhuma $ORIGIN for definida, o valor padrão usado será o nome da zona, conforme especificado na linha de comando, incluindo o ponto final (.).
  • As diretivas $INCLUDE e $GENERATE não têm suporte.
  • Há suporte aos seguintes tipos de registros: A, AAAA, CAA, CNAME, MX, NS, SOA, SRV e TXT.
  • O registro SOA é criado automaticamente pelo DNS do Azure quando uma zona é criada. Quando você importa um arquivo de zona, todos os parâmetros SOA são extraídos do arquivo de zona, exceto o parâmetro host. Esse parâmetro usa o valor fornecido pelo DNS do Azure porque ele precisa fazer referência ao servidor de nomes primário fornecido pelo DNS do Azure.
  • O registro de nome do servidor definido no ápice da zona também é criado automaticamente pelo DNS do Azure quando a zona é criada. Apenas o TTL desse conjunto de registros é importado. Esses registros contêm os nomes de servidor de nome fornecidos pelo DNS do Azure. Os dados de registro não são substituídos pelos valores contidos no arquivo de zona importado.
  • Durante a visualização pública, o DNS do Azure suporta apenas os registros TXT de cadeia de caracteres única. Registros TXT de cadeia de caracteres múltiplas serão concatenados e truncados para 255 caracteres.

Valores e formato da CLI

O formato do comando da CLI do Azure para importar uma zona DNS é:

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

Valores:

  • <resource group> é o nome do grupo de recursos para a zona no DNS do Azure.
  • <zone name> é o nome da zona.
  • <zone file name> é o caminho/nome do arquivo de zona a ser importado.

Se uma zona com esse nome ainda não existir no grupo de recursos, ela será criada. No caso de uma zona existente, os conjuntos de registros importados são mesclados com os conjuntos de registros existentes.

Importar um arquivo de zona

Para importar um arquivo de zona para a zona contoso.com.

  1. Crie um grupo de recursos, caso ainda não tenha um.

    az group create --resource-group myresourcegroup -l westeurope
    
  2. Para importar a zona contoso.com do arquivo contoso.com.txt para uma nova zona DNS no grupo de recursos myresourcegroup, execute o comando az network dns zone import.

    Este comando carrega o arquivo de zona e analisa-o. O comando executa uma série de operações no serviço DNS do Azure para criar a zona e todos os conjuntos de registro na zona. O comando relata o progresso na janela do console com os erros ou os avisos. Como os conjuntos de registros são criados em série, a importação de um arquivo de zona grande pode levar alguns minutos.

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

Verificar a zona

Você pode usar um dos métodos a seguir para verificar a zona DNS após importar o arquivo:

  • Para listar os registros, use o seguinte comando da CLI do Azure:

    az network dns record-set list -g myresourcegroup -z contoso.com
    
  • Você também pode listar os registros usando o comando az network dns record-set ns list da CLI do Azure.

  • Use nslookup para verificar a resolução de nomes para os registros. Se a zona ainda não tiver sido delegada, você precisa especificar os servidores de nomes DNS do Azure corretos explicitamente. O exemplo a seguir mostra como recuperar os nomes do servidor de nomes atribuídos à 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"
      }
    ]
    

    Use o Prompt de Comando do Windows para consultar o registro "www" com o 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
    

Atualizar a delegação DNS

Após de verificar se a zona foi importada corretamente, você precisará então atualizar a delegação DNS para apontar para os servidores de nomes DNS do Azure. Para saber mais, confira Atualizar a delegação DNS.

Como exportar um arquivo de zona DNS do DNS do Azure

Para exportar uma zona DNS, use o seguinte comando da CLI do Azure:

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

Valores:

  • <resource group> é o nome do grupo de recursos para a zona no DNS do Azure.
  • <zone name> é o nome da zona.
  • <zone file name> é o caminho/nome do arquivo de zona a ser exportado.

Como acontece com a importação de zona, você primeiro precisa fazer logon, escolher sua assinatura e configurar a CLI do Azure para usar o modo do Gerenciador de Recursos.

Para exportar um arquivo de zona

Para exportar a zona DNS do Azure contoso.com existente no grupo de recursos myresourcegroup para o arquivo contoso.com.txt (na pasta atual), execute azure network dns zone export. Esse comando chama o serviço DNS do Azure para enumerar os conjuntos de registros na zona e exportar os resultados para um arquivo de zona compatível com BIND.

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

Próximas etapas