Краткое руководство. Создание частной зоны Azure DNS с помощью Azure PowerShell

Эта статья поможет вам создать свою первую частную зону и первую запись DNS с помощью Azure PowerShell.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

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

Необходимые компоненты

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

При необходимости эти инструкции можно выполнить с помощью Azure CLI.

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Screenshot that shows an example of Try It for Azure Cloud Shell.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Button to launch Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Создание группы ресурсов

Сначала нужно создать группу ресурсов, которая будет включать зону DNS.

New-AzResourceGroup -name MyAzureResourceGroup -location "eastus"

Создание частной зоны DNS

Зона DNS создается с помощью командлета New-AzPrivateDnsZone.

В следующем примере создается виртуальная сеть с именем myAzureVNet. Затем создается зона DNS с именем private.contoso.com в группе ресурсов MyAzureResourceGroup, которая связывает зону DNS с виртуальной сетью MyAzureVnet и включает автоматическую регистрацию.

Install-Module -Name Az.PrivateDns -force

$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.2.0.0/24"
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName MyAzureResourceGroup `
  -Location eastus `
  -Name myAzureVNet `
  -AddressPrefix 10.2.0.0/16 `
  -Subnet $backendSubnet

$zone = New-AzPrivateDnsZone -Name private.contoso.com -ResourceGroupName MyAzureResourceGroup

$link = New-AzPrivateDnsVirtualNetworkLink -ZoneName private.contoso.com `
  -ResourceGroupName MyAzureResourceGroup -Name "mylink" `
  -VirtualNetworkId $vnet.id -EnableRegistration

Если вы хотите создать зону только для разрешения имен (без автоматической регистрации имени узла), параметр -EnableRegistration можно опустить.

Список частных зон DNS

Если опустить имя зоны в командлете Get-AzPrivateDnsZone, можно получить список всех зон в группе ресурсов. Эта операция возвращает массив объектов зоны.

$zones = Get-AzPrivateDnsZone -ResourceGroupName MyAzureResourceGroup
$zones

Если опустить имя зоны и имя группы ресурсов в командлете Get-AzPrivateDnsZone, то можно получить список всех зон в подписке Azure.

$zones = Get-AzPrivateDnsZone
$zones

Создание тестовых виртуальных машин

Теперь создайте две виртуальные машины, чтобы иметь возможность проверить частную зону DNS.

New-AzVm `
    -ResourceGroupName "myAzureResourceGroup" `
    -Name "myVM01" `
    -Location "East US" `
    -subnetname backendSubnet `
    -VirtualNetworkName "myAzureVnet" `
    -addressprefix 10.2.0.0/24 `
    -OpenPorts 3389

New-AzVm `
    -ResourceGroupName "myAzureResourceGroup" `
    -Name "myVM02" `
    -Location "East US" `
    -subnetname backendSubnet `
    -VirtualNetworkName "myAzureVnet" `
    -addressprefix 10.2.0.0/24 `
    -OpenPorts 3389

Создание виртуальной машины займет несколько минут.

Создание дополнительной записи DNS

Для создания наборов записей используется командлет New-AzPrivateDnsRecordSet. В следующем примере создается запись с относительным именем db в зоне DNS private.contoso.com в группе ресурсов MyAzureResourceGroup. Полное доменное имя набора записей — db.private.contoso.com. Тип записи — "A", IP-адрес — "10.2.0.4", а срок жизни составляет 3600 секунд.

New-AzPrivateDnsRecordSet -Name db -RecordType A -ZoneName private.contoso.com `
   -ResourceGroupName MyAzureResourceGroup -Ttl 3600 `
   -PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address "10.2.0.4")

Просмотр записей DNS

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

Get-AzPrivateDnsRecordSet -ZoneName private.contoso.com -ResourceGroupName MyAzureResourceGroup

Проверка частной зоны

Теперь вы можете проверить разрешение имени для частной зоны private.contoso.com.

Настройка виртуальных машин для получения входящего ICMP-трафика

Можно воспользоваться командой проверки связи (ping) для проверки разрешения имени. Для этого настройте брандмауэр для обеих виртуальных машин, чтобы получать входящие пакеты ICMP.

  1. Подключитесь к myVM01, используя имя пользователя и пароль, которые вы использовали при создании виртуальной машины.

  2. Откройте окно Windows PowerShell с привилегиями администратора.

  3. Выполните следующую команду:

    New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
    

Повторите действия для myVM02.

Проверка связи с виртуальными машинами по имени

  1. В командной строке Windows PowerShell на виртуальной машине myVM02 проверьте связь с myVM01, используя автоматически зарегистрированное имя узла.

    ping myVM01.private.contoso.com
    

    Вы должны увидеть выходные данные, которые выглядят примерно так:

    PS C:\> ping myvm01.private.contoso.com
    
    Pinging myvm01.private.contoso.com [10.2.0.4] with 32 bytes of data:
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time=1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    
    Ping statistics for 10.2.0.4:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 1ms, Average = 0ms
    PS C:\>
    
  2. Теперь проверьте связь с именем db, созданным ранее.

    ping db.private.contoso.com
    

    Вы должны увидеть выходные данные, которые выглядят примерно так:

    PS C:\> ping db.private.contoso.com
    
    Pinging db.private.contoso.com [10.2.0.4] with 32 bytes of data:
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    
    Ping statistics for 10.2.0.4:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milliseconds:
        Minimum = 0ms, Maximum = 0ms, Average = 0ms
    PS C:\>
    

Очистка ресурсов

Удалите группу ресурсов MyAzureResourceGroup, если ресурсы, созданные в этой статье, больше не нужны.

Remove-AzResourceGroup -Name MyAzureResourceGroup

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