Início Rápido: Criar uma zona DNS privada 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.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Uma zona DNS é usada para hospedar os registros DNS para um domínio específico. Para iniciar a hospedagem do seu domínio no DNS do Azure, você precisará criar uma zona DNS para esse nome de domínio. Cada registro DNS para seu domínio é criado dentro dessa zona DNS. Para publicar uma zona de DNS privado em sua rede virtual, você deve especificar a lista de redes virtuais que podem resolver registros na zona. Elas são chamadas de redes virtuais vinculadas. Quando o registro automático estiver habilitado, o DNS do Azure também atualizará os registros de zona sempre que ocorrer a criação de uma máquina virtual, o endereço IP dela mudar ou ela for excluída.
Pré-requisitos
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Se preferir, poderá concluir este início rápido usando a CLI do Azure.
Azure Cloud Shell
O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção | Exemplo/Link |
---|---|
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. | |
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. | |
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. |
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou o comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux, ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou o comando.
Criar o grupo de recursos
Primeiro, crie um grupo de recursos para conter a zona DNS:
New-AzResourceGroup -name MyAzureResourceGroup -location "eastus"
Criar uma zona DNS privada
Uma zona DNS é criada usando o cmdlet New-AzPrivateDnsZone
.
O seguinte exemplo cria uma rede virtual chamada myAzureVNet. Em seguida, ele cria uma zona DNS chamada private.contoso.com no grupo de recursos MyAzureResourceGroup, vincula a zona DNS à rede virtual MyAzureVnet e habilita o registro automático.
Install-Module -Name Az.PrivateDns -force
$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.2.0.0/24"
$vnet = New-AzVirtualNetwork `
-ResourceGroupName MyAzureResourceGroup `
-Location eastus `
-Name myAzureVNet `
-AddressPrefix 10.2.0.0/16 `
-Subnet $backendSubnet
$zone = New-AzPrivateDnsZone -Name private.contoso.com -ResourceGroupName MyAzureResourceGroup
$link = New-AzPrivateDnsVirtualNetworkLink -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Name "mylink" `
-VirtualNetworkId $vnet.id -EnableRegistration
Se você quiser criar uma zona apenas para a resolução de nomes (sem registro de nome do host automático), poderá omitir o parâmetro -EnableRegistration
.
Listar zonas de DNS privado
Omitindo o nome da zona de Get-AzPrivateDnsZone
, você pode enumerar todas as zonas em um grupo de recursos. Essa operação retorna uma matriz de objetos de zona.
$zones = Get-AzPrivateDnsZone -ResourceGroupName MyAzureResourceGroup
$zones
Omitindo o nome da zona e o nome do grupo de recursos do Get-AzPrivateDnsZone
, você pode enumerar todas as regiões na assinatura do Azure.
$zones = Get-AzPrivateDnsZone
$zones
Criar as máquinas virtuais de teste
Agora, crie duas máquinas virtuais para que você possa testar a zona DNS privada:
New-AzVm `
-ResourceGroupName "myAzureResourceGroup" `
-Name "myVM01" `
-Location "East US" `
-subnetname backendSubnet `
-VirtualNetworkName "myAzureVnet" `
-addressprefix 10.2.0.0/24 `
-OpenPorts 3389
New-AzVm `
-ResourceGroupName "myAzureResourceGroup" `
-Name "myVM02" `
-Location "East US" `
-subnetname backendSubnet `
-VirtualNetworkName "myAzureVnet" `
-addressprefix 10.2.0.0/24 `
-OpenPorts 3389
A conclusão das duas máquinas virtuais vai demorar alguns minutos.
Criar um registro DNS adicional
Você cria conjuntos de registros usando o cmdlet New-AzPrivateDnsRecordSet
. O exemplo a seguir cria um registro com o nome relativo db na Zona DNS private.contoso.com no grupo de recursos MyAzureResourceGroup. O nome totalmente qualificado do conjunto de registros é db.private.contoso.com. O tipo de registro é "A", com o endereço IP "10.2.0.4" e a TTL de 3600 segundos.
New-AzPrivateDnsRecordSet -Name db -RecordType A -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Ttl 3600 `
-PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address "10.2.0.4")
Exibir registros DNS
Para listar os registros DNS em sua zona, execute:
Get-AzPrivateDnsRecordSet -ZoneName private.contoso.com -ResourceGroupName MyAzureResourceGroup
Testar a zona privada
Agora você pode testar a resolução de nome para a zona privada private.contoso.com.
Configurar VMs para permitir ICMP de entrada
Você pode usar o comando ping para testar a resolução de nome. Portanto, configure o firewall em ambas as máquinas virtuais para permitir pacotes ICMP de entrada.
Conecte-se a myVM01 usando o nome de usuário e a senha que você usou ao criar a VM.
Abra uma janela do Windows PowerShell com privilégios de administrador.
Execute o comando a seguir:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
Repita para myVM02.
Executar ping de VMs por nome
No prompt de comando do Windows PowerShell myVM02, execute ping em myVM01 usando o nome de host registrado automaticamente:
ping myVM01.private.contoso.com
Você deve ver uma saída semelhante ao que é mostrado abaixo:
PS C:\> ping myvm01.private.contoso.com Pinging myvm01.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time=1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms PS C:\>
Execute ping no nome db que você criou anteriormente:
ping db.private.contoso.com
Você deve ver uma saída semelhante ao que é mostrado abaixo:
PS C:\> ping db.private.contoso.com Pinging db.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milliseconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PS C:\>
Limpar os recursos
Quando não for mais necessário, exclua o grupo de recursos MyAzureResourceGroup para excluir os recursos criados neste artigo.
Remove-AzResourceGroup -Name MyAzureResourceGroup