Краткое руководство. Создание частной зоны 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 автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Создание группы ресурсов
Сначала нужно создать группу ресурсов, которая будет включать зону 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.
Подключитесь к myVM01, используя имя пользователя и пароль, которые вы использовали при создании виртуальной машины.
Откройте окно Windows PowerShell с привилегиями администратора.
Выполните следующую команду:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
Повторите действия для myVM02.
Проверка связи с виртуальными машинами по имени
В командной строке 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:\>
Теперь проверьте связь с именем 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