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

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

Примечание.

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

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

На следующем рисунке приведены сведения о настройке, используемой в этой статье:

Концептуальная фигура, отображающая компоненты частного сопоставителя.

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

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

В этой статье предполагается, что у вас установлен модуль Az Azure PowerShell.

Установка модуля Az.DnsResolver PowerShell

Примечание.

Если вы ранее установили модуль Az.DnsResolver для оценки во время закрытого предварительного просмотра вы можете отменить регистрацию и удалить созданный локальный PSRepository. Затем установите последнюю версию модуля Az.DnsResolver, выполнив действия, описанные в этой статье.

Установите модуль Az.DnsResolver.

Install-Module Az.DnsResolver

Убедитесь, что модуль Az.DnsResolver установлен. Текущая версия этого модуля — 0.2.1.

Get-InstalledModule -Name Az.DnsResolver

Задайте контекст подписки в Azure PowerShell

Подключите PowerShell к облаку Azure.

Connect-AzAccount -Environment AzureCloud

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

Select-AzSubscription -SubscriptionObject (Get-AzSubscription -SubscriptionId <your-sub-id>)

Зарегистрируйте пространство имен поставщика Microsoft.Network для своей учетной записи.

Прежде чем пользоваться службами Microsoft.Network с подпиской Azure, необходимо зарегистрировать пространство имен Microsoft.Network:

Используйте следующую команду, чтобы зарегистрировать пространство имен Microsoft.Network.

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

Создайте экземпляр сопоставителя DNS

Внимание

Действия по проверке или подтверждению успешного создания ресурсов являются обязательными. Не пропускайте эти действия. В ходе этих действий заполняются переменные, которые можно использовать в последующих процедурах.

Создайте группу ресурсов для размещения ресурсов. Группа ресурсов должна находиться в поддерживаемом регионе. В этом примере это westcentralus.

New-AzResourceGroup -Name myresourcegroup -Location westcentralus

Создание виртуальной сети в созданной группе ресурсов.

New-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup -Location westcentralus -AddressPrefix "10.0.0.0/8"

Создайте сопоставитель DNS в созданной виртуальной сети.

New-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup -Location westcentralus -VirtualNetworkId "/subscriptions/<your subs id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet"

Убедитесь, что сопоставитель DNS успешно создан и подключен (необязательно). В выходных данных dnsResolverState Подключение.

$dnsResolver = Get-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup
$dnsResolver.ToJsonString()

Создайте входящую конечную точку сопоставителя DNS

Создайте подсеть в виртуальной сети

Создайте подсеть в виртуальной сети (Microsoft.Network/virtualNetworks/subnets) из ранее назначенных диапазонов IP-адресов. Размер подсети должен быть не менее /28 (16 IP-адресов).

$virtualNetwork = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
Add-AzVirtualNetworkSubnetConfig -Name snet-inbound -VirtualNetwork $virtualNetwork -AddressPrefix "10.0.0.0/28"
$virtualNetwork | Set-AzVirtualNetwork

Создание входящей конечной точки

Создайте входящую конечную точку, чтобы активировать разрешение имен из локального или другого частного расположения с использованием IP-адреса, который является частью диапазона адресов вашей частной виртуальной сети.

Совет

С помощью PowerShell можно указать IP-адрес входящего конечной точки, который должен быть динамическим или статическим.
Если IP-адрес конечной точки указан как динамический, адрес не изменяется, если конечная точка не удаляется и не будет повторно настроена. Обычно один и тот же IP-адрес будет назначен повторно во время повторной подготовки.
Если IP-адрес конечной точки является статическим, его можно указать и повторно использовать при повторной подготовке конечной точки. Ip-адрес, который вы выбрали, не может быть зарезервированным IP-адресом в подсети.

Следующие команды подготавливают динамический IP-адрес:

$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAllocationMethod Dynamic -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-inbound
New-AzDnsResolverInboundEndpoint -DnsResolverName mydnsresolver -Name myinboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -IpConfiguration $ipconfig

Используйте следующие команды, чтобы указать статический IP-адрес. Не используйте динамические и статические наборы команд.

Необходимо указать IP-адрес в созданной ранее подсети. Ip-адрес, который вы выбрали, не может быть зарезервированным IP-адресом в подсети.

Следующие команды подготавливают статический IP-адрес:

$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAddress 10.0.0.4 -PrivateIPAllocationMethod Static -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-inbound
New-AzDnsResolverInboundEndpoint -DnsResolverName mydnsresolver -Name myinboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -IpConfiguration $ipconfig

Подтвердите вашу входящую конечную точку

Убедитесь, что входящая конечная точка создана и ей назначен IP-адрес в назначенной подсети.

$inboundEndpoint = Get-AzDnsResolverInboundEndpoint -Name myinboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
$inboundEndpoint.ToJsonString()

Создайте исходящую конечную точку сопоставителя DNS

Создайте подсеть в виртуальной сети

Создайте подсеть в виртуальной сети (Microsoft.Network/virtualNetworks/subnets) из ранее назначенных диапазонов IP-адресов, которые отличаются от вашей входящей подсети (snet-inbound). Размер исходящей подсети также должен быть не менее /28 (16 IP-адресов).

$virtualNetwork = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
Add-AzVirtualNetworkSubnetConfig -Name snet-outbound -VirtualNetwork $virtualNetwork -AddressPrefix "10.1.1.0/28"
$virtualNetwork | Set-AzVirtualNetwork

Создание исходящей конечной точки

Исходящая конечная точка активирует разрешение имен при условной переадресации из Azure во внешние DNS-серверы.

New-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -Name myoutboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-outbound

Подтвердите исходящую конечную точку

Убедитесь, что исходящая конечная точка создана и ей назначен IP-адрес в назначенной подсети.

$outboundEndpoint = Get-AzDnsResolverOutboundEndpoint -Name myoutboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
$outboundEndpoint.ToJsonString()

Создание набора правил переадресации сопоставителя DNS

Создайте набор правил переадресации DNS для созданной исходящей конечной точки.

New-AzDnsForwardingRuleset -Name myruleset -ResourceGroupName myresourcegroup -DnsResolverOutboundEndpoint $outboundendpoint -Location westcentralus

Подтвердите набор правил переадресации DNS

Убедитесь в создании набора правил переадресации.

$dnsForwardingRuleset = Get-AzDnsForwardingRuleset -Name myruleset -ResourceGroupName myresourcegroup
$dnsForwardingRuleset.ToJsonString()

Ссылки на виртуальные сети позволяют разрешать имена для виртуальных сетей, которые связаны с исходящей конечной точкой с помощью набора правил переадресации DNS.

$vnet = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup 
$vnetlink = New-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup -VirtualNetworkLinkName "vnetlink" -VirtualNetworkId $vnet.Id -SubscriptionId <your sub id>

Подтвердите наличие виртуального сетевого соединения.

$virtualNetworkLink = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup 
$virtualNetworkLink.ToJsonString()

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

$vnet2 = New-AzVirtualNetwork -Name myvnet2 -ResourceGroupName myresourcegroup -Location westcentralus -AddressPrefix "12.0.0.0/8"
$vnetlink2 = New-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup -VirtualNetworkLinkName "vnetlink2" -VirtualNetworkId $vnet2.Id -SubscriptionId <your sub id>

Подтверждение второй виртуальной сети

Подтвердите создание второй виртуальной сети.

$virtualNetworkLink2 = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup 
$virtualNetworkLink2.ToJsonString()

Создание правил переадресации

Создайте правило переадресации для набора правил на один или несколько целевых DNS-серверов. Необходимо указать полное доменное имя (FQDN) с точкой. Командлет New-AzDnsResolverTargetDnsServerObject задает порт по умолчанию 53, но вы можете также указать уникальный порт.

$targetDNS1 = New-AzDnsResolverTargetDnsServerObject -IPAddress 192.168.1.2 -Port 53 
$targetDNS2 = New-AzDnsResolverTargetDnsServerObject -IPAddress 192.168.1.3 -Port 53
$targetDNS3 = New-AzDnsResolverTargetDnsServerObject -IPAddress 10.0.0.4 -Port 53
$targetDNS4 = New-AzDnsResolverTargetDnsServerObject -IPAddress 10.5.5.5 -Port 53
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "Internal" -DomainName "internal.contoso.com." -ForwardingRuleState "Enabled" -TargetDnsServer @($targetDNS1,$targetDNS2)
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "AzurePrivate" -DomainName "azure.contoso.com" -ForwardingRuleState "Enabled" -TargetDnsServer $targetDNS3
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "Wildcard" -DomainName "." -ForwardingRuleState "Enabled" -TargetDnsServer $targetDNS4

В этом примере:

  • 10.0.0.4 — это конечная точка входящего трафика сопоставителя.
  • 192.168.1.2 и 192.168.1.3 — локальные DNS-серверы.
  • 10.5.5.5 — это защитная служба DNS.

Внимание

Правила, показанные в этом кратком руководстве, являются примерами правил, которые можно использовать для конкретных сценариев. Ни один из правил, описанных в этой статье, не требуется. Будьте осторожны, чтобы проверить правила пересылки и убедиться, что правила не вызывают проблем с разрешением DNS.

Если в набор правил включено правило дикого карта, убедитесь, что целевая служба DNS может разрешать общедоступные DNS-имена. Некоторые службы Azure зависят от разрешения общедоступных имен.

Тестирование частного сопоставителя

Теперь вы сможете отправлять трафик DNS в сопоставитель DNS и разрешать записи на основе наборов правил переадресации, включая следующие:

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

Удалите сопоставитель DNS

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

Удалите входящую конечную точку

Remove-AzDnsResolverInboundEndpoint -Name myinboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup 
Remove-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -Name vnetlink -ResourceGroupName myresourcegroup

Удалите набор правил переадресации DNS

Remove-AzDnsForwardingRuleset -Name $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup

Удалите исходящую конечную точку

Remove-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup -Name myoutboundendpoint

Удалите сопоставитель DNS

Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup

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