Configurare l'inoltro DNS per File di Azure usando macchine virtuali o resolver privato DNS di Azure

File di Azure consente di creare endpoint privati per gli account di archiviazione contenenti condivisioni file. Oltre che per molte applicazioni diverse, gli endpoint privati sono particolarmente utili per connettersi alle condivisioni file di Azure dalla rete locale tramite una connessione VPN o ExpressRoute con peering privato.

Per consentire alle connessioni all'account di archiviazione di passare attraverso il tunnel di rete, il nome di dominio completo (FQDN) dell'account di archiviazione deve essere risolto nell'indirizzo IP privato dell'endpoint privato. A tale scopo, è necessario inoltrare il suffisso dell'endpoint di archiviazione (core.windows.net per le aree del cloud pubblico) al servizio DNS privato di Azure accessibile dall'interno della rete virtuale. Questa guida illustra come impostare e configurare l'inoltro DNS per la corretta risoluzione nell'indirizzo IP dell'endpoint privato dell'account di archiviazione.

Prima di completare la procedura di questo articolo, è consigliabile leggere Pianificazione della distribuzione di File di Azure e Pianificazione della distribuzione di Sincronizzazione file di Azure.

Si applica a

Tipo di condivisione file SMB NFS
Condivisioni file Standard (GPv2), archiviazione con ridondanza locale/archiviazione con ridondanza della zona Sì No
Condivisioni file Standard (GPv2), archiviazione con ridondanza geografica/archiviazione con ridondanza geografica della zona Sì No
Condivisioni file Premium (FileStorage), archiviazione con ridondanza locale/archiviazione con ridondanza della zona Sì Sì

Panoramica

File di Azure fornisce i tipi di endpoint seguenti per l'accesso alle condivisioni file di Azure:

  • Endpoint pubblici, che hanno un indirizzo IP pubblico e sono accessibili da qualsiasi parte del mondo.
  • Endpoint privati, presenti all'interno di una rete virtuale, che hanno un indirizzo IP privato all'interno dello spazio di indirizzi della rete virtuale.
  • Endpoint di servizio, che limitano l'accesso all'endpoint pubblico a reti virtuali specifiche. È comunque possibile accedere all'account di archiviazione tramite l'indirizzo IP pubblico, ma l'accesso è possibile solo dalle posizioni specificate nella configurazione.

Gli endpoint pubblici e privati sono disponibili nell'account di archiviazione di Azure. Un account di archiviazione è un costrutto di gestione che rappresenta un pool di archiviazione condiviso in cui è possibile distribuire più condivisioni file oltre ad altre risorse di archiviazione, ad esempio contenitori BLOB o code.

Ogni account di archiviazione è associato a un nome di dominio completo (FQDN). Per le aree del cloud pubblico, questo nome FQDN segue il modello storageaccount.file.core.windows.net, dove storageaccount è il nome dell'account di archiviazione. Quando si effettuano richieste su questo nome, ad esempio il montaggio della condivisione nella workstation, il sistema operativo esegue una ricerca DNS per risolvere il nome di dominio completo in un indirizzo IP.

Per impostazione predefinita, storageaccount.file.core.windows.net viene risolto nell'indirizzo IP dell'endpoint pubblico. L'endpoint pubblico per un account di archiviazione è ospitato in un cluster di archiviazione di Azure che ne ospita molti altri. Quando si crea un endpoint privato, una zona DNS privato viene collegata alla rete virtuale a cui è stata aggiunta, con il mapping di un record CNAME storageaccount.file.core.windows.net a una voce di record A per l'indirizzo IP privato dell'endpoint privato dell'account di archiviazione. In questo modo è possibile usare il nome FQDN storageaccount.file.core.windows.net nella rete virtuale e risolverlo nell'indirizzo IP dell'endpoint privato.

Poiché l'obiettivo finale consiste nell'accedere alle condivisioni file di Azure ospitate nell'account di archiviazione dall'ambiente locale usando un tunnel di rete, ad esempio una connessione VPN o ExpressRoute, è necessario configurare i server DNS locali per inoltrare le richieste effettuate al servizio DNS privato di Azure File di Azure.

È possibile configurare l'inoltro DNS in uno dei due modi seguenti:

  • Usare le macchine virtuali del server DNS: configurare l'inoltro condizionale di (o il suffisso dell'endpoint di *.core.windows.net archiviazione appropriato per i cloud nazionali degli Stati Uniti, germania o Cina) a una macchina virtuale del server DNS ospitata all'interno della rete virtuale di Azure. Questo server DNS inoltra quindi in modo ricorsivo la richiesta al servizio DNS privato di Azure, che risolverà il nome di dominio completo dell'account di archiviazione nell'indirizzo IP privato appropriato. Si tratta di un passaggio una tantum per tutte le condivisioni file di Azure ospitate all'interno della rete virtuale.

  • Usare il sistema di risoluzione privato DNS di Azure: se non si vuole distribuire un server DNS basato su vm, è possibile eseguire la stessa attività usando il resolver privato DNS di Azure.

Oltre a File di Azure, le richieste di risoluzione dei nomi DNS per altri servizi di archiviazione di Azure (Archiviazione BLOB di Azure, Archiviazione tabelle di Azure, Archiviazione code di Azure e così via) verranno inoltrate al servizio DNS privato di Azure. Se necessario, è possibile aggiungere altri endpoint per altri servizi di Azure.

Prerequisiti

Prima di configurare l'inoltro DNS a File di Azure, è necessario quanto segue:

  • Un account di archiviazione contenente una condivisione file di Azure da montare. Per informazioni su come creare un account di archiviazione e una condivisione file di Azure, vedere Creare una condivisione file di Azure.
  • Un endpoint privato per l'account di archiviazione. Vedere Creare un endpoint privato.
  • L'ultima versione del modulo Azure PowerShell.

Configurare l'inoltro DNS usando le macchine virtuali

Se sono già presenti server DNS all'interno della rete virtuale di Azure o se si preferisce distribuire macchine virtuali del server DNS personalizzate in base a qualsiasi metodologia usata dall'organizzazione, è possibile configurare DNS con i cmdlet powerShell predefiniti del server DNS.

Diagramma che mostra la topologia di rete per la configurazione dell'inoltro D N S tramite macchine virtuali in Azure.

Importante

Questa guida presuppone che si stia usando il server DNS all'interno di Windows Server nell'ambiente locale. Tutti i passaggi descritti di seguito sono possibili con qualsiasi server DNS, non solo il server DNS Windows.

Nei server DNS locali creare un server d'inoltro condizionale usando Add-DnsServerConditionalForwarderZone. Questo server d'inoltro condizionale deve essere distribuito in tutti i server DNS locali per l'inoltro efficace e corretto del traffico in Azure. Ricordarsi di sostituire le <azure-dns-server-ip> voci con gli indirizzi IP appropriati per l'ambiente in uso.

$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

Nei server DNS all'interno della rete virtuale di Azure è anche necessario inserire un server d'inoltro in modo che le richieste per la zona DNS dell'account di archiviazione vengano indirizzate al servizio DNS privato di Azure, che viene indirizzato dall'indirizzo 168.63.129.16IP riservato. Ricordarsi di popolare $storageAccountEndpoint se si eseguono i comandi all'interno di una sessione di PowerShell diversa.

Add-DnsServerConditionalForwarderZone `
        -Name $storageAccountEndpoint `
        -MasterServers "168.63.129.16"

Configurare l'inoltro DNS con il resolver privato DNS di Azure

Se si preferisce non distribuire macchine virtuali del server DNS, è possibile eseguire la stessa attività usando il resolver privato DNS di Azure. Vedere Creare un sistema di risoluzione privato DNS di Azure usando il portale di Azure.

Diagramma che mostra la topologia di rete per la configurazione dell'inoltro D N S tramite il sistema di risoluzione privato di Azure D N S.

Non esiste alcuna differenza nel modo in cui si configurano i server DNS locali, ad eccezione del fatto che invece di puntare agli indirizzi IP dei server DNS in Azure, si punta all'indirizzo IP dell'endpoint in ingresso del sistema di risoluzione. Il sistema di risoluzione non richiede alcuna configurazione, perché le query verranno inoltrate al server DNS privato di Azure per impostazione predefinita. Se una zona DNS privata è collegata alla rete virtuale in cui viene distribuito il resolver, il resolver sarà in grado di rispondere con i record provenienti da tale zona DNS.

Avviso

Quando si configurano server d'inoltro per la zona core.windows.net , tutte le query per questo dominio pubblico verranno inoltrate all'infrastruttura DNS di Azure. Questo causa un problema quando si tenta di accedere a un account di archiviazione di un tenant diverso configurato con endpoint privati, perché DNS di Azure risponderà alla query per il nome pubblico dell'account di archiviazione con un CNAME che non esiste nella zona DNS privata. Una soluzione alternativa per questo problema consiste nel creare un endpoint privato tra tenant nell'ambiente per connettersi a tale account di archiviazione.

Per configurare l'inoltro DNS usando il resolver privato DNS di Azure, eseguire questo script nei server DNS locali. Sostituire <resolver-ip> con l'indirizzo IP dell'endpoint in ingresso del sistema di risoluzione.

$privateResolver = "<resolver-ip>"

$storageAccountEndpoint = Get-AzContext | `
    Select-Object -ExpandProperty Environment | `
    Select-Object -ExpandProperty StorageEndpointSuffix

Add-DnsServerConditionalForwarderZone `
        -Name $storageAccountEndpoint `
        -MasterServers $privateResolver

Confermare i server d'inoltro DNS

Prima di verificare se i server d'inoltro DNS sono stati applicati correttamente, è consigliabile cancellare la cache DNS nella workstation locale usando Clear-DnsClientCache. Per verificare se è possibile risolvere correttamente il nome di dominio completo dell'account di archiviazione, usare Resolve-DnsName o 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

Se la risoluzione dei nomi riesce, l'indirizzo IP risolto dovrà corrispondere all'indirizzo IP dell'account di archiviazione.

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

Se si monta una condivisione file SMB, è anche possibile usare il Test-NetConnection comando per verificare che una connessione TCP possa essere stabilita correttamente nell'account di archiviazione.

Test-NetConnection -ComputerName storageaccount.file.core.windows.net -CommonTCPPort SMB

Vedi anche