Condividi tramite


Avvio rapido: Creare un servizio Resolver privato DNS di Azure usando Azure PowerShell

Questo articolo illustra i passaggi per creare la prima zona DNS privata e il primo record con Azure PowerShell. Se si preferisce, è possibile completare questo avvio rapido usando il portale di Azure.

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.

Resolver privato di DNS di Azure è un nuovo servizio che consente agli utenti di eseguire query sulle zone DNS privato di Azure dall'ambiente locale e viceversa senza distribuire server DNS basati su macchine virtuali. Per altre informazioni, tra cui vantaggi, funzionalità e disponibilità a livello di area, vedere Che cos'è il Resolver privato DNS di Azure.

La figura seguente riepiloga la configurazione usata in questo articolo:

Figura concettuale che mostra i componenti del sistema di risoluzione privato.

Prerequisiti

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Questo articolo presuppone che sia stato installato il modulo Az Azure PowerShell.

Installare il modulo Az.DnsResolver di PowerShell

Nota

Se in precedenza è stato installato il modulo Az.DnsResolver per la valutazione durante l'anteprima privata, è possibile annullare la registrazione ed eliminare il PSRepository locale creato. Installare quindi la versione più recente del modulo Az.DnsResolver seguendo la procedura descritta in questo articolo.

Installare il modulo Az.DnsResolver.

Install-Module Az.DnsResolver

Verificare che il modulo Az.DnsResolver sia stato installato. La versione corrente di questo modulo è 0.2.1.

Get-InstalledModule -Name Az.DnsResolver

Impostare il contesto della sottoscrizione in Azure PowerShell

Connettere PowerShell al cloud di Azure.

Connect-AzAccount -Environment AzureCloud

Se sono presenti più sottoscrizioni, verrà usato il primo ID sottoscrizione. Per specificare un ID sottoscrizione diverso, usare il comando seguente.

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

Registrare lo spazio dei nomi del provider Microsoft.Network per l'account.

Prima di poter usare i servizi Microsoft.Network con la sottoscrizione di Azure, è necessario registrare lo spazio dei nomi Microsoft.Network:

Usare il comando seguente per registrare lo spazio dei nomi Microsoft.Network.

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

Creare un'istanza del resolver DNS

Importante

I passaggi per verificare o confermare che le risorse sono state create correttamente non sono facoltative. Non ignorare questi passaggi. I passaggi popolano le variabili che possono essere usate nelle procedure successive.

Creare un gruppo di risorse per ospitare le risorse. Il gruppo di risorse deve trovarsi in un'area supportata. In questo esempio la posizione è westcentralus.

New-AzResourceGroup -Name myresourcegroup -Location westcentralus

Creare una rete virtuale nel gruppo di risorse creato.

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

Creare un resolver DNS nella rete virtuale creata.

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

Verificare che il resolver DNS sia stato creato correttamente e che lo stato sia connesso (facoltativo). Nell'output, dnsResolverState è Connesso.

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

Creare un endpoint in ingresso del resolver DNS

Creare una subnet nella rete virtuale

Creare una subnet nella rete virtuale (Microsoft.Network/virtualNetworks/subnets) dallo spazio indirizzi IP assegnato in precedenza. Le dimensioni della subnet devono essere almeno /28 (16 indirizzi IP).

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

Creare l'endpoint in ingresso

Creare un endpoint in ingresso per abilitare la risoluzione dei nomi dall'ambiente locale o da un'altra posizione privata usando un indirizzo IP che fa parte dello spazio indirizzi della rete virtuale privata.

Suggerimento

Con PowerShell è possibile specificare l'indirizzo IP dell'endpoint in ingresso in modo che sia dinamico o statico.
Se l'indirizzo IP dell'endpoint viene specificato come dinamico, l'indirizzo non cambia a meno che l'endpoint non venga eliminato e sottoposto nuovamente a provisioning. In genere lo stesso indirizzo IP verrà nuovamente assegnato durante il provisioning.
Se l'indirizzo IP dell'endpoint è statico, può essere specificato e riutilizzato se l'endpoint viene nuovamente sottoposto a provisioning. L'indirizzo IP scelto non può essere un indirizzo IP riservato nella subnet.

I comandi seguenti effettuano il provisioning di un indirizzo IP dinamico:

$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

Usare i comandi seguenti per specificare un indirizzo IP statico. Non usare set di comandi dinamici e statici.

È necessario specificare un indirizzo IP nella subnet creata in precedenza. L'indirizzo IP scelto non può essere un indirizzo IP riservato nella subnet.

I comandi seguenti effettuano il provisioning di un indirizzo IP statico:

$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

Verificare l'endpoint in ingresso

Verificare che l'endpoint in ingresso sia stato creato e che sia stato allocato un indirizzo IP all'interno della subnet assegnata.

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

Creare un endpoint in uscita del resolver DNS

Creare una subnet nella rete virtuale

Creare una subnet nella rete virtuale (Microsoft.Network/virtualNetworks/subnets) dallo spazio indirizzi IP assegnato in precedenza, diverso dalla subnet in ingresso (snet-inbound). Anche la subnet in uscita deve avere una dimensione di almeno /28 (16 indirizzi IP).

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

Creare l'endpoint in uscita

Un endpoint in uscita consente la risoluzione dei nomi di inoltro condizionale da Azure a server DNS esterni.

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

Confermare l'endpoint in uscita

Verificare che l'endpoint in uscita sia stato creato e allocato un indirizzo IP all'interno della subnet assegnata.

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

Creare un set di regole di inoltro del resolver DNS

Creare un set di regole di inoltro DNS per l'endpoint in uscita creato.

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

Verificare il set di regole di inoltro DNS

Verificare che il set di regole di inoltro sia stato creato.

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

I collegamenti di rete virtuale consentono la risoluzione dei nomi per le reti virtuali collegate a un endpoint in uscita con un set di regole di inoltro 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>

Verificare che il collegamento alla rete virtuale sia stato creato.

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

Creare una seconda rete virtuale per simulare un ambiente locale o un altro 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>

Verificare la seconda rete virtuale

Verificare che la seconda rete virtuale sia stata creata.

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

Creare regole di inoltro

Creare una regola di inoltro per un set di regole a uno o più server DNS di destinazione. È necessario specificare il nome di dominio completo (FQDN) con un punto finale. Il cmdlet New-AzDnsResolverTargetDnsServerObject imposta la porta predefinita su 53, ma è anche possibile specificare una porta univoca.

$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

In questo esempio:

  • 10.0.0.4 è l'endpoint in ingresso del resolver.
  • 192.168.1.2 e 192.168.1.3 sono server DNS locali.
  • 10.5.5.5 è un servizio DNS protettivo.

Importante

Le regole illustrate in questa guida introduttiva sono esempi di regole che possono essere usate per scenari specifici. Nessuna delle regole di foward descritte in questo articolo è obbligatoria. Prestare attenzione a testare le regole di inoltro e assicurarsi che le regole non causino problemi di risoluzione DNS.

Se si include una regola con caratteri jolly nel set di regole, assicurarsi che il servizio DNS di destinazione possa risolvere i nomi DNS pubblici. Alcuni servizi di Azure hanno dipendenze dalla risoluzione dei nomi pubblici.

Testare il resolver privato

Dovrebbe ora essere possibile inviare il traffico DNS al resolver DNS e risolvere i record in base ai set di regole di inoltro, tra cui:

  • Zone private DNS di Azure collegate alla rete virtuale in cui viene distribuito il resolver.
  • Zone DNS nello spazio dei nomi DNS Internet pubblico.
  • Zone DNS privato ospitate in locale.

Eliminare un resolver DNS

Per eliminare il resolver DNS, è necessario prima eliminare gli endpoint in ingresso della risorsa creati all'interno del resolver. Dopo aver rimosso gli endpoint in ingresso, il resolver DNS padre può essere eliminato.

Eliminare l'endpoint in ingresso

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

Eliminare il set di regole di inoltro DNS

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

Eliminare l'endpoint in uscita

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

Eliminare il resolver DNS

Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup

Passaggi successivi