DNS-doorsturen configureren voor Azure Files met behulp van VM's of Azure DNS Private Resolver

✔️ Van toepassing op: Klassieke SMB- en NFS-bestandsshares die zijn gemaakt met de Microsoft.Storage resourceprovider

✖️ Niet van toepassing op: bestandsshares die met de resourceprovider Microsoft.FileShares zijn gemaakt

Met Azure Files kunt u privé-eindpunten maken voor de opslagaccounts die uw bestandsshares bevatten. Hoewel dit handig is voor veel verschillende toepassingen, zijn privé-eindpunten vooral handig voor het maken van verbinding met uw Azure-bestandsshares vanuit uw on-premises netwerk met behulp van een VPN- of ExpressRoute-verbinding met behulp van privé-peering.

Om verbindingen met je opslagaccount via je netwerktunnel te laten gaan, moet de volledig gekwalificeerde domeinnaam (FQDN) van je opslagaccount worden omgezet naar het privé-IP-adres van je privé-endpoint. Om deze oplossing te bereiken, moet je het opslag-endpoint achtervoegsel (core.windows.netvoor publieke cloudregio's) doorsturen naar de Azure private DNS-dienst die toegankelijk is binnen je virtuele netwerk. In dit artikel wordt uitgelegd hoe je DNS-doorsturing instelt en configureert, zodat deze correct wordt omgezet naar het IP-adres van het privéeindpunt van je opslagaccount.

Voordat je begint, zie Planning for a Azure Files deployment en Azure Files networking considerations.

Hoe DNS-forwarding werkt met Azure Files

Azure Files biedt de volgende typen eindpunten voor toegang tot Azure-bestandsshares:

  • Openbare eindpunten, die een openbaar IP-adres hebben en overal ter wereld toegankelijk zijn.
  • Privé-eindpunten, die zich binnen een virtueel netwerk bevinden en een privé-IP-adres hebben in de adresruimte van het virtuele netwerk.
  • Service-eindpunten, waarmee de toegang tot het openbare eindpunt wordt beperkt tot specifieke virtuele netwerken. U hebt nog steeds toegang tot het opslagaccount via het openbare IP-adres, maar toegang is alleen mogelijk vanaf de locaties die u in uw configuratie opgeeft.

Openbare en privé-eindpunten bestaan in het Azure-opslagaccount. Een opslagaccount is een beheerconstructie die een gedeelde opslaggroep vertegenwoordigt waarin u meerdere bestandsshares kunt implementeren, evenals andere opslagresources, zoals blob-containers of wachtrijen.

Elk opslagaccount heeft een FQDN (Fully Qualified Domain Name). Voor de openbare cloudregio's volgt deze FQDN het patroon storageaccount.file.core.windows.net waarin storageaccount de naam van het opslagaccount is. Wanneer u aanvragen indient op basis van deze naam, zoals het koppelen van de share op uw werkstation, voert uw besturingssysteem een DNS-zoekopdracht uit om de volledig gekwalificeerde domeinnaam om te zetten in een IP-adres.

Wordt standaard storageaccount.file.core.windows.net omgezet in het IP-adres van het openbare eindpunt. Het openbare eindpunt voor een opslagaccount wordt gehost op een Azure-opslagcluster dat als host fungeert voor vele openbare eindpunten van andere opslagaccounts. Wanneer u een privé-eindpunt maakt, wordt een privé-DNS-zone gekoppeld aan het virtuele netwerk waaraan het is toegevoegd, met een CNAME-recordtoewijzing storageaccount.file.core.windows.net aan een A-recordvermelding voor het privé-IP-adres van het privé-eindpunt van uw opslagaccount. Hiermee kunt u binnen het virtuele netwerk storageaccount.file.core.windows.net FQDN gebruiken en het laten omzetten naar het IP-adres van het privé-eindpunt.

Omdat het uiteindelijke doel is om toegang te krijgen tot de Azure-bestandsshares die worden gehost in het opslagaccount van on-premises met behulp van een netwerktunnel zoals een VPN- of ExpressRoute-verbinding, moet u uw on-premises DNS-servers configureren om aanvragen door te sturen naar de Azure Files-service naar de privé-DNS-service van Azure.

U kunt DNS-doorsturen op twee manieren configureren:

  • VM's voor DNS-servers gebruiken: Stel voorwaardelijk doorsturen van *.core.windows.net (of het juiste achtervoegsel voor opslageindpunten voor de Amerikaanse overheid, Duitsland of China nationale clouds) in op een virtuele DNS-servermachine die wordt gehost in uw virtuele Azure-netwerk. Deze DNS-server stuurt de aanvraag vervolgens recursief door naar de privé-DNS-service van Azure, waarmee de FQDN van het opslagaccount wordt omgezet naar het juiste privé-IP-adres. Dit is een eenmalige stap voor alle Azure-bestandsshares die worden gehost in uw virtuele netwerk.

  • Privé-resolver van Azure DNS gebruiken: Als u geen DNS-server op basis van een VIRTUELE machine wilt implementeren, kunt u dezelfde taak uitvoeren met behulp van azure DNS Private Resolver.

Naast Azure Files worden DNS-naamomzettingsaanvragen voor andere Azure-opslagservices (Azure Blob Storage, Azure Table Storage, Azure Queue Storage, enzovoort) doorgestuurd naar de privé-DNS-service van Azure. U kunt desgewenst extra eindpunten toevoegen voor andere Azure-services.

Vereiste voorwaarden

Voordat u DNS-doorsturen naar Azure Files kunt instellen, hebt u het volgende nodig:

DNS-doorsturen configureren met behulp van VM's

Als u al DNS-servers in uw virtuele Azure-netwerk hebt of als u liever uw eigen DNS-server-VM's implementeert op basis van de methodologie die uw organisatie gebruikt, kunt u DNS configureren met de ingebouwde PowerShell-cmdlets voor DNS-servers.

Diagram met de netwerktopologie voor het configureren van D N S Forwarding met behulp van virtuele machines in Azure.

Belangrijk

Dit artikel gaat ervan uit dat je de DNS-server binnen Windows Server gebruikt in je on-premises omgeving. Je kunt alle hier beschreven stappen uitvoeren door elke DNS-server te gebruiken, niet alleen de Windows DNS Server.

Maak op uw on-premises DNS-servers een voorwaardelijke doorstuurserver met behulp van Add-DnsServerConditionalForwarderZone. Deze voorwaardelijke doorstuurserver moet worden geïmplementeerd op al uw on-premises DNS-servers om effectief verkeer door te sturen naar Azure. Vergeet niet om de <azure-dns-server-ip> vermeldingen te vervangen door de juiste IP-adressen voor uw omgeving.

$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

Op de DNS-servers in uw virtuele Azure-netwerk moet u ook een doorstuurserver instellen, zodat aanvragen voor de DNS-zone van het opslagaccount worden doorgestuurd naar de privé-DNS-service van Azure, die wordt fronted door het gereserveerde IP-adres 168.63.129.16. Vergeet niet dat u $storageAccountEndpoint moet invullen als u de opdrachten in een andere PowerShell-sessie uitvoert.

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

DNS-doorsturen configureren met azure DNS Private Resolver

Als u liever geen VM's voor DNS-servers implementeert, kunt u dezelfde taak uitvoeren met behulp van privé-resolver van Azure DNS. Zie Een privé-resolver voor Azure DNS maken met behulp van Azure Portal.

Diagram van de netwerktopologie voor het configureren van D N S Forwarding met behulp van azure D N S Private Resolver.

Er is geen verschil in hoe u uw on-premises DNS-servers configureert, behalve dat in plaats van naar de IP-adressen van de DNS-servers in Azure te verwijzen, u verwijst naar het ip-adres van het binnenkomende eindpunt van de resolver. Voor de resolver is geen configuratie vereist, omdat query's standaard worden doorgestuurd naar de privé-DNS-server van Azure. Als een privé-DNS-zone is gekoppeld aan het VNet waar de resolver wordt geïmplementeerd, kan de resolver antwoorden met records uit die DNS-zone.

Waarschuwing

Wanneer u doorstuurservers configureert voor de core.windows.net zone, worden alle query's voor dit openbare domein doorgestuurd naar uw Azure DNS-infrastructuur. Dit veroorzaakt een probleem wanneer u probeert toegang te krijgen tot een opslagaccount van een andere tenant die is geconfigureerd met privé-eindpunten, omdat Azure DNS de query beantwoordt voor de openbare naam van het opslagaccount met een CNAME die niet bestaat in uw privé-DNS-zone. Een tijdelijke oplossing voor dit probleem is het maken van een privé-eindpunt tussen tenants in uw omgeving om verbinding te maken met dat opslagaccount.

Voer dit script uit op uw on-premises DNS-servers om DNS-doorsturen te configureren met azure DNS Private Resolver. Vervang door <resolver-ip> het IP-adres van het binnenkomende eindpunt van de resolver.

$privateResolver = "<resolver-ip>"

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

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

Controleer of DNS-forwarding werkt

Voordat je test of de DNS-forwarders werken, wis je de DNS-cache op je lokale werkstation met behulp Clear-DnsClientCachevan . Als u wilt testen of u de FQDN-naam van uw opslagaccount kunt oplossen, gebruikt Resolve-DnsName of 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

Als de naamomzetting is geslaagd, komt het omgezette IP-adres overeen met het privé-IP-adres van de private endpoint van uw opslagaccount.

Name                              Type   TTL   Section    NameHost
----                              ----   ---   -------    --------
storageaccount.file.core.windows. CNAME  29    Answer     storageaccount.privatelink.file.core.windows.net
net

Name       : storageaccount.privatelink.file.core.windows.net
QueryType  : A
TTL        : 1769
Section    : Answer
IP4Address : 192.168.0.4

Als u een SMB-bestandsshare aan het mounten bent, kunt u ook de Test-NetConnection opdracht gebruiken om te bevestigen dat er succesvol een TCP-verbinding kan worden gemaakt met uw opslagaccount.

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

Zie ook