Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья поможет вам создать свою первую частную зону и первую запись DNS с помощью Azure PowerShell. При желании вы можете выполнить это краткое руководство с помощью портала Azure.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.
Решатель частных запросов DNS Azure — это новая служба, которая позволяет запрашивать частные зоны DNS Azure из локальной среды в 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