Avvio rapido - Creare una zona DNS privato di Azure con Azure PowerShell
Questo articolo illustra i passaggi per creare la prima zona DNS privata e il primo record con Azure PowerShell.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Una zona DNS viene usata per ospitare i record DNS per un dominio specifico. Per iniziare a ospitare il dominio in DNS di Azure, è necessario creare una zona DNS per il nome di dominio. Ogni record DNS per il dominio viene quindi creato all'interno di questa zona DNS. Per pubblicare una zona DNS privata nella rete virtuale, è necessario specificare l'elenco di reti virtuali che possono risolvere i record all'interno della zona. Tali reti vengono definite reti virtuali collegate. Se è abilitata la registrazione automatica, DNS di Azure aggiorna anche i record di zona ogni volta che una macchina virtuale viene creata o eliminata o quando cambia il relativo indirizzo IP.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Se si preferisce, è possibile completare questo avvio rapido usando l'interfaccia della riga di comando di Azure.
Azure Cloud Shell
Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice contenuto in questo articolo senza dover installare strumenti nell'ambiente locale.
Per avviare Azure Cloud Shell:
Opzione | Esempio/Collegamento |
---|---|
Selezionare Prova nell'angolo superiore destro di un blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. | |
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. | |
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. |
Per usare Azure Cloud Shell:
Avviare Cloud Shell.
Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.
Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux o selezionando CMD+MAIUSC+V in macOS.
Premere INVIO per eseguire il codice o il comando.
Creare il gruppo di risorse
Innanzitutto, creare un gruppo di risorse per contenere la zona DNS:
New-AzResourceGroup -name MyAzureResourceGroup -location "eastus"
Creare una zona DNS privato
Viene creata una zona DNS con il cmdlet New-AzPrivateDnsZone
.
L'esempio seguente crea una rete virtuale denominata myAzureVNet. Viene quindi creata una zona DNS denominata private.contoso.com nel gruppo di risorse MyAzureResourceGroup. Dopo il collegamento della zona DNS alla rete virtuale MyAzureVnet viene abilitata la registrazione automatica.
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 si vuole creare una zona solo per la risoluzione dei nomi (senza la creazione automatica dei nomi host), è possibile omettere il parametro -EnableRegistration
.
Elencare le zone DNS private
Omettendo il nome della zona da Get-AzPrivateDnsZone
, è possibile enumerare tutte le zone in un gruppo di risorse. Questa operazione restituisce una matrice di oggetti di zona.
$zones = Get-AzPrivateDnsZone -ResourceGroupName MyAzureResourceGroup
$zones
Omettendo il nome della zona e il nome del gruppo di risorse da Get-AzPrivateDnsZone
, è possibile enumerare tutte le zone nella sottoscrizione di Azure.
$zones = Get-AzPrivateDnsZone
$zones
Creare le macchine virtuali di test
A questo punto, creare due macchine virtuali in modo da testare la zona DNS privata:
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
La creazione della macchina virtuale richiederà alcuni minuti.
Creare un record DNS aggiuntivo
I set di record vengono creati usando il cmdlet New-AzPrivateDnsRecordSet
. L'esempio seguente crea un record con il nome relativo db nella zona DNS private.contoso.com nel gruppo di risorse MyAzureResourceGroup. Il nome completo del set di record è db.private.contoso.com. Il tipo di record è "A", con indirizzo IP "10.2.0.4", e la durata (TTL) è 3600 secondi.
New-AzPrivateDnsRecordSet -Name db -RecordType A -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Ttl 3600 `
-PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address "10.2.0.4")
Visualizzare i record DNS
Per elencare i record DNS nella zona, eseguire:
Get-AzPrivateDnsRecordSet -ZoneName private.contoso.com -ResourceGroupName MyAzureResourceGroup
Testare la zona privata
A questo punto è possibile testare la risoluzione dei nomi per la zona privata private.contoso.com.
Configurare le macchine virtuali per consentire il traffico ICMP in entrata
È possibile usare il comando ping per testare la risoluzione dei nomi. Configurare quindi il firewall in entrambe le macchine virtuali per consentire i pacchetti ICMP in ingresso.
Connettersi a myVM01 usando il nome utente e la password usati durante la creazione della macchina virtuale.
Aprire una finestra di Windows PowerShell con privilegi amministrativi.
Esegui questo comando:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
Ripetere l'operazione per myVM02.
Effettuare il ping delle macchine virtuali in base al nome
Dal prompt dei comandi di Windows PowerShell in myVM02, effettuare il ping di myVM01 usando il nome host registrato automaticamente:
ping myVM01.private.contoso.com
Verrà visualizzato un output simile al seguente:
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:\>
Ora effettuare il ping del nome db creato in precedenza:
ping db.private.contoso.com
Verrà visualizzato un output simile al seguente:
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:\>
Pulire le risorse
Quando non è più necessario, eliminare il gruppo di risorse MyAzureResourceGroup per eliminare le risorse create in questo articolo.
Remove-AzResourceGroup -Name MyAzureResourceGroup