Partilhar via


Não é possível obter o endereço IP privado de um FQDN do Azure Container Registry

Este artigo fornece orientações para resolver as situações mais comuns que podem impedi-lo de resolver o nome de domínio completamente qualificado (FQDN) de um Microsoft Azure Container Registry para o respetivo endereço IP privado.

Visão Geral

No Azure Container Registry, pode utilizar o Azure Private Link juntamente com um ponto final privado e uma zona DNS privada para atribuir um endereço IP privado de rede virtual ao FQDN do registo (também conhecido como servidor de início de sessão ou ponto final da API REST).

Uma vez que o serviço Azure Container Registry é multi-inquilino, tem sempre um endereço IP público. Se definir o seu registo de contentor para utilizar a tecnologia Private Link para o FQDN de registo, o seu registo de contentor receberá um endereço IP público e um endereço IP privado.

Depois de configurar esta configuração, existem situações em que a resolução de DNS do FQDN do registo de contentor devolve o endereço IP público, mesmo que espere que a resolução de DNS devolva o endereço IP privado. Este cenário pode causar muitos problemas, como a falha de solicitação, se o acesso público ao seu registo de contentor estiver desativado e depender apenas da conectividade privada.

Observação

Para verificar se o registo de contentor está configurado para utilização privada, siga estes passos:

  1. No portal do Azure, procure e selecione Registos de contentor.

  2. Na lista de registos de contentores, selecione o nome do seu registo de contentor.

  3. No painel de menus do seu registo de contentor, selecione Definições>Rede.

  4. No separador Acesso público , verifique se o campo Acesso à rede pública está definido como Desativado.

  5. Selecione o separador Acesso privado e verifique se está configurada uma ligação de ponto final privado.

Sintomas

Utilize uma ferramenta de utilitário sistema de nomes de domínio (DNS) para fazer uma consulta DNS e obter o endereço IP público do registo de contentor nos resultados da consulta. No entanto, o registo de contentor está configurado para utilização privada e o resultado da consulta DNS indica que o registo de contentor está configurado para utilização privada.

Observação

Um registo de contentor é configurado para utilização privada se o nome canónico estiver no formulário , <container-registry-name>.privatelink.azurecr.io.

Por exemplo, o seguinte comando nslookup faz uma consulta DNS no FQDN do acrpe332.azurecr.io registo de contentor:

nslookup acrpe332.azurecr.io

A saída nslookup devolve um nome canónico de acrpe332.privatelink.azurecr.io, para que saiba que o acrpe332 registo de contentor está configurado para utilização privada. No entanto, a saída também devolve um endereço IP público do 20.62.128.38 para o FQDN do acrpe332 registo de contentor:

Server:         168.63.129.16
Address:        168.63.129.16#53

Non-authoritative answer:
acrpe332.azurecr.io     canonical name = acrpe332.privatelink.azurecr.io.
acrpe332.privatelink.azurecr.io canonical name = eus1.fe.azcr.io.
eus1.fe.azcr.io canonical name = eus-acr-reg.trafficmanager.net.
eus-acr-reg.trafficmanager.net  canonical name = r0318eus-az.eastus.cloudapp.azure.com.
Name:   r0318eus-az.eastus.cloudapp.azure.com
Address: 20.62.128.38

Observação

Este exemplo utiliza o serviço DNS do Azure (168.63.129.16) como o servidor DNS. Se utilizar um servidor DNS personalizado, o servidor apresenta o respetivo endereço IP juntamente com os Server campos e Address .

Causa 1: o ponto final privado do registo de contentor e o dispositivo estão em redes virtuais diferentes

A interface de rede do ponto final privado do registo de contentor está numa rede virtual diferente do dispositivo que tenta resolver o FQDN do registo de contentor.

Para consultar com êxito os registos DNS na zona DNS privada, adicione uma ligação de rede virtual ao nível da zona DNS privada do registo de contentor para a rede virtual na qual o dispositivo que inicia a consulta DNS existe. Este dispositivo pode ser qualquer um dos seguintes itens:

  • Nós do Azure Kubernetes Service (AKS)
  • Máquinas Virtuais do Azure
  • Aplicação Web do Azure para Contentores
  • Outro tipo de dispositivo

Para adicionar a ligação de rede virtual à rede virtual do dispositivo a partir do nível de zona DNS privado do registo de contentor, utilize um dos seguintes métodos:

  • Através do portal do Azure

    1. No portal do Azure, procure e selecione Zonas DNS privadas.

    2. Na lista de zonas DNS privadas, selecione <container-registry-name.privatelink.azurecr.io>.

    3. No painel de menus da zona DNS privada, selecione Definições>Ligação de rede virtual.

    4. Na página Ligações de rede virtual da zona DNS privada, selecione Adicionar.

    5. Na página Adicionar ligação de rede virtual , introduza um Nome da ligação e, em seguida, selecione a Rede virtual do dispositivo que tem de resolver o FQDN do registo de contentor em privado. (A opção Ativar registo automático é opcional.)

    6. Selecione o botão OK.

  • Através da CLI do Azure

    Na CLI do Azure, execute o comando az network private-dns link vnet create .

Causa 2: o servidor DNS personalizado não reencaminha para o serviço DNS do Azure

Por predefinição, as redes virtuais do Azure utilizam o serviço DNS do Azure (168.63.129.16) como servidor DNS, mas pode, em alternativa, utilizar o seu próprio servidor DNS personalizado. No entanto, quando tentou configurar o seu próprio servidor DNS personalizado, esqueceu-se de definir um reencaminhador ao nível do servidor para o serviço DNS do Azure ao nível do servidor DNS personalizado.

Solução 2: Configurar um reencaminhador ao nível do servidor para o serviço DNS do Azure

Se o dispositivo que espera resolver o FQDN do registo de contentor através de um endereço IP privado fizer parte de uma rede virtual do Azure que utiliza um servidor DNS personalizado, tem de configurar um reencaminhador ao nível do servidor para o serviço DNS do Azure no servidor DNS personalizado. As opções e os passos de configuração exatos dependem das suas redes e DNS existentes (por exemplo, Windows Server, CoreDNS, etc.).

Por predefinição, as redes virtuais do Azure utilizam o serviço DNS do Azure (168.63.129.16) como servidor DNS, mas pode, em alternativa, utilizar o seu próprio servidor DNS personalizado. Quando tentou configurar o seu próprio servidor DNS personalizado, definiu corretamente um reencaminhador ao nível do servidor para o serviço DNS do Azure ao nível do servidor DNS personalizado. No entanto, esqueceu-se de adicionar uma ligação de rede virtual ao nível da zona DNS privada do registo de contentor para a rede virtual na qual o servidor DNS personalizado existe.

Para adicionar a ligação de rede virtual ao servidor DNS personalizado a partir do nível de zona DNS privado do registo de contentor, utilize um dos seguintes métodos:

  • Através do portal do Azure

    1. No portal do Azure, procure e selecione Zonas DNS privadas.

    2. Na lista de zonas DNS privadas, selecione <container-registry-name.privatelink.azurecr.io>.

    3. No painel de menus da zona DNS privada, selecione Definições>Ligação de rede virtual.

    4. Na página Ligações de rede virtual da zona DNS privada, selecione Adicionar.

    5. Na página Adicionar ligação de rede virtual , introduza um valor de Nome da ligação e, em seguida, selecione o valor de Rede virtual adequado para o servidor DNS personalizado. (A opção Ativar registo automático é opcional.)

    6. Selecione o botão OK.

  • Através da CLI do Azure

    Na CLI do Azure, execute o comando az network private-dns link vnet create .

Recursos

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.