Настройка перенаправления DNS для Файлы Azure с помощью виртуальных машин или частного сопоставителя Azure DNS

Файлы Azure позволяют создавать частные конечные точки для учетных записей хранения, содержащих общие папки. Частные конечные точки используются для разных приложений — в частности для подключения к общим папкам Azure из локальной сети через подключения VPN или ExpressRoute с использованием частного пиринга.

Чтобы подключения к учетной записи хранения устанавливались через сетевой туннель, полное доменное имя (FQDN) учетной записи хранения должно разрешаться в частный IP-адрес частной конечной точки. Для этого вам нужно перенаправить суффикс конечной точки хранилища (core.windows.net для регионов общедоступного облака) в службу частной зоны DNS Azure, которая доступна в виртуальной сети. В этом руководстве показано, как настроить перенаправление DNS для правильного разрешения в IP-адрес частной конечной точки учетной записи хранения.

Перед выполнением шагов, описанных в этом руководстве, настоятельно рекомендуем ознакомиться с руководством по планированию развертывания Файлов Azure и рекомендациями по работе с сетями Файлов Azure.

Применяется к

Тип общей папки SMB NFS
Стандартные общие папки (GPv2), LRS/ZRS Да Нет
Стандартные общие папки (GPv2), GRS/GZRS Да Нет
Общие папки уровня "Премиум" (FileStorage), LRS/ZRS Да Да

Обзор

Файлы Azure предоставляет следующие типы конечных точек для доступа к общим папкам Azure:

  • общедоступные конечные точки, у которых есть общедоступный IP-адрес и к которым можно обращаться из любой точки мира;
  • частные конечные точки, которые существуют только в виртуальной сети и имеют частный IP-адрес в пределах адресного пространства этой виртуальной сети.
  • Конечные точки службы, которые ограничивают доступ к общедоступной конечной точке определенным виртуальным сетям. Вы по-прежнему обращаетесь к учетной записи хранения через общедоступный IP-адрес, но доступ возможен только из указанных расположений в конфигурации.

Общедоступные и частные конечные точки размещаются в учетной записи хранения Azure. Учетная запись хранения — это конструкция управления, представляющая собой общий пул носителей, который можно использовать для развертывания нескольких общих папок и других ресурсов хранения, например контейнеров больших двоичных объектов или очередей.

Каждая учетная запись хранения имеет уникальное полное доменное имя (FQDN). Для регионов общедоступного облака полное доменное имя соответствует шаблону storageaccount.file.core.windows.net, где storageaccount обозначает имя учетной записи хранения. При выполнении запросов по этому имени, например при подключении общей папки к рабочей станции, операционная система выполняет поиск в DNS, чтобы разрешить полное доменное имя в IP-адрес.

По умолчанию storageaccount.file.core.windows.net разрешается в IP-адрес общедоступной конечной точки. Общедоступная конечная точка учетной записи хранения размещается в кластере хранения Azure вместе с общедоступными конечными точками учетных записей хранения. Когда вы создаете частную конечную точку, частная зона DNS связывается с виртуальной сетью, в которую она добавлена. Запись типа CNAME связывает storageaccount.file.core.windows.net с записью типа A для частного IP-адреса частной конечной точки учетной записи хранения. Это позволяет использовать в виртуальной сети полное доменное имя storageaccount.file.core.windows.net и разрешать его в IP-адрес частной конечной точки.

Поскольку наша конечная цель — получить доступ к общим папкам Azure, размещенным в учетной записи хранения, из локальной среды с помощью сетевого туннеля, такого как VPN-подключение или подключение ExpressRoute, необходимо настроить локальные DNS-серверы для пересылки запросов в службу Файлы Azure в частную службу DNS Azure.

Вы можете настроить перенаправление DNS одним из двух способов:

  • Используйте виртуальные машины DNS-сервера: настройте условное перенаправление*.core.windows.net (или соответствующий суффикс конечной точки хранения для государственных организаций США, Германии или Китая) на виртуальную машину DNS-сервера, размещенную в виртуальной сети Azure. Затем этот DNS-сервер рекурсивно перенаправит запрос в частную службу DNS Azure, которая будет разрешать полное доменное имя учетной записи хранения в соответствующий частный IP-адрес. Это однократный шаг для всех общих папок Azure, размещенных в виртуальной сети.

  • Используйте частный сопоставитель Azure DNS. Если вы не хотите развертывать DNS-сервер на основе виртуальных машин, можно выполнить ту же задачу с помощью частного сопоставителя Azure DNS.

Помимо Файлы Azure, запросы на разрешение DNS-имен для других служб хранилища Azure (хранилище BLOB-объектов Azure, хранилище таблиц Azure, хранилище очередей Azure и т. д.) будут перенаправляться в частную службу DNS Azure. При необходимости можно добавить дополнительные конечные точки для других служб Azure.

Необходимые компоненты

Прежде чем настроить перенаправление DNS в Файлы Azure, вам потребуется следующее:

  • Учетная запись хранения, содержащая общую папку Azure, которую вы хотите подключить. Чтобы узнать, как создать учетную запись хранения и общую папку Azure, ознакомьтесь с этой статьей.
  • Частная конечная точка для учетной записи хранения. См. статью "Создание частной конечной точки".
  • Модуль Azure PowerShell последней версии.

Настройка перенаправления DNS с помощью виртуальных машин

Если у вас уже есть DNS-серверы в виртуальной сети Azure или вы предпочитаете развертывать собственные виртуальные машины DNS-сервера с помощью любой методологии, которую использует ваша организация, можно настроить DNS с помощью встроенных командлетов DNS-сервера PowerShell.

Схема, показывающая топологию сети для настройки пересылки D N S с помощью виртуальных машин в Azure.

Внимание

В этом руководстве предполагается, что вы используете в локальной среде DNS-сервер под управлением Windows Server. Все описанные здесь шаги можно выполнить с любым DNS-сервером, а не только с DNS-сервером Windows.

На локальных DNS-серверах создайте дополнительный сервер пересылки с помощью Add-DnsServerConditionalForwarderZone. Этот условный сервер пересылки нужно развернуть на всех локальных DNS-серверах, чтобы правильно и эффективно пересылать трафик в Azure. Не забудьте заменить <azure-dns-server-ip> записи соответствующими IP-адресами для вашей среды.

$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

На DNS-серверах в виртуальной сети Azure также необходимо разместить сервер пересылки, чтобы запросы для зоны DNS учетной записи хранения направляются в частную службу DNS Azure, которая находится перед зарезервированным IP-адресом 168.63.129.16. (Не забудьте указать $storageAccountEndpoint, если вы выполняете команды в другом сеансе PowerShell.)

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

Настройка перенаправления DNS с помощью частного сопоставителя Azure DNS

Если вы предпочитаете не развертывать виртуальные машины DNS-сервера, можно выполнить ту же задачу с помощью частного сопоставителя Azure DNS. См. статью "Создание частного сопоставителя Azure DNS" с помощью портал Azure.

Схема, показывающая топологию сети для настройки пересылки D N S с помощью частного сопоставителя Azure D N S.

Нет разницы в настройке локальных DNS-серверов, за исключением того, что вместо указания IP-адресов DNS-серверов в Azure вы указываете на входящий IP-адрес конечной точки сопоставителя. Сопоставитель не требует какой-либо конфигурации, так как он перенаправит запросы на частный DNS-сервер Azure по умолчанию. Если частная зона DNS связана с виртуальной сетью, где развертывается сопоставитель, сопоставитель сможет ответить с записями из этой зоны DNS.

Предупреждение

При настройке пересылки для зоны core.windows.net все запросы к этому общедоступному домену будут перенаправляться в инфраструктуру Azure DNS. Это приводит к проблеме при попытке получить доступ к учетной записи хранения другого клиента, настроенного с частными конечными точками, так как Azure DNS ответит на запрос общедоступного имени учетной записи хранения с помощью CNAME, который не существует в частной зоне DNS. Решение этой проблемы заключается в создании межтенантной частной конечной точки в вашей среде для подключения к этой учетной записи хранения.

Чтобы настроить перенаправление DNS с помощью частного сопоставителя Azure DNS, запустите этот сценарий на локальных DNS-серверах. Замените <resolver-ip> IP-адрес входящей конечной точки сопоставителя.

$privateResolver = "<resolver-ip>"

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

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

Подтверждение серверов пересылки DNS

Перед проверкой успешности применения серверов пересылки DNS мы рекомендуем очистить кэш DNS на локальной рабочей станции с помощью Clear-DnsClientCache. Чтобы проверить, можно ли успешно разрешить полное доменное имя учетной записи хранения, использовать Resolve-DnsName или 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

Если разрешение имен будет выполнено успешно, разрешенный IP-адрес будет совпадать с IP-адресом вашей учетной записи хранения.

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

Если вы подключили общую папку S МБ, можно также использовать Test-NetConnection команду, чтобы убедиться, что подключение TCP можно успешно выполнить в учетной записи хранения.

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

См. также