Configuración del reenvío de DNS para Azure Files

Azure Files le permite crear puntos de conexión privados para las cuentas de almacenamiento que contienen los recursos compartidos de archivos. Aunque son útiles para muchas aplicaciones diferentes, los puntos de conexión privados lo son especialmente para conectarse a los recursos compartidos de archivos de Azure desde la red local mediante una conexión VPN o ExpressRoute con emparejamiento privado.

Para que las conexiones a la cuenta de almacenamiento pasen por el túnel de red, el nombre de dominio completo (FQDN) de la cuenta de almacenamiento debe resolverse en la dirección IP privada del punto de conexión privado. Para ello, debe reenviar el sufijo del punto de conexión de almacenamiento (core.windows.net para las regiones de la nube pública) al servicio DNS privado de Azure accesible desde la red virtual. En esta guía se muestra cómo configurar el reenvío de DNS para que se resuelva correctamente en la dirección IP del punto de conexión privado de la cuenta de almacenamiento.

Se recomienda encarecidamente leer Planeamiento de una implementación de Azure Files y Consideraciones de redes para Azure Files antes de seguir los pasos que se describen en este artículo.

Se aplica a

Tipo de recurso compartido de archivos SMB NFS
Recursos compartidos de archivos Estándar (GPv2), LRS/ZRS Sí No
Recursos compartidos de archivos Estándar (GPv2), GRS/GZRS Sí No
Recursos compartidos de archivos Premium (FileStorage), LRS/ZRS Sí Sí

Información general

Azure Files proporciona los siguientes tipos de puntos de conexión para el acceso a los recursos compartidos de archivos de Azure:

  • Puntos de conexión públicos, que tienen una dirección IP pública y a los que se puede acceder desde cualquier parte del mundo.
  • Puntos de conexión privados, que existen dentro de una red virtual y tienen una dirección IP privada en el espacio de direcciones de esa red virtual.
  • Puntos de conexión de servicio, que restringen el acceso al punto de conexión público a redes virtuales específicas. Sigue accediendo a la cuenta de almacenamiento a través de la dirección IP pública, pero el acceso solo es posible desde las ubicaciones especificadas en la configuración.

Los puntos de conexión públicos y privados existen en la cuenta de almacenamiento de Azure. Una cuenta de almacenamiento es una construcción de administración que representa un grupo compartido de almacenamiento en el que puede implementar varios recursos compartidos de archivos u otros recursos de almacenamiento, como contenedores de blobs o colas.

Cada cuenta de almacenamiento tiene un nombre de dominio completo (FQDN). En el caso de las regiones de la nube pública, este FQDN sigue el patrón storageaccount.file.core.windows.net, donde storageaccount es el nombre de la cuenta de almacenamiento. Cuando se realizan solicitudes con este nombre, como montar el recurso compartido en la estación de trabajo, el sistema operativo hace una búsqueda DNS para resolver el nombre de dominio completo en una dirección IP.

De forma predeterminada, storageaccount.file.core.windows.net se resuelve en la dirección IP del punto de conexión público. El punto de conexión público de una cuenta de almacenamiento se hospeda en un clúster de almacenamiento de Azure que hospeda muchos otros puntos de conexión públicos de las cuentas de almacenamiento. Cuando se crea un punto de conexión privado, una zona DNS privada se vincula a la red virtual a la que se agregó, con una asignación de registros CNAME storageaccount.file.core.windows.net a una entrada de registros D para la dirección IP privada del punto de conexión privado de la cuenta de almacenamiento. Esto le permite usar el FQDN storageaccount.file.core.windows.net dentro de la red virtual y hacer que se resuelva en la dirección IP del punto de conexión privado.

Dado que nuestro objetivo final es acceder a los recursos compartidos de archivos de Azure hospedados en la cuenta de almacenamiento desde el entorno local mediante un túnel de red, como una conexión VPN o ExpressRoute, debe configurar los servidores DNS locales para que reenvíen las solicitudes realizadas al servicio Azure Files al servicio DNS privado de Azure.

Puede configurar el reenvío DNS de una de estas dos maneras:

  • Uso de las máquinas virtuales de servidor DNS: Configure el reenvío condicional de *.core.windows.net (o el sufijo del punto de conexión de almacenamiento adecuado para las nubes nacionales de EE. UU., Alemania o China) en un servidor DNS hospedado en la red virtual de Azure. A continuación, este servidor DNS reenviará de forma recursiva la solicitud al servicio DNS privado de Azure, que resolverá el nombre de dominio completo de la cuenta de almacenamiento en la dirección IP privada adecuada. Este es un paso único para todos los recursos compartidos de archivos de Azure hospedados en la red virtual.

  • Uso de Azure DNS Private Resolver: Si no desea implementar un servidor DNS basado en máquina virtual, puede realizar la misma tarea mediante Azure DNS Private Resolver.

Además de Azure Files, las solicitudes de resolución de nombres DNS para otros servicios de almacenamiento de Azure (Azure Blob Storage, Azure Table Storage, Azure Queue Storage, etc.) se reenviarán al servicio DNS privado de Azure. Si lo desea, puede agregar puntos de conexión adicionales para otros servicios de Azure.

Requisitos previos

Para poder configurar el reenvío de DNS a Azure Files, necesitará lo siguiente:

Configuración del reenvío de DNS mediante máquinas virtuales

Si ya tiene colocados servidores DNS en la red virtual de Azure, o si prefiere implementar sus propias máquinas virtuales como servidores DNS por cualquier metodología que use la organización, puede configurar DNS con los cmdlets de PowerShell integrados del servidor DNS.

Diagrama que muestra la topología de red para configurar el reenvío de DNS utilizando máquinas virtuales en Azure.

Importante

En esta guía se da por supuesto que está usando el servidor DNS en Windows Server en el entorno local. Todos los pasos descritos aquí son posibles con cualquier servidor DNS, no solo con el de Windows.

En los servidores DNS locales, cree un reenviador condicional mediante Add-DnsServerConditionalForwarderZone. Este reenviador condicional debe implementarse en todos los servidores DNS locales para que sea eficaz a la hora de reenviar correctamente el tráfico a Azure. No olvide reemplazar las entradas <azure-dns-server-ip> por las direcciones IP adecuadas para su entorno.

$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

En los servidores DNS de la red virtual de Azure, también deberá colocar un reenviador de forma que las solicitudes de la zona DNS de la cuenta de almacenamiento se dirijan al servicio DNS privado de Azure, encabezado por la dirección IP reservada 168.63.129.16. (Si ejecuta los comandos en una sesión de PowerShell diferente, recuerde rellenar $storageAccountEndpoint).

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

Configuración del reenvío de DNS mediante Azure DNS Private Resolver

Si prefiere no implementar máquinas virtuales del servidor DNS, puede realizar la misma tarea mediante Azure DNS Private Resolver. Creación de una instancia de Azure DNS Private Resolver mediante Azure Portal.

Diagrama que muestra la topología de red para configurar el reenvío de DNS mediante Azure DNS Private Resolver.

No hay ninguna diferencia en la forma de configurar los servidores DNS locales, salvo que, en lugar de apuntar a las direcciones IP de los servidores DNS en Azure, apunte a la dirección IP del punto de conexión de entrada del solucionador. La resolución no requiere ninguna configuración, ya que reenviará consultas al servidor DNS privado de Azure de forma predeterminada. Si una zona DNS privada está vinculada a la red virtual donde se implementa la resolución, el solucionador podrá responder con registros de esa zona DNS.

Advertencia

Al configurar reenviadores para la zona de core.windows.net , todas las consultas de este dominio público se reenviarán a la infraestructura de Azure DNS. Esto provoca un problema al intentar acceder a una cuenta de almacenamiento de un inquilino diferente que se ha configurado con puntos de conexión privados, ya que Azure DNS responderá a la consulta del nombre público de la cuenta de almacenamiento con un CNAME que no existe en la zona DNS privada. Una solución alternativa para este problema es crear un punto de conexión privado entre inquilinos en el entorno para conectarse a esa cuenta de almacenamiento.

Para configurar el reenvío DNS mediante Azure DNS Private Resolver, ejecute este script en los servidores DNS locales. Reemplace <resolver-ip> por la dirección IP del punto de conexión de entrada del solucionador.

$privateResolver = "<resolver-ip>"

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

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

Confirmación de reenviadores DNS

Antes de realizar pruebas para ver si los reenviadores de DNS se han aplicado correctamente, se recomienda borrar la caché de DNS en la estación de trabajo local mediante Clear-DnsClientCache. Para comprobar si puede resolver correctamente el nombre de dominio completo de la cuenta de almacenamiento, use 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

Si la resolución de nombres se realiza correctamente, verá que la dirección IP resuelta coincide con la dirección IP de la cuenta de almacenamiento.

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 va a montar un recurso compartido de archivos SMB, también puede usar el comando Test-NetConnection para confirmar que se puede realizar correctamente una conexión TCP a la cuenta de almacenamiento.

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

Consulte también