Início Rápido: criar um Resolvedor Privado de DNS do Azure usando o Azure PowerShell

Este artigo explica as etapas para criar sua primeira zona e registro de DNS privado usando o Azure PowerShell. Se preferir, você poderá concluir este início rápido usando o portal do Azure.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

O Resolvedor Privado de DNS do Azure é um novo serviço que permite que você consulte zonas DNS privadas do Azure de um ambiente local e vice-versa, sem implantar servidores 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 utilizada neste artigo:

Figura conceitual exibindo os componentes do resolvedor privado.

Pré-requisitos

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

Este artigo pressupõe que você instalou o modulo Az do Azure PowerShell.

Instalar o módulo do PowerShell Az.DnsResolver

Observação

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 desse módulo é a 0.2.1.

Get-InstalledModule -Name Az.DnsResolver

Definir o contexto da assinatura no Azure PowerShell

Conecte o PowerShell à nuvem do Azure.

Connect-AzAccount -Environment AzureCloud

Se várias assinaturas estiverem presentes, a primeira ID de assinatura será usada. Para especificar uma ID de assinatura diferente, use o comando a seguir.

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

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

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

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

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

Criar uma instância do Resolvedor de DNS

Importante

As etapas para verificar ou confirmar se os recursos foram criados com êxito não são opcionais. Não ignore estas etapas. 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, a localização é 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 está Conectado.

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

Criar um ponto de extremidade de entrada no resolvedor de DNS

Criar uma sub-rede na rede virtual

Crie uma sub-rede na rede virtual (Microsoft.Network/virtualNetworks/subnets) por meio do espaço de endereço IP atribuído anteriormente. A sub-rede precisa ter pelo menos /28 de 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 do local para outro local privado usando um endereço IP que faz parte do espaço de endereços da rede virtual privada.

Dica

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 fornecem 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 seguintes comandos para especificar um endereço IP estático. Não use os conjuntos de comandos dinâmicos e estáticos.

Especifique 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 fornecem 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

Confirmar seu ponto de extremidade de entrada

Confirme se o ponto de extremidade de entrada foi criado e alocado com 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 no resolvedor de DNS

Criar uma sub-rede na rede virtual

Crie uma sub-rede na rede virtual (Microsoft.Network/virtualNetworks/subnets) por meio do espaço de endereço IP atribuído 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 com 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

Confirmar 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 para resolvedor de DNS

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

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

Confirmar seu 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 habilitam a resolução de nomes para redes virtuais vinculadas a um ponto de extremidade de saída com um conjunto de regras de encaminhamento de 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 da 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 ambiente.

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

Confirmar 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 FQDN (nome de domínio totalmente qualificado) 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 os servidores DNS locais.
  • 10.5.5.5 é um serviço DNS protetor.

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 ao testar suas regras de encaminhamento para garantir que as regras não causem problemas de resolução de DNS.

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

Testar o resolvedor privado

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

  • Zonas privadas DNS do Azure vinculadas à rede virtual em que o resolvedor é implantado.
  • Zonas DNS no namespace DNS da Internet pública.
  • Zonas de DNS privado hospedadas localmente.

Excluir um resolvedor de DNS

Para excluir o resolvedor DNS, os pontos de extremidade de entrada do recurso 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 de 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óximas etapas