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 :
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()
Créer un lien de réseau virtuel vers un ensemble de règles de transfert DNS
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érifier le lien de réseau virtuel
Vérifiez que le lien de réseau virtuel a bien été créé.
$virtualNetworkLink = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
$virtualNetworkLink.ToJsonString()
Créer un deuxième réseau virtuel et le lier à votre ensemble de règles de transfert DNS
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
Supprimer le lien de réseau virtuel
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