Импорт и экспорт 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 CLI — это кроссплатформенный инструмент командной строки, используемый для управления Azure сервисами. Он доступен для Windows, Mac и Linux на странице загрузок Azure.

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

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

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

Important

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

Import a DNS zone file into Azure DNS

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

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

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

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

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

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

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

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

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

Values:

  • <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
    
  • Вы также можете перечислить записи, используя команду az network dns record-set ns listAzure CLI .

  • Используйте 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. Для получения дополнительной информации смотрите раздел «Обновить делегирование DNS».

Export a DNS zone file from Azure DNS

Для экспорта DNS-зоны используйте следующую команду Azure CLI:

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

Values:

  • <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

Дальнейшие действия