Konfigurowanie przekazywania DNS dla usługi Azure Files

Azure Files umożliwia tworzenie prywatnych punktów końcowych dla kont magazynu zawierających udziały plików. Chociaż przydatne w przypadku wielu różnych aplikacji, prywatne punkty końcowe są szczególnie przydatne do nawiązywania połączenia z udziałami plików platformy Azure z sieci lokalnej przy użyciu sieci VPN lub połączenia usługi ExpressRoute przy użyciu prywatnej komunikacji równorzędnej.

Aby połączenia z kontem magazynu przechodziły przez tunel sieciowy, w pełni kwalifikowana nazwa domeny (FQDN) konta magazynu musi być rozpoznawana jako prywatny adres IP prywatnego punktu końcowego. Aby to osiągnąć, należy przekazać sufiks punktu końcowego magazynu (core.windows.net dla regionów chmury publicznej) do prywatnej usługi DNS platformy Azure dostępnej z poziomu sieci wirtualnej. W tym przewodniku pokazano, jak skonfigurować i skonfigurować przekazywanie DNS w celu prawidłowego rozpoznania prywatnego adresu IP punktu końcowego konta magazynu.

Zdecydowanie zalecamy zapoznanie się z tematem Planowanie wdrożenia Azure Files i zagadnieniami dotyczącymi sieci Azure Files przed wykonaniem kroków opisanych w tym artykule.

Dotyczy

Typ udziału plików SMB NFS
Udziały plików w warstwie Standardowa (GPv2), LRS/ZRS Tak Nie
Udziały plików w warstwie Standardowa (GPv2), GRS/GZRS Tak Nie
Udziały plików w warstwie Premium (FileStorage), LRS/ZRS Tak Tak

Omówienie

Azure Files udostępnia następujące typy punktów końcowych na potrzeby uzyskiwania dostępu do udziałów plików platformy Azure:

  • Publiczne punkty końcowe, które mają publiczny adres IP i mogą być dostępne z dowolnego miejsca na świecie.
  • Prywatne punkty końcowe, które istnieją w sieci wirtualnej i mają prywatny adres IP z przestrzeni adresowej tej sieci wirtualnej.
  • Punkty końcowe usługi, które ograniczają dostęp do publicznego punktu końcowego do określonych sieci wirtualnych. Nadal uzyskujesz dostęp do konta magazynu za pośrednictwem publicznego adresu IP, ale dostęp jest możliwy tylko z lokalizacji podanych w konfiguracji.

Publiczne i prywatne punkty końcowe istnieją na koncie usługi Azure Storage. Konto magazynu to konstrukcja zarządzania reprezentująca udostępnioną pulę magazynu, w której można wdrożyć wiele udziałów plików, a także inne zasoby magazynu, takie jak kontenery obiektów blob lub kolejki.

Każde konto magazynu ma w pełni kwalifikowaną nazwę domeny (FQDN). W przypadku regionów chmury publicznej ta nazwa FQDN jest zgodna ze wzorcem storageaccount.file.core.windows.net , w którym storageaccount jest nazwa konta magazynu. Podczas wysyłania żądań względem tej nazwy, takich jak instalowanie udziału na stacji roboczej, system operacyjny wykonuje wyszukiwanie DNS, aby rozpoznać w pełni kwalifikowaną nazwę domeny na adres IP.

Domyślnie storageaccount.file.core.windows.net jest rozpoznawany jako adres IP publicznego punktu końcowego. Publiczny punkt końcowy konta magazynu jest hostowany w klastrze usługi Azure Storage, który hostuje wiele innych publicznych punktów końcowych kont magazynu. Podczas tworzenia prywatnego punktu końcowego prywatna strefa DNS jest połączona z siecią wirtualną, do której została dodana, z mapowaniem storageaccount.file.core.windows.net rekordu CNAME na wpis rekordu A dla prywatnego adresu IP prywatnego punktu końcowego konta magazynu. Dzięki temu można używać storageaccount.file.core.windows.net nazwy FQDN w sieci wirtualnej i rozpoznawać adres IP prywatnego punktu końcowego.

Ponieważ naszym ostatecznym celem jest uzyskanie dostępu do udziałów plików platformy Azure hostowanych na koncie magazynu ze środowiska lokalnego przy użyciu tunelu sieciowego, takiego jak połączenie sieci VPN lub ExpressRoute, należy skonfigurować lokalne serwery DNS do przekazywania żądań wysyłanych do usługi Azure Files do prywatnej usługi DNS platformy Azure.

Przesyłanie dalej DNS można skonfigurować na jeden z dwóch sposobów:

  • Użyj maszyn wirtualnych serwera DNS: Skonfiguruj warunkowe przekazywanie*.core.windows.net (lub odpowiedni sufiks punktu końcowego magazynu dla chmur krajowych w Stanach Zjednoczonych, Niemczech lub Chinach) do maszyny wirtualnej serwera DNS hostowanej w sieci wirtualnej platformy Azure. Ten serwer DNS będzie następnie cyklicznie przesyłać żądanie do prywatnej usługi DNS platformy Azure, która rozpozna nazwę FQDN konta magazynu do odpowiedniego prywatnego adresu IP. Jest to jednorazowy krok dla wszystkich udziałów plików platformy Azure hostowanych w sieci wirtualnej.

  • Użyj prywatnego rozpoznawania nazw DNS platformy Azure: Jeśli nie chcesz wdrażać serwera DNS opartego na maszynie wirtualnej, możesz wykonać to samo zadanie przy użyciu usługi Azure DNS Private Resolver.

Oprócz Azure Files żądania rozpoznawania nazw DNS dla innych usług Azure Storage (Azure Blob Storage, Azure Table Storage, Azure Queue Storage itp.) będą przekazywane do prywatnej usługi DNS platformy Azure. W razie potrzeby możesz dodać dodatkowe punkty końcowe dla innych usług platformy Azure.

Wymagania wstępne

Przed skonfigurowaniem przekazywania DNS do Azure Files potrzebne są następujące elementy:

Konfigurowanie przekazywania DNS przy użyciu maszyn wirtualnych

Jeśli masz już serwery DNS w sieci wirtualnej platformy Azure lub jeśli wolisz wdrożyć własne maszyny wirtualne serwera DNS przy użyciu dowolnej metodologii używanej przez organizację, możesz skonfigurować system DNS za pomocą wbudowanych poleceń cmdlet programu PowerShell serwera DNS.

Diagram przedstawiający topologię sieci do konfigurowania przekazywania D N S przy użyciu maszyn wirtualnych na platformie Azure.

Ważne

W tym przewodniku założono, że używasz serwera DNS w systemie Windows Server w środowisku lokalnym. Wszystkie kroki opisane tutaj są możliwe w przypadku dowolnego serwera DNS, a nie tylko systemu Windows DNS Server.

Na lokalnych serwerach DNS utwórz warunkowy usługę przesyłania dalej przy użyciu polecenia Add-DnsServerConditionalForwarderZone. Ten warunkowy usługa przesyłania dalej musi zostać wdrożona na wszystkich lokalnych serwerach DNS, aby skutecznie przekazywać ruch do platformy Azure. Pamiętaj, aby zastąpić <azure-dns-server-ip> wpisy odpowiednimi adresami IP środowiska.

$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

Na serwerach DNS w sieci wirtualnej platformy Azure należy również przedstawić usługę przesyłania dalej, aby żądania dla strefy DNS konta magazynu zostały skierowane do prywatnej usługi DNS platformy Azure, która jest frontowana przez zarezerwowany adres 168.63.129.16IP . (Pamiętaj, aby wypełnić, $storageAccountEndpoint jeśli uruchamiasz polecenia w innej sesji programu PowerShell).

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

Konfigurowanie przekazywania DNS przy użyciu prywatnego rozpoznawania nazw DNS platformy Azure

Jeśli nie chcesz wdrażać maszyn wirtualnych serwera DNS, możesz wykonać to samo zadanie przy użyciu usługi Azure DNS Private Resolver. Zobacz Tworzenie prywatnego rozpoznawania nazw DNS platformy Azure przy użyciu Azure Portal.

Diagram przedstawiający topologię sieci do konfigurowania przekazywania D N S przy użyciu usługi Azure D N S Private Resolver.

Nie ma różnicy w sposobie konfigurowania lokalnych serwerów DNS, z tą różnicą, że zamiast wskazywać adresy IP serwerów DNS na platformie Azure, wskazujesz adres IP przychodzącego punktu końcowego rozpoznawania. Narzędzie rozpoznawania nie wymaga żadnej konfiguracji, ponieważ domyślnie przekazuje zapytania do prywatnego serwera DNS platformy Azure. Jeśli prywatna strefa DNS jest połączona z siecią wirtualną, w której wdrożono narzędzie rozpoznawania nazw, rozpoznawanie będzie mogło odpowiadać za pomocą rekordów z tej strefy DNS.

Ostrzeżenie

Podczas konfigurowania usług przesyłania dalej dla strefy core.windows.net wszystkie zapytania dotyczące tej domeny publicznej będą przekazywane do infrastruktury usługi Azure DNS. Powoduje to problem podczas próby uzyskania dostępu do konta magazynu innej dzierżawy, która została skonfigurowana z prywatnymi punktami końcowymi, ponieważ usługa Azure DNS odpowie na zapytanie dotyczące publicznej nazwy konta magazynu o nazwie CNAME, która nie istnieje w prywatnej strefie DNS. Obejściem tego problemu jest utworzenie prywatnego punktu końcowego między dzierżawami w środowisku w celu nawiązania połączenia z tym kontem magazynu.

Aby skonfigurować przekazywanie DNS przy użyciu usługi Azure DNS Private Resolver, uruchom ten skrypt na lokalnych serwerach DNS. Zastąp ciąg <resolver-ip> adresem IP przychodzącego punktu końcowego programu resolver.

$privateResolver = "<resolver-ip>"

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

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

Potwierdzanie usług przesyłania dalej DNS

Przed rozpoczęciem testowania, aby sprawdzić, czy usługi przesyłania dalej DNS zostały pomyślnie zastosowane, zalecamy wyczyszczenie pamięci podręcznej DNS na lokalnej stacji roboczej przy użyciu polecenia Clear-DnsClientCache. Aby sprawdzić, czy można pomyślnie rozpoznać nazwę FQDN konta magazynu, użyj polecenia Resolve-DnsName lub 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

Jeśli rozpoznawanie nazw zakończy się pomyślnie, powinien zostać wyświetlony rozpoznany adres IP zgodny z adresem IP konta magazynu.

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

Jeśli tworzysz udział plików SMB, możesz również użyć Test-NetConnection polecenia , aby potwierdzić, że połączenie TCP można pomyślnie nawiązać z kontem magazynu.

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

Zobacz też