Краткое руководство. Создание частного сопоставителя 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
Ссылки на виртуальные сети позволяют разрешать имена для виртуальных сетей, которые связаны с исходящей конечной точкой с помощью набора правил переадресации 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()
Создайте вторую виртуальную сеть и свяжите ее с набором правил переадресации DNS
Создайте вторую виртуальную сеть для имитации локальной или другой среды.
$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