Partilhar via


Guia de início rápido: criar um resolvedor privado de DNS do Azure usando o Azure PowerShell

Este artigo explica-lhe os passos para criar a sua primeira zona DNS privada e o registo com o Azure PowerShell. Se preferir, você pode concluir este início rápido usando o portal do Azure.

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

O Azure DNS Private Resolver é um serviço que lhe permite consultar zonas privadas do DNS do Azure a partir de um ambiente no local e vice-versa sem implementar servidores de DNS baseados em VM. Para obter mais informações, incluindo benefícios, recursos e disponibilidade regional, consulte O que é o Resolvedor Privado de DNS do Azure.

A figura a seguir resume a configuração usada neste artigo:

Figura conceitual exibindo componentes do resolvedor privado.

Pré-requisitos

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Este artigo pressupõe que você tenha instalado o módulo Az Azure PowerShell.

Instalar o módulo Az.DnsResolver PowerShell

Nota

Se você instalou anteriormente o módulo Az.DnsResolver para avaliação durante a visualização privada, poderá cancelar o registro e excluir o PSRepository local que foi criado. Em seguida, instale a versão mais recente do módulo Az.DnsResolver usando as etapas fornecidas neste artigo.

Instale o módulo Az.DnsResolver.

Install-Module Az.DnsResolver

Confirme se o módulo Az.DnsResolver foi instalado. A versão atual deste módulo é 0.2.1.

Get-InstalledModule -Name Az.DnsResolver

Definir contexto de assinatura no Azure PowerShell

Conecte o PowerShell à nuvem do Azure.

Connect-AzAccount -Environment AzureCloud

Se estiverem presentes várias subscrições, será utilizado o primeiro ID de subscrição. Para especificar um ID de assinatura diferente, use o seguinte comando.

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

Registre o namespace do provedor Microsoft.Network para sua conta.

Antes de poder usar os serviços Microsoft.Network com sua assinatura do Azure, você deve registrar o namespace Microsoft.Network:

Use o comando a seguir para registrar o namespace Microsoft.Network.

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

Criar uma instância de resolvedor de DNS

Importante

As etapas para verificar ou confirmar se os recursos foram criados com êxito não são opcionais. Não salte estes passos. As etapas preenchem variáveis que podem ser usadas em procedimentos posteriores.

Crie um grupo de recursos para hospedar os recursos. O grupo de recursos deve estar em uma região com suporte. Neste exemplo, o local é westcentralus.

New-AzResourceGroup -Name myresourcegroup -Location westcentralus

Crie uma rede virtual no grupo de recursos que você criou.

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

Crie um resolvedor de DNS na rede virtual que você criou.

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

Verifique se o resolvedor de DNS foi criado com êxito e se o estado está conectado (opcional). Na saída, o dnsResolverState é Connected.

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

Criar um ponto de extremidade de entrada do resolvedor de DNS

Criar uma sub-rede na rede virtual

Crie uma sub-rede na rede virtual (Microsoft.Network/virtualNetworks/subnets) a partir do espaço de endereço IP que você atribuiu anteriormente. A sub-rede precisa ter pelo menos /28 em tamanho (16 endereços IP).

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

Criar o ponto de extremidade de entrada

Crie um ponto de extremidade de entrada para habilitar a resolução de nomes a partir do local ou de outro local privado usando um endereço IP que faça parte do seu espaço de endereço de rede virtual privada.

Gorjeta

Usando o PowerShell, você pode especificar o endereço IP do ponto de extremidade de entrada para ser dinâmico ou estático.
Se o endereço IP do ponto de extremidade for especificado como dinâmico, o endereço não será alterado, a menos que o ponto de extremidade seja excluído e reprovisionado. Normalmente, o mesmo endereço IP será atribuído novamente durante o reprovisionamento.
Se o endereço IP do ponto de extremidade for estático, ele poderá ser especificado e reutilizado se o ponto de extremidade for reprovisionado. O endereço IP escolhido não pode ser um endereço IP reservado na sub-rede.

Os comandos a seguir provisionam um endereço IP dinâmico:

$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

Use os comandos a seguir para especificar um endereço IP estático. Não use os conjuntos dinâmicos e estáticos de comandos.

Você deve especificar um endereço IP na sub-rede que foi criada anteriormente. O endereço IP escolhido não pode ser um endereço IP reservado na sub-rede.

Os comandos a seguir provisionam um endereço IP estático:

$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

Confirme seu ponto de extremidade de entrada

Confirme se o ponto de extremidade de entrada foi criado e alocado um endereço IP dentro da sub-rede atribuída.

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

Criar um ponto de extremidade de saída do resolvedor de DNS

Criar uma sub-rede na rede virtual

Crie uma sub-rede na rede virtual (Microsoft.Network/virtualNetworks/subnets) a partir do espaço de endereço IP que você atribuiu anteriormente, diferente da sua sub-rede de entrada (snet-inbound). A sub-rede de saída também precisa ter pelo menos /28 de tamanho (16 endereços IP).

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

Criar o ponto de extremidade de saída

Um ponto de extremidade de saída habilita a resolução de nomes de encaminhamento condicional do Azure para servidores DNS externos.

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

Confirme seu ponto de extremidade de saída

Confirme se o ponto de extremidade de saída foi criado e alocado um endereço IP dentro da sub-rede atribuída.

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

Criar conjunto de regras de encaminhamento de resolvedor de DNS

Crie um conjunto de regras de encaminhamento DNS para o ponto de extremidade de saída que você criou.

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

Confirmar o conjunto de regras de encaminhamento de DNS

Confirme se o conjunto de regras de encaminhamento foi criado.

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

Os links de rede virtual permitem a resolução de nomes para redes virtuais vinculadas a um ponto de extremidade de saída com um conjunto de regras de encaminhamento 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>

Confirme se o link de rede virtual foi criado.

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

Crie uma segunda rede virtual para simular um ambiente local ou outro.

$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>

Confirme a segunda rede virtual

Confirme se a segunda rede virtual foi criada.

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

Criar regras de encaminhamento

Crie uma regra de encaminhamento para um conjunto de regras para um ou mais servidores DNS de destino. Você deve especificar o nome de domínio totalmente qualificado (FQDN) com um ponto à direita. O cmdlet New-AzDnsResolverTargetDnsServerObject define a porta padrão como 53, mas você também pode especificar uma porta exclusiva.

$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

Neste exemplo:

  • 10.0.0.4 é o ponto de extremidade de entrada do resolvedor.
  • 192.168.1.2 e 192.168.1.3 são servidores DNS locais.
  • 10.5.5.5 é um serviço DNS de proteção.

Importante

As regras mostradas neste início rápido são exemplos de regras que podem ser usadas para cenários específicos. Nenhuma das regras de encaminhamento descritas neste artigo é necessária. Tenha cuidado para testar suas regras de encaminhamento e garantir que as regras não causem problemas de resolução de DNS.

Se você incluir uma regra curinga em seu conjunto de regras, verifique se o serviço DNS de destino pode resolver nomes DNS públicos. Alguns serviços do Azure têm dependências na resolução de nomes públicos.

Teste o resolvedor privado

Agora você deve ser capaz de enviar tráfego DNS para seu resolvedor de DNS e resolver registros com base em seus conjuntos de regras de encaminhamento, incluindo:

  • Zonas privadas do DNS do Azure vinculadas à rede virtual onde o resolvedor está implantado.
  • Zonas DNS no namespace DNS público da Internet.
  • Zonas DNS privadas hospedadas localmente.

Excluir um resolvedor de DNS

Para excluir o resolvedor de DNS, os pontos de extremidade de entrada de recursos criados no resolvedor devem ser excluídos primeiro. Depois que os pontos de extremidade de entrada forem removidos, o resolvedor de DNS pai poderá ser excluído.

Excluir o ponto de extremidade de entrada

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

Excluir o conjunto de regras de encaminhamento DNS

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

Excluir o ponto de extremidade de saída

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

Excluir o resolvedor de DNS

Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup

Próximos passos