Поделиться через


Импорт и экспорт частного файла зоны DNS для частного DNS Azure

В этой статье приводятся пошаговые инструкции по импорту и экспорту файлов зоны DNS для Azure DNS с помощью Azure CLI.

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

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

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

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

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

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

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

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

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

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

  • По умолчанию объединяются существующие и новые наборы записей. Одинаковые записи в рамках объединенного набора записей дедуплицируются.
  • При объединении наборов записей используется значение срока жизни (TTL) существующих наборов записей.
  • Параметры начальной записи зоны (SOA) (кроме host) всегда берутся из импортированного файла зоны. Аналогичным образом для набора записей сервера доменных имен на вершине зоны значение срока жизни всегда извлекается из импортированного файла зоны.
  • Импортированная запись 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 private-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. Если у вас еще нет группы ресурсов Resource Manager, создайте ее.

    az group create --resource-group myresourcegroup -l westeurope
    
  2. Чтобы импортировать зону contoso.com из файла contoso.com.txt в зону DNS в группе ресурсов myresourcegroup, выполните команду az network private-dns zone import.
    Эта команда загружает файл зоны и анализирует его. Затем она инициирует выполнение ряда команд в службе Azure DNS, чтобы создать зону и все наборы записей в ней. В окне консоли виден ход выполнения команды, а также все ошибки и предупреждения. Так как наборы записей создаются в серии, при импорте большого файла зоны этот процесс может занять несколько минут.

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

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

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

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

    az network private-dns record-set list -g myresourcegroup -z contoso.com
    
  • С помощью nslookup можно проверить разрешение имен для записей. Так как зона еще не делегирована, нужно явно указать правильные серверы доменных имен Azure DNS. В примере ниже показано, как получить имена серверов доменных имен, назначенных зоне. В нем также показано, как запросить запись www с помощью команды nslookup.

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

Формат команды Azure CLI для импорта зоны DNS выглядит следующим образом:

az network private-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 private-dns zone export. Эта команда вызывает службу Azure DNS для перечисления наборов записей в зоне и экспорта результатов в файл зоны, совместимый с форматом BIND.

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

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