Configurer le transfert DNS pour Azure Files à l’aide de machines virtuelles ou d’Azure DNS Private Resolver
Azure Files vous permet de créer des points de terminaison privés pour les comptes de stockage contenant vos partages de fichiers. Bien qu’utiles pour une grande variété d’applications, les points de terminaison privés le sont particulièrement lorsque vous devez vous connecter à vos partages de fichiers Azure à partir de votre réseau local, à l’aide d’une connexion VPN ou ExpressRoute avec appairage privé.
Pour que les connexions à votre compte de stockage passent par le tunnel réseau, le nom de domaine complet (FQDN) de votre compte de stockage doit être résolu en adresse IP privée de votre point de terminaison privé. Pour ce faire, vous devez transférer le suffixe du point de terminaison de stockage (core.windows.net
pour les régions du cloud public) au service de DNS privé d’Azure, qui est accessible à partir de votre réseau virtuel. Ce guide explique comment configurer le transfert DNS pour résoudre correctement l’adresse IP du point de terminaison privé de votre compte de stockage.
Avant d’effectuer les étapes décrites dans cet article, nous vous recommandons fortement de lire Planification d’un déploiement Azure Files et Considérations relatives aux réseaux Azure Files.
S’applique à
Type de partage de fichiers | SMB | NFS |
---|---|---|
Partages de fichiers Standard (GPv2), LRS/ZRS | ||
Partages de fichiers Standard (GPv2), GRS/GZRS | ||
Partages de fichiers Premium (FileStorage), LRS/ZRS |
Vue d’ensemble
Azure Files fournit les types de points de terminaison suivants pour accéder aux partages de fichiers Azure :
- Les points de terminaison publics, qui ont une adresse IP publique et sont accessibles partout dans le monde.
- Les points de terminaison privés, qui existent au sein d’un réseau virtuel et ont une adresse IP privée comprise dans l’espace d’adressage de ce réseau virtuel.
- Points de terminaison de service, qui limitent l’accès au point de terminaison public à certains réseaux virtuels. Vous accédez toujours au compte de stockage via l’adresse IP publique, mais l’accès est uniquement possible à partir des emplacements spécifiés dans votre configuration.
Le compte de stockage Azure comprend à la fois des points de terminaison publics et des points de terminaison privés. Un compte de stockage est une construction de gestion qui représente un pool de stockage partagé dans lequel vous pouvez déployer plusieurs partages de fichiers, ainsi que d’autres ressources de stockage, telles que des conteneurs d’objets blob ou des files d’attente.
Chaque compte de stockage a un nom de domaine complet (FQDN). Pour les régions du cloud public, ce nom de domaine complet suit le modèle storageaccount.file.core.windows.net
, où storageaccount
correspond au nom du compte de stockage. Lorsque vous exécutez des requêtes sur ce nom (par exemple, pour monter le partage sur votre station de travail), votre système d'exploitation effectue une recherche DNS pour résoudre le nom de domaine complet en une adresse IP.
Par défaut, storageaccount.file.core.windows.net
est résolu en l’adresse IP du point de terminaison public. Le point de terminaison public d’un compte de stockage est hébergé sur un cluster de stockage Azure qui héberge les points de terminaison publics de nombreux autres comptes de stockage. Lorsque vous créez un point de terminaison privé, une zone DNS privée est associée au réseau virtuel auquel elle a été ajoutée, et un enregistrement CNAME mappe storageaccount.file.core.windows.net
à une entrée d’enregistrement A pour l’adresse IP privée du point de terminaison privé de votre compte de stockage. Cela vous permet d’utiliser le nom de domaine complet storageaccount.file.core.windows.net
dans le réseau virtuel et de le résoudre en l’adresse IP du point de terminaison privé.
Étant donné que l’objectif ultime est d’accéder aux partages de fichiers Azure qui sont hébergés dans le compte de stockage à partir d’un emplacement local et à l’aide d’un tunnel réseau, tel qu’une connexion VPN ou ExpressRoute, vous devez configurer vos serveurs DNS locaux pour qu’ils transfèrent les requêtes envoyées au service Azure Files vers le service DNS privé Azure.
Vous pouvez configurer le transfert DNS de l’une des deux manières suivantes :
Utilisation des machines virtuelles du serveur DNS : configurez le transfert conditionnel de
*.core.windows.net
(ou le suffixe du point de terminaison de stockage approprié pour les clouds nationaux US Government, Allemagne ou Chine) sur la machine virtuelle d’un serveur DNS hébergé dans votre réseau virtuel Azure. Ce serveur DNS transfère ensuite la requête de manière récursive au service DNS privé d’Azure, qui résoudra le nom de domaine complet du compte de stockage en l’adresse IP privée appropriée. Il s’agit d’une étape unique pour tous les partages de fichiers Azure hébergés dans votre réseau virtuel.Utilisation d’Azure DNS Private Resolver : si vous ne souhaitez pas déployer un serveur DNS basé sur une machine virtuelle, vous pouvez effectuer la même tâche à l’aide d’Azure DNS Private Resolver.
Outre Azure Files, les requêtes de résolution de noms DNS pour tous les autres services de stockage Azure (Stockage Blob Azure, Stockage Table Azure, Stockage File d’attente Azure, etc.) sont transférées vers le service DNS privé d’Azure. Vous pouvez ajouter des points de terminaison supplémentaires pour d’autres services Azure si vous le souhaitez.
Prérequis
Avant de pouvoir configurer le transfert DNS vers Azure Files, vous avez besoin des éléments suivants :
- Un compte de stockage contenant le partage de fichiers Azure que vous souhaitez monter. Pour savoir comment créer un compte de stockage et un partage de fichiers Azure, consultez Créer un partage de fichiers Azure.
- Un point de terminaison privé pour le compte de stockage. Consultez Créer un point de terminaison privé.
- La dernière version du module Azure PowerShell
Configurer le transfert DNS à l’aide de machines virtuelles
Si des serveurs DNS sont déjà en place dans votre réseau virtuel Azure, ou si vous préférez déployer vos propres machines virtuelles de serveur DNS, quelle que soit la méthodologie utilisée par votre organisation, vous pouvez configurer le DNS à l'aide des cmdlets PowerShell intégrées au serveur DNS.
Important
Ce guide part du principe que vous utilisez le serveur DNS au sein de Windows Server dans votre environnement local. Toutes les étapes décrites ici sont valables pour n’importe quel serveur DNS, et non uniquement le serveur DNS Windows.
Sur vos serveurs DNS locaux, créez un redirecteur conditionnel à l’aide de Add-DnsServerConditionalForwarderZone
. Ce redirecteur conditionnel doit être déployé sur tous vos serveurs DNS locaux afin de transférer correctement le trafic vers Azure. N’oubliez pas de remplacer les entrées <azure-dns-server-ip>
par les adresses IP correspondant à votre environnement.
$vnetDnsServers = "<azure-dns-server-ip>", "<azure-dns-server-ip>"
$storageAccountEndpoint = Get-AzContext | `
Select-Object -ExpandProperty Environment | `
Select-Object -ExpandProperty StorageEndpointSuffix
Add-DnsServerConditionalForwarderZone `
-Name $storageAccountEndpoint `
-MasterServers $vnetDnsServers
Sur les serveurs DNS de votre réseau virtuel Azure, vous devez également mettre en place un redirecteur afin que les requêtes destinées à la zone DNS du compte de stockage soient dirigées vers le service DNS privé Azure, qui est accessible via l’adresse IP réservée 168.63.129.16
. (N'oubliez pas de renseigner $storageAccountEndpoint
si vous exécutez les commandes dans une autre session PowerShell).
Add-DnsServerConditionalForwarderZone `
-Name $storageAccountEndpoint `
-MasterServers "168.63.129.16"
Configurer le transfert DNS à l’aide d’Azure DNS Private Resolver
Si vous préférez ne pas déployer de machines virtuelles de serveur DNS, vous pouvez effectuer la même tâche à l’aide d’Azure DNS Private Resolver. Consultez Créer une instance Azure DNS Private Resolver en utilisant le Portail Azure.
Il n’y a aucune différence dans la façon dont vous configurez vos serveurs DNS locaux, sauf qu’au lieu de pointer vers les adresses IP des serveurs DNS dans Azure, vous pointez vers l’adresse IP du point de terminaison entrant du programme de résolution. Le programme de résolution ne nécessite aucune configuration, car il transfère les requêtes au serveur DNS privé Azure par défaut. Si une zone DNS privée est liée au réseau virtuel sur lequel le programme de résolution est déployé, ce dernier peut répondre avec les enregistrements de cette zone DNS.
Avertissement
Lors de la configuration des redirecteurs pour la zone core.windows.net, toutes les requêtes pour ce domaine public sont transférées à votre infrastructure Azure DNS. Cela provoque un problème lorsque vous essayez d’accéder à un compte de stockage d’un autre locataire qui a été configuré avec des points de terminaison privés, car Azure DNS répond à la requête pour le nom public du compte de stockage avec un CNAME qui n’existe pas dans votre zone DNS privée. Une solution de contournement à ce problème consiste à créer un point de terminaison privé interlocataire dans votre environnement pour vous connecter à ce compte de stockage.
Pour configurer le transfert DNS à l’aide d’Azure DNS Private Resolver, exécutez ce script sur vos serveurs DNS locaux. Remplacez <resolver-ip>
par l’adresse IP du point de terminaison entrant du programme de résolution.
$privateResolver = "<resolver-ip>"
$storageAccountEndpoint = Get-AzContext | `
Select-Object -ExpandProperty Environment | `
Select-Object -ExpandProperty StorageEndpointSuffix
Add-DnsServerConditionalForwarderZone `
-Name $storageAccountEndpoint `
-MasterServers $privateResolver
Vérifier les redirecteurs DNS
Avant de vérifier si les redirecteurs DNS ont été correctement appliqués, nous vous recommandons de vider le cache DNS de votre station de travail locale à l’aide de Clear-DnsClientCache
. Pour vérifier si vous pouvez résoudre correctement le nom de domaine complet de votre compte de stockage, utilisez Resolve-DnsName
ou nslookup
.
# Replace storageaccount.file.core.windows.net with the appropriate FQDN for your storage account.
# Note that the proper suffix (core.windows.net) depends on the cloud you're deployed in.
Resolve-DnsName -Name storageaccount.file.core.windows.net
Si la résolution de noms réussit, vous devez voir que l’adresse IP résolue correspond à l’adresse IP de votre compte de stockage.
Name Type TTL Section NameHost
---- ---- --- ------- --------
storageaccount.file.core.windows. CNAME 29 Answer csostoracct.privatelink.file.core.windows.net
net
Name : storageaccount.privatelink.file.core.windows.net
QueryType : A
TTL : 1769
Section : Answer
IP4Address : 192.168.0.4
Si vous montez un partage de fichiers SMB, vous pouvez également utiliser la commande Test-NetConnection
pour vérifier qu'une connexion TCP peut être établie avec succès avec votre compte de stockage.
Test-NetConnection -ComputerName storageaccount.file.core.windows.net -CommonTCPPort SMB