Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo mostra como definir a propriedade ResolutionPolicy no DNS Privado do Azure para ativar o recuo para a recursão da Internet quando uma resposta autoritativa NXDOMAIN é recebida para uma zona de Link Privado. NXDOMAIN é também conhecido como um tipo de resposta negativa. Quando um resolvedor de DNS recebe (ou armazenou em cache) uma resposta negativa, ele não envia nenhuma resposta DNS para o cliente DNS e a consulta falha.
Problema
As consultas DNS privadas para o Azure Private Link e cenários de isolamento de rede em diferentes locatários e grupos de recursos têm caminhos de resolução de nomes exclusivos. Isso pode afetar a capacidade de acessar recursos habilitados para Link Privado fora do controle de um locatário. Existem soluções alternativas baseadas em VM para resolver esse problema, mas essas soluções aumentam a complexidade operacional e estão associadas a riscos de segurança e custos mais altos.
Solução
A propriedade ResolutionPolicy no DNS Privado do Azure é uma solução nativa totalmente gerenciada. Essa propriedade permite a recursão pública por meio da frota de resolvedores recursivos do Azure quando uma resposta autoritativa do NXDOMAIN é recebida para uma zona de link privado e o endereço privado não é resolvido. A política de resolução está habilitada ao nível da ligação da rede virtual com a configuração de NxDomainRedirect. No portal do Azure, o NxDomainRedirect é habilitado selecionando Habilitar fallback para a Internet na configuração de link de rede virtual.
Definição de política
A propriedade ResolutionPolicy está disponível na API versão 2024-06-01 ou superior. No exemplo a seguir, resolutionPolicy é definido como NxDomainRedirect no nível de recurso virtualNetworkLinks :
{
"id": "'string'",
"name": '"string'",
"type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks",
"location": "global",
"properties": {
"provisioningState": "Succeeded",
"registrationEnabled": bool,
"resolutionPolicy": "NxDomainRedirect",
"virtualNetwork": {
"id": "'string'"
}
}
}
Essa configuração está disponível no portal do Azure em: Zonas de DNS privadas>Ligações de Redes Virtuais>Ativar fallback para a internet.
Como funciona
Uma resposta NXDOMAIN (RCODE3) significa que o nome de domínio consultado (Private Link) não existe. Essa resposta negativa normalmente impede que os resolvedores tentem novamente a consulta até que a resposta negativa armazenada em cache expire.
Quando a política de resolução NxDomainRedirect está habilitada em um link de rede virtual, o resolvedor recursivo do Azure tenta novamente a consulta. O resolver usa o endpoint público QNAME como a etiqueta de consulta cada vez que uma resposta NXDOMAIN é recebida do PrivateEdge para essa zona privada.
Esta alteração pode ser vista na resolução da cadeia CNAME.
C:\>nslookup remoteprivateendpoint.blob.core.windows.net
Server: UnKnown
Address: 168.63.129.16
Non-authoritative answer:
Name: blob.mwh20prdstr02e.store.core.windows.net
Address: 203.0.113.33
Aliases: remoteprivateendpoint.blob.core.windows.net
remoteprivateendpoint.privatelink.blob.core.windows.net
Limitações
- Esta política só está disponível para zonas DNS privadas associadas a recursos de Link privado.
- O parâmetro ResolutionPolicy só aceita Default ou NxDomainRedirect como valores possíveis.
Demonstrar recurso alternativo para a resolução na Internet
O exemplo a seguir mostra como habilitar o fallback para resolução da Internet para uma zona de link privado (por exemplo: privatelink.blob.core.windows.net).
Pré-requisitos
- Pelo menos dois grupos de recursos: cada um com uma rede virtual e um ponto de extremidade privado.
- Os grupos de recursos podem estar em regiões diferentes ou na mesma região.
- As contas de armazenamento são usadas com pontos de extremidade privados neste exemplo, mas outros serviços PaaS podem ser vinculados.
- Pelo menos uma máquina virtual em uma das redes virtuais é necessária para executar consultas DNS.
- A rede virtual onde a máquina virtual reside deve estar vinculada a uma das zonas de link privado.
Este guia pressupõe que você tenha provisionado os recursos de pré-requisito antes de prosseguir. Para obter mais informações, consulte Usar Pontos de Extremidade Privados do Azure.
Rever zonas DNS privadas
Na Home page do portal do Azure, procure e selecione zonas DNS privadas.
Reveja a lista de nomes e verifique se pelo menos duas zonas DNS privadas têm o mesmo nome (privatelink.blob.core.windows.net). Veja o seguinte exemplo:
Selecione as zonas de link privado e, em seguida, selecione Conjuntos de registros.
Verifique se os registros para contas de armazenamento estão presentes em cada zona privada.
Nota
As contas de armazenamento que estão no mesmo grupo de recursos têm registros de recursos na mesma zona DNS privada.
As contas de armazenamento que estão em grupos de recursos diferentes têm registros de recursos em zonas DNS privadas diferentes (com nome idêntico).
Demonstrar falha de resolução de DNS
Anote o nome de domínio totalmente qualificado (FQDN) e o endereço IP de uma conta de armazenamento na primeira zona de link privado mostrada (por exemplo:
myeaststorageacct1.privatelink.blob.core.windows.net,10.40.40.5).Anote também o FQDN e o endereço IP de uma zona DNS privada diferente com o mesmo nome (por exemplo:
myeaststorageacct2.privatelink.blob.core.windows.net,10.10.10.5).- Pelo menos uma dessas zonas DNS privado deve ter um link de rede virtual para a rede virtual onde você pode executar consultas de uma máquina virtual.
Abra um prompt de comando em sua máquina virtual do Azure e tente resolver o FQDN de ambas as contas de armazenamento. Veja o seguinte exemplo:
C:\>dig myeaststorageacct1.privatelink.blob.core.windows.net +short 10.40.40.5 C:\>dig myeaststorageacct2.privatelink.blob.core.windows.net +shortObserve que uma conta de armazenamento é resolvida com sucesso e a outra conta de armazenamento não se resolve.
Configurar alternativa para resolução da internet
Selecione cada uma das zonas DNS privadas novamente, selecione Links de Rede Virtual e, em seguida, selecione o ícone de lápis "editar". Veja o seguinte exemplo:
Na parte inferior da página, selecione Ativar fallback para a Internet e, em seguida, selecione Guardar.
Repita essas etapas para cada zona de link privado e dê tempo para que os links de rede virtual sejam atualizados.
Tente resolver o FQDN das contas de armazenamento novamente. Veja o seguinte exemplo:
C:\>dig myeaststorageacct1.privatelink.blob.core.windows.net +short 10.40.40.5 C:\>dig myeaststorageacct2.privatelink.blob.core.windows.net +short blob.bl5prdstr19c.store.core.windows.net. 203.0.113.161A conta de armazenamento que não estava resolvendo agora está sendo resolvida com sucesso via internet, permitindo que você aceda a este recurso habilitado para Ligação Privada.
Consultar ligações de rede virtual habilitadas para fallback
Você pode usar o Azure Resource Graph Explorer ou a CLI do Azure para consultar links de rede virtual habilitados para fallback. Veja os exemplos seguintes:
resources
| where tostring(properties.resolutionPolicy) contains 'NxDomainRedirect'
| extend privateDnsZone = extract("/privateDnsZones/([^/]+)/", 1, id)
| project privateDnsZone, resourceGroup, properties.resolutionPolicy
Entrada:
az graph query -q "resources
| where tostring(properties.resolutionPolicy) contains 'NxDomainRedirect'
| extend privateDnsZone = extract('/privateDnsZones/([^/]+)/', 1, id)
| project privateDnsZone, resourceGroup, properties.resolutionPolicy"
Saída:
{
"count": 4,
"data": [
{
"privateDnsZone": "privatelink.blob.core.windows.net",
"properties_resolutionPolicy": "NxDomainRedirect",
"resourceGroup": "myresourcegroup"
},
{
"privateDnsZone": "privatelink.blob.core.windows.net",
"properties_resolutionPolicy": "NxDomainRedirect",
"resourceGroup": "mywestrg2"
},
{
"privateDnsZone": "privatelink.blob.core.windows.net",
"properties_resolutionPolicy": "NxDomainRedirect",
"resourceGroup": "mywestrg"
},
{
"privateDnsZone": "privatelink.blob.core.windows.net",
"properties_resolutionPolicy": "NxDomainRedirect",
"resourceGroup": "myeastrg"
}
],
"skip_token": null,
"total_records": 4
}
Para exibir os valores da política de resolução para todas as zonas habilitadas para link privado, você pode usar as seguintes consultas do Azure Resource Graph Explorer e da CLI do Azure:
resources
| where tostring(properties) contains 'resolutionPolicy'
| extend privateDnsZone = extract("/privateDnsZones/([^/]+)/", 1, id)
| project privateDnsZone, resourceGroup, properties.resolutionPolicy
Entrada:
az graph query -q "resources
| where tostring(properties) contains 'resolutionPolicy'
| extend privateDnsZone = extract('/privateDnsZones/([^/]+)/', 1, id)
| project privateDnsZone, resourceGroup, properties.resolutionPolicy"
A saída de exemplo da CLI do Azure a seguir tem uma das zonas habilitadas para link privado definida como Padrão (fallback desabilitado) para demonstrar como isso é exibido.
Saída:
{
"count": 4,
"data": [
{
"privateDnsZone": "privatelink.blob.core.windows.net",
"properties_resolutionPolicy": "Default",
"resourceGroup": "mywestrg"
},
{
"privateDnsZone": "privatelink.blob.core.windows.net",
"properties_resolutionPolicy": "NxDomainRedirect",
"resourceGroup": "myresourcegroup"
},
{
"privateDnsZone": "privatelink.blob.core.windows.net",
"properties_resolutionPolicy": "NxDomainRedirect",
"resourceGroup": "mywestrg2"
},
{
"privateDnsZone": "privatelink.blob.core.windows.net",
"properties_resolutionPolicy": "NxDomainRedirect",
"resourceGroup": "myeastrg"
}
],
"skip_token": null,
"total_records": 4
}
Próximos passos
- Saiba como gerir conjuntos de registos e registos na sua zona DNS.