Démarrage rapide : Créer une zone Azure DNS Private Resolver avec Azure PowerShell

Cet article vous indique la procédure à suivre pour créer votre premier enregistrement et votre première zone DNS privée à l’aide d’Azure PowerShell. Si vous préférez, vous pouvez suivre ce guide de démarrage rapide depuis le portail Azure.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Azure DNS Private Resolver est un nouveau service qui vous permet d’interroger des zones privées Azure DNS à partir d’un environnement local, et vice versa, sans déployer de serveurs DNS basés sur des machines virtuelles. Pour plus d’informations, notamment sur les avantages, les fonctionnalités et la disponibilité régionale, consultez Qu’est-ce qu’Azure DNS Private Resolver.

La figure suivante récapitule la configuration utilisée dans cet article :

Figure conceptuelle affichant des composants du programme de résolution privé.

Prérequis

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Cet article suppose que vous avez installé le module Azure PowerShell Az.

Installer le module PowerShell Az.DnsResolver

Notes

Si vous avez déjà installé le module Az.DnsResolver pour l’évaluation lors de la préversion privée, vous pouvez annuler l’inscription et supprimer le répertoire PSRepository local créé. Ensuite, installez la dernière version du module Az.DnsResolver en suivant les étapes dans cet article.

Installez le module Az.DnsResolver.

Install-Module Az.DnsResolver

Vérifiez que le module Az.DnsResolver a été installé. La version actuelle de ce module est 0.2.1.

Get-InstalledModule -Name Az.DnsResolver

Définissez le contexte d’abonnement dans Azure PowerShell

Connectez PowerShell au cloud Azure.

Connect-AzAccount -Environment AzureCloud

S’il existe plusieurs abonnements, le premier ID d’abonnement est utilisé. Pour spécifier un ID d’abonnement différent, utilisez la commande suivante.

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

Inscrivez l’espace de noms du fournisseur Microsoft.Network pour votre compte.

Avant de pouvoir utiliser les services Microsoft.Network avec votre abonnement Azure, vous devez inscrire l’espace de noms Microsoft.Network :

Utilisez la commande suivante pour inscrire l’espace de noms Microsoft.Network.

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

Créer une instance de résolveur DNS

Important

Les étapes permettant de vérifier ou de confirmer que les ressources ont été correctement créées ne sont pas facultatives. N’ignorez pas ces étapes. Les étapes remplissent les variables qui peuvent être utilisées dans les procédures ultérieures.

Créez un groupe de ressources pour héberger les ressources. Le groupe de ressources doit se trouver dans une région prise en charge. Dans cet exemple, l’emplacement est westcentralus.

New-AzResourceGroup -Name myresourcegroup -Location westcentralus

Créez un réseau virtuel dans le groupe de ressources que vous avez créé.

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

Créez un résolveur DNS dans le réseau virtuel que vous avez créé.

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

Vérifiez que le résolveur DNS a été créé avec succès et que l’état est connecté (facultatif). Dans la sortie, dnsResolverState est Connecté.

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

Créer un point de terminaison entrant pour le résolveur DNS

Créer un sous-réseau dans le réseau virtuel

Créez un sous-réseau dans le réseau virtuel (Microsoft.Network/réseauxvirtuels/sousréseaux) à partir de l’espace d’adressage IP que vous avez affecté précédemment. La taille du sous-réseau doit être d’au moins /28 (16 adresses IP).

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

Créer le point de terminaison entrant

La création d’un point de terminaison entrant active la résolution de noms à partir d’un emplacement local ou d’un autre emplacement privé, via une adresse IP qui fait partie de votre espace d’adressage de réseau virtuel privé.

Conseil

À l’aide de PowerShell, vous pouvez spécifier l’adresse IP du point de terminaison entrant comme étant dynamique ou statique.
Si l’adresse IP du point de terminaison est spécifiée comme dynamique, l’adresse ne change pas, sauf si le point de terminaison est supprimé et réapprovisionné. La même adresse IP est généralement réaffectée pendant le réapprovisionnement.
Si l’adresse IP du point de terminaison est statique, elle peut être indiquée et réutilisée si le point de terminaison est réapprovisionné. L’adresse IP que vous choisissez ne peut pas être une adresse IP réservée dans le sous-réseau.

Les commandes suivantes approvisionnent une adresse IP dynamique :

$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

Utilisez les commandes suivantes pour spécifier une adresse IP statique. N'utilisez pas à la fois l’ensemble de commandes dynamiques et statiques.

Vous devez spécifier une adresse IP dans le sous-réseau créé précédemment. L’adresse IP que vous choisissez ne peut pas être une adresse IP réservée dans le sous-réseau.

Les commandes suivantes approvisionnent une adresse IP statique :

$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

Vérifier votre point de terminaison entrant

Vérifiez que le point de terminaison entrant a été créé et qu’une adresse IP lui a été attribuée au sein du sous-réseau affecté.

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

Créer un point de terminaison sortant pour le résolveur DNS

Créer un sous-réseau dans le réseau virtuel

Créez un sous-réseau dans le réseau virtuel (Microsoft.Network/réseauxvirtuels/sousréseaux) à partir de l’espace d’adressage IP que vous avez affecté précédemment, différent de votre sous-réseau entrant (snet-inbound). Le sous-réseau sortant doit également avoir une taille d’au moins /28 (16 adresses IP).

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

Créer le point de terminaison sortant

Un point de terminaison sortant active la résolution de noms de transfert conditionnel d’Azure vers des serveurs DNS externes.

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

Vérifier votre point de terminaison sortant

Vérifiez que le point de terminaison sortant a été créé et qu’une adresse IP lui a été attribuée au sein du sous-réseau affecté.

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

Créer un ensemble de règles de transfert pour le résolveur DNS

Créez un ensemble de règles de transfert DNS pour le point de terminaison sortant que vous avez créé.

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

Vérifier votre ensemble de règles de transfert DNS

Vérifiez que l’ensemble de règles de transfert a été créé.

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

Les liens de réseau virtuel activent la résolution de noms pour les réseaux virtuels liés à un point de terminaison sortant avec un ensemble de règles de transfert 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>

Vérifiez que le lien de réseau virtuel a bien été créé.

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

Créez un deuxième réseau virtuel pour simuler un environnement local ou autre.

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

Vérifier le deuxième réseau virtuel

Vérifiez que le deuxième réseau virtuel a bien été créé.

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

Créer des règles de transfert

Créez une règle de transfert pour un ensemble de règles vers un ou plusieurs serveurs DNS cibles. Vous devez spécifier le nom de domaine complet (FQDN) avec un point de fin. La cmdlet New-AzDnsResolverTargetDnsServerObject définit le port 53 comme port par défaut, mais vous pouvez également spécifier un port unique.

$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

Dans cet exemple :

  • L’adresse 10.0.0.4 correspond au point de terminaison entrant du programme de résolution.
  • 192.168.1.2 et 192.168.1.3 sont des serveurs DNS locaux.
  • L’adresse 10.5.5.5 est un service DNS protecteur.

Important

Les règles présentées dans ce guide de démarrage rapide sont des exemples de règles qui peuvent être utilisées pour des scénarios spécifiques. Aucune des règles de transfert décrites dans cet article n'est requise. Veillez à tester vos règles de transfert et à vous assurer que les règles ne provoquent pas de problèmes de résolution DNS.

Si vous incluez une règle générique dans votre ensemble de règles, vérifiez que le service DNS cible peut résoudre les noms DNS publics. Certains services Azure dépendent de la résolution de noms publics.

Tester le résolveur privé

Vous devez maintenant être en mesure d’envoyer le trafic DNS vers votre résolveur DNS et de résoudre les enregistrements en fonction de vos ensembles de règles de transfert, notamment :

  • Zones privées Azure DNS liées au réseau virtuel où le résolveur est déployé.
  • Zones DNS dans l’espace de noms DNS Internet public.
  • Zones DNS privées hébergées localement.

Supprimer un résolveur DNS

Pour supprimer le résolveur DNS, les points de terminaison entrants de ressources créés dans ce résolveur doivent d’abord être supprimés. Une fois les points de terminaison entrants supprimés, le résolveur DNS parent peut être supprimé.

Supprimer le point de terminaison entrant

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

Supprimer l’ensemble de règles de transfert DNS

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

Supprimer le point de terminaison sortant

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

Supprimer le résolveur DNS

Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup

Étapes suivantes