Импорт и экспорт файла зоны DNS с помощью Azure CLI

Из этой статьи вы узнаете, как импортировать и экспортировать файл зоны DNS в Azure DNS с помощью Azure CLI. Вы также можете импортировать и экспортировать файл зоны с помощью портал Azure.

Общие сведения о миграции зоны DNS

Файл зоны DNS — текстовый файл, содержащий сведения о каждой записи службы доменных имен (DNS) в зоне. Он соответствует стандартному формату и позволяет передавать записи DNS в системы DNS. Использование файла зоны — это быстрый и удобный способ импорта зон DNS в Azure DNS. Файл зоны также можно экспортировать из Azure DNS для использования с другими системами DNS.

Azure DNS поддерживает импорт и экспорт файлов зоны с помощью Azure CLI и портал Azure.

Интерфейс командной строки Azure — это кроссплатформенная программа командной строки для управления службами Azure. Для платформ Windows, Mac и Linux ее можно скачать на странице скачивания Azure.

Получение существующего файла зоны DNS

Прежде чем импортировать файл зоны DNS в Azure DNS, необходимо получить копию файла зоны. Источник этого файла зависит от того, где размещена зона DNS.

  • Если ваша зона DNS размещается службой партнеров, служба должна иметь способ скачивания ФАЙЛА зоны DNS. Службы-партнеры включают в себя регистратор домена, выделенного поставщика услуг размещения DNS или альтернативного поставщика облачных служб.
  • Если зона DNS размещена на DNS-сервере Windows, по умолчанию файлы зоны можно найти в папке %systemroot%\system32\dns. Полный путь к каждому файлу зоны также отображается на вкладке Общие консоли DNS.
  • Если для размещения зоны DNS используется BIND, расположение файла зоны для каждой зоны задается в файле конфигурации BIND named.conf.

Внимание

Если импортируемый файл зоны содержит записи CNAME, указывающие на имена в другой частной зоне, разрешение Azure DNS CNAME завершается ошибкой, если не импортируется другая зона или записи CNAME изменяются.

Импорт файла зоны DNS в Azure DNS

Импорт файла зоны создает зону в Azure DNS, если таковая не существует. Если зона существует, наборы записей в файле зоны объединяются с существующими наборами записей.

Поведение слияния

  • По умолчанию новые наборы записей объединяются с существующими. Одинаковые записи в рамках объединенного набора записей не дуплицируются.
  • При объединении наборов записей используется значение срока жизни (TTL) существующих наборов записей.
  • Параметры начальной записи зоны (SOA) (кроме host) всегда берутся из импортированного файла зоны. Запись сервера имен, установленная в вершине зоны, также всегда использует TTL, взятую из импортированного файла зоны.
  • Импортированная запись CNAME заменит существующую запись CNAME с тем же именем.
  • Если конфликт происходит между записью CNAME и другой записью с тем же именем другого типа, используется существующая запись.

Дополнительная информация об импорте

Ниже приведены дополнительные технические сведения о процессе импорта зоны.

  • $TTL — необязательная поддерживаемая директива. Если директива $TTL не указывается, записи без явного значения срока жизни импортируются со значением срока жизни по умолчанию (3600 секунд). Если в одном наборе записей есть две записи с разными значениями срока жизни, используется меньшее значение.
  • $ORIGIN — необязательная поддерживаемая директива. Если значение по умолчанию не $ORIGIN задано, используется имя зоны, указанное в командной строке, включая конечную точку (.).
  • Директивы $INCLUDE и $GENERATE не поддерживаются.
  • Поддерживаются следующие типы записей: A, AAAA, CNAME, MX, NS, SOA, SRV и TXT.
  • Запись типа SOA автоматически создается в Azure DNS во время создания зоны. При импорте файла зоны все параметры SOA, кроме параметра host, берутся из файла зоны. Этот параметр использует значение, предоставленное Azure DNS, так как оно должно ссылаться на основной сервер имен, предоставляемый Azure DNS.
  • Набор записей сервера доменных имен в вершине зоны также создается службой Azure DNS автоматически во время создания зоны. Импортируется только значение TTL этого набора записей. Эти записи содержат имена серверов доменных имен, предоставляемые Azure DNS. Данные записи не перезаписываются значениями, содержащимися в импортированном файле зоны.
  • Общедоступная предварительная версия Azure DNS поддерживает только записи типа TXT с одной строкой. Записи типа TXT, состоящие из нескольких строк, сцепляются и усекаются до 255 символов.

Формат и значения CLI

Команда Azure CLI для импорта зоны DNS имеет следующий формат.

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

Значения:

  • <resource group> — имя группы ресурсов для зоны в Azure DNS;
  • <zone name> — имя зоны;
  • <zone file name> — путь и имя импортируемого файла зоны.

Если зона с этим именем еще не существует в группе ресурсов, создается для вас. Для существующей зоны импортированные наборы записей объединяются с существующими наборами записей.

Импорт файла зоны

Предположим, необходимо импортировать файл зоны для зоны contoso.com.

  1. Если у вас еще нет группы ресурсов, создайте ее.

    az group create --resource-group myresourcegroup -l westeurope
    
  2. Чтобы импортировать зону contoso.com из файла contoso.com.txt в зону DNS в группе ресурсов myresourcegroup, выполните команду az network dns zone import.

    Эта команда загружает файл зоны и анализирует его. Затем она инициирует выполнение ряда операций в службе Azure DNS, чтобы создать зону и все наборы записей в ней. Команда сообщает ход выполнения в окне консоли вместе с любыми ошибками или предупреждениями. Так как наборы записей создаются в серии, для импорта большого файла зоны может потребоваться несколько минут.

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

Проверка зоны

Чтобы проверить зону DNS после импорта файла, можно использовать один из следующих методов.

  • Список записей можно получить, используя следующую команду Azure CLI.

    az network dns record-set list -g myresourcegroup -z contoso.com
    
  • Список записей также можно получить, используя команду Azure CLI az network dns record-set ns list.

  • С помощью nslookup можно проверить разрешение имен для записей. Так как зона еще не делегирована, нужно явно указать правильные серверы доменных имен Azure DNS. В примере ниже показано, как получить имена серверов доменных имен, назначенных зоне.

    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"
      }
    ]
    

    Используйте командную строку Windows для запроса записи www с помощью команды 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
    

Обновление делегирования DNS

После проверки правильности импорта зоны требуется обновить делегирование DNS, чтобы указать серверы доменных имен Azure DNS. Дополнительные сведения см. в статье Делегирование домена в Azure DNS.

Экспорт файла зоны DNS из Azure DNS

Чтобы экспортировать зону DNS, используйте следующую команду Azure CLI.

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

Значения:

  • <resource group> — имя группы ресурсов для зоны в Azure DNS;
  • <zone name> — имя зоны;
  • <zone file name> — путь и имя экспортируемого файла зоны.

Как и при импорте зоны, сначала требуется войти, выбрать подписку и настроить Azure CLI для использования режима Resource Manager.

Экспорт файла зоны

Чтобы экспортировать имеющуюся зону Azure DNS contoso.com (в группе ресурсов myresourcegroup) в файл contoso.com.txt (в текущей папке), выполните команду azure network dns zone export. Эта команда вызывает службу Azure DNS для перечисления наборов записей в зоне и экспорта результатов в файл зоны, совместимый с форматом BIND.

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

Следующие шаги