Como configurar o encaminhamento de DNS para Arquivos do Azure

Os Arquivos do Azure permitem que você crie pontos de extremidade privados para as contas de armazenamento que contêm seus compartilhamentos de arquivos. Embora sejam úteis para muitas finalidades diferentes, os pontos de extremidade privados são especialmente úteis para se conectar aos compartilhamentos de arquivos do Azure da rede local usando uma conexão VPN ou do ExpressRoute com emparelhamento privado.

Para que as conexões com a conta de armazenamento passem pelo seu túnel de rede, o FQDN (nome de domínio totalmente qualificado) da conta de armazenamento precisa ser resolvido para o endereço IP privado do ponto de extremidade privado. Para fazer isso, você precisa encaminhar o sufixo do ponto de extremidade de armazenamento (core.windows.net para regiões de nuvem pública) para o serviço de DNS privado do Azure acessível de dentro de sua rede virtual. Este guia mostrará como configurar encaminhamento de DNS para que ele seja resolvido corretamente para o endereço IP do ponto de extremidade privado de sua conta de armazenamento.

É altamente recomendável que você leia Planejando uma implantação dos Arquivos do Azure e Considerações de rede dos Arquivos do Azure antes de seguir as etapas descritas neste artigo.

Aplica-se a

Tipo de compartilhamento de arquivos SMB NFS
Compartilhamentos de arquivos padrão (GPv2), LRS/ZRS Sim Não
Compartilhamentos de arquivos padrão (GPv2), GRS/GZRS Sim Não
Compartilhamento de arquivos premium (FileStorage), LRS/ZRS Sim Sim

Visão geral

Os Arquivos do Azure fornecem os seguintes tipos de pontos de extremidade para acessar compartilhamentos de arquivos do Azure:

  • Pontos de extremidade públicos, que têm um endereço IP público e podem ser acessados de qualquer lugar do mundo.
  • Pontos de extremidade privados, que existem em uma rede virtual e têm um endereço IP privado dentro do espaço de endereço dessa rede virtual.
  • Pontos de extremidade de serviço, que restringem o acesso ao ponto de extremidade público a redes virtuais específicas. Você ainda tem acesso à conta de armazenamento por meio do endereço IP público, mas o acesso só é possível nos locais especificados na sua configuração.

Pontos de extremidade públicos e privados existem na conta de armazenamento do Azure. Uma conta de armazenamento é um constructo de gerenciamento que representa um pool compartilhado de armazenamento no qual você pode implantar vários compartilhamentos de arquivos bem como outros recursos de armazenamento, como filas ou contêineres de blob.

Toda conta de armazenamento tem um FQDN (nome de domínio totalmente qualificado). Para as regiões de nuvem pública, esse FQDN segue o padrão storageaccount.file.core.windows.net, em que storageaccount é o nome da conta de armazenamento. Quando você faz solicitações para esse nome, como ao montar o compartilhamento na sua estação de trabalho, o sistema operacional executa uma pesquisa de DNS para resolver o nome de domínio totalmente qualificado para um endereço IP.

Por padrão, storageaccount.file.core.windows.net é resolvido para o endereço IP do ponto de extremidade público. O ponto de extremidade público de uma conta de armazenamento é hospedado em um cluster de armazenamento do Azure que hospeda os pontos de extremidade públicos de muitas outras contas de armazenamento. Quando você cria um ponto de extremidade privado, uma zona DNS privada é vinculada à rede virtual à qual ele foi adicionado, com um registro CNAME que mapeia storageaccount.file.core.windows.net para uma entrada de registro A para o endereço IP privado do ponto de extremidade privado de sua conta de armazenamento. Isso permite que você use o FQDN storageaccount.file.core.windows.net na rede virtual e faça com que ele seja resolvido para o endereço IP do ponto de extremidade privado.

Como nosso objetivo final é acessar os compartilhamentos de arquivos do Azure hospedados na conta de armazenamento do local usando um túnel de rede, como uma conexão VPN ou do ExpressRoute, você precisa configurar seus servidores DNS locais para encaminhar solicitações feitas ao serviço do Arquivos do Azure para o serviço de DNS privado do Azure.

Configure o encaminhamento de DNS das seguintes maneiras:

  • Use as VMs de servidor DNS: configure o encaminhamento condicional de *.core.windows.net (ou o sufixo de ponto de extremidade de armazenamento apropriado para as nuvens nacionais da China, da Alemanha ou do Governo dos EUA) para uma máquina virtual de servidor DNS hospedado em sua rede virtual do Azure. Esse servidor DNS, em seguida, encaminhará recursivamente a solicitação para o serviço DNS privado do Azure, que resolverá o FQDN da conta de armazenamento para o endereço IP privado apropriado. Essa é uma etapa única para todos os compartilhamentos de arquivos do Azure hospedados na rede virtual.

  • Use o Resolvedor Privado de DNS do Azure: caso não queira implantar um servidor DNS baseado em VM, poderá realizar a mesma tarefa usando o Resolvedor Privado de DNS do Azure.

Além dos Arquivos do Azure, as solicitações de resolução de nomes DNS para outros serviços de Armazenamento do Azure (Armazenamento de Blobs do Azure, Armazenamento de Tabelas do Azure, Armazenamento de Filas do Azure etc.) serão encaminhados para o serviço DNS privado do Azure. É possível adicionar pontos de extremidade extras para outros serviços do Azure, se desejado.

Pré-requisitos

Antes de configurar o encaminhamento de DNS para Arquivos do Azure, você precisará do seguinte:

Configurar o encaminhamento de DNS usando as VMs

Caso já tenha servidores DNS em funcionamento na sua rede virtual do Azure, ou caso prefira implantar suas próprias VMs de servidores DNS seguindo qualquer metodologia adotada pela sua organização, configure o DNS com os cmdlets do PowerShell do servidor DNS interno.

Diagrama mostrando a topologia de rede para configurar o encaminhamento de DNS usando as máquinas virtuais no Azure.

Importante

Este guia assume que você esteja usando o servidor DNS no Windows Server em seu ambiente local. Todas as etapas descritas aqui são possíveis com qualquer servidor DNS, não apenas com o servidor DNS do Windows.

Nos servidores DNS locais, crie um encaminhador condicional usando Add-DnsServerConditionalForwarderZone. Esse encaminhador condicional precisa ser implantado em todos os servidores DNS locais para que seja capaz de encaminhar corretamente o tráfego para o Azure. Lembre-se de substituir as entradas <azure-dns-server-ip> pelos endereços IP adequados para seu ambiente.

$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

Nos servidores DNS de sua rede virtual do Azure, você também precisará configurar um encaminhador de modo que as solicitações para a zona DNS da conta de armazenamento sejam direcionadas para o serviço DNS privado do Azure, que usa o endereço IP reservado 168.63.129.16. (Lembre-se de popular $storageAccountEndpoint se estiver executando os comandos em outra sessão do PowerShell.)

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

Configurar o encaminhamento de DNS usando o Resolvedor Privado de DNS do Azure

Caso prefira não implantar as VMs do servidor DNS, poderá realizar a mesma tarefa usando o Resolvedor Privado de DNS do Azure. Consulte Criar um Resolvedor Privado de DNS do Azure usando o portal do Azure.

Diagrama mostrando a topologia de rede para configurar o encaminhamento de DNS usando o Resolvedor Privado de DNS do Azure.

Não há diferença na forma como você configura seus servidores DNS locais, exceto que, em vez de apontar para os endereços IP dos servidores DNS no Azure, você aponta para o endereço IP do ponto de extremidade de entrada do resolvedor. O resolvedor não requer nenhuma configuração, pois encaminhará consultas para o servidor DNS privado do Azure por padrão. Caso uma zona DNS privada esteja vinculada à VNet em que o resolvedor é implantado, o resolvedor poderá responder com registros dessa zona DNS.

Aviso

Ao configurar encaminhadores para a zona de core.windows.net, todas as consultas para esse domínio público serão encaminhadas para sua infraestrutura de DNS do Azure. Isso causa um problema ao tentar acessar uma conta de armazenamento de um locatário diferente que foi configurado com pontos de extremidade privados, pois o DNS do Azure responderá à consulta para o nome público da conta de armazenamento com um CNAME que não existe em sua zona DNS privada. Uma solução alternativa para esse problema é criar um ponto de extremidade privado entre locatários em seu ambiente para se conectar a essa conta de armazenamento.

Para configurar o encaminhamento de DNS usando o Resolvedor Privado de DNS do Azure, execute esse script em seus servidores DNS locais. Substitua <resolver-ip> pelo endereço IP do ponto de extremidade de entrada do resolvedor.

$privateResolver = "<resolver-ip>"

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

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

Confirmar encaminhadores de DNS

Antes de testar se os encaminhadores de DNS foram aplicados com êxito, é recomendável limpar o cache DNS da estação de trabalho local usando Clear-DnsClientCache. Para testar se é possível resolver com êxito o FQDN da sua conta de armazenamento, use Resolve-DnsName ou 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 a resolução de nomes for bem-sucedida, você verá que o endereço IP resolvido corresponde ao endereço IP de sua conta de armazenamento.

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

Caso esteja montando um compartilhamento de arquivos SMB, você também poderá usar o comando Test-NetConnection para confirmar se é possível estabelecer com sucesso uma conexão TCP à sua conta de armazenamento.

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

Confira também