No se puede obtener la dirección IP privada de un FQDN de Azure Container Registry
En este artículo se proporcionan instrucciones para solucionar las situaciones más comunes que pueden impedir que resuelva el nombre de dominio completo (FQDN) de microsoft Azure Container Registry en su dirección IP privada.
Información general
En Azure Container Registry, puede usar Azure Private Link junto con un punto de conexión privado y una zona DNS privada para asignar una dirección IP privada de red virtual al FQDN del Registro (también conocido como servidor de inicio de sesión o punto de conexión de LA API REST).
Dado que el servicio Azure Container Registry es multiinquilino, siempre tiene una dirección IP pública. Si establece el registro de contenedor para que use la tecnología Private Link para el FQDN del registro, el registro de contenedor recibirá una dirección IP pública y una dirección IP privada.
Después de configurar esta configuración, hay situaciones en las que la resolución DNS del FQDN del registro de contenedor devuelve la dirección IP pública aunque espera que la resolución DNS devuelva la dirección IP privada. Este escenario puede causar muchos problemas, como errores de extracción, si el acceso público al registro de contenedor está deshabilitado y solo se basa en la conectividad privada.
Nota:
Para comprobar que el registro de contenedor está configurado para uso privado, siga estos pasos:
En Azure Portal, busque y seleccione Registros de contenedor.
En la lista de registros de contenedor, seleccione el nombre del registro de contenedor.
En el panel de menús del registro de contenedor, seleccione Configuración>redes.
En la pestaña Acceso público , compruebe que el campo Acceso a la red pública está establecido en Deshabilitado.
Seleccione la pestaña Acceso privado y compruebe que está configurada una conexión de punto de conexión privado.
Síntomas
Use una herramienta de utilidad del sistema de nombres de dominio (DNS) para realizar una consulta DNS y obtener la dirección IP pública del registro de contenedor en los resultados de la consulta. Sin embargo, el registro de contenedor está realmente configurado para uso privado y el resultado de la consulta DNS indica que el registro de contenedor está configurado para uso privado.
Nota:
Un registro de contenedor está configurado para uso privado si el nombre canónico tiene el formato , <container-registry-name>.privatelink.azurecr.io
.
Por ejemplo, el siguiente comando nslookup realiza una consulta DNS en el FQDN del acrpe332.azurecr.io
registro de contenedor:
nslookup acrpe332.azurecr.io
La salida nslookup devuelve un nombre canónico de acrpe332.privatelink.azurecr.io
, para que sepa que el registro de acrpe332
contenedor está configurado para uso privado. Sin embargo, la salida también devuelve una dirección IP pública de para el FQDN del acrpe332
registro de 20.62.128.38
contenedor:
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
Nota:
En este ejemplo se usa el servicio DNS de Azure (168.63.129.16
) como servidor DNS. Si usa un servidor DNS personalizado, el servidor muestra su dirección IP junto con los Server
campos y Address
.
Causa 1: El punto de conexión privado del registro de contenedor y el dispositivo están en diferentes redes virtuales
La interfaz de red del punto de conexión privado del registro de contenedor está en una red virtual diferente a la del dispositivo que intenta resolver el FQDN del registro de contenedor.
Solución 1: Vinculación a la red virtual del dispositivo desde el nivel de zona DNS privada del registro de contenedor
Para consultar correctamente los registros DNS en la zona DNS privada, agregue un vínculo de red virtual en el nivel de zona DNS privada del registro de contenedor para la red virtual en la que existe el dispositivo que inicia la consulta DNS. Este dispositivo puede ser cualquiera de los siguientes elementos:
- Nodos de Azure Kubernetes Service (AKS)
- Máquinas virtuales de Azure
- Azure Web App for Containers
- Otro tipo de dispositivo
Para agregar el vínculo de red virtual a la red virtual del dispositivo desde el nivel de zona DNS privada del registro de contenedor, use uno de los métodos siguientes:
A través de Azure Portal
En Azure Portal, busque y seleccione Zonas DNS privadas.
En la lista de zonas DNS privadas, seleccione <container-registry-name.privatelink.azurecr.io>.
En el panel de menús de la zona DNS privada, seleccione Configuración Vínculo>de red virtual.
En la página Vínculos de red virtual de la zona DNS privada, seleccione Agregar.
En la página Agregar vínculo de red virtual , escriba un nombre de vínculo y, a continuación, seleccione la red virtual del dispositivo que tiene que resolver el FQDN del registro de contenedor de forma privada. (La opción Habilitar registro automático es opcional).
Seleccione el botón Aceptar.
A través de la CLI de Azure
En la CLI de Azure, ejecute el comando az network private-dns link vnet create .
Causa 2: El servidor DNS personalizado no se reenvía al servicio DNS de Azure
De forma predeterminada, las redes virtuales de Azure usan el servicio DNS de Azure (168.63.129.16
) como servidor DNS, pero también puede usar su propio servidor DNS personalizado. Sin embargo, cuando intentó configurar su propio servidor DNS personalizado, olvidó establecer un reenviador de nivel de servidor en el servicio DNS de Azure en el nivel de servidor DNS personalizado.
Solución 2: Configuración de un reenviador de nivel de servidor al servicio AZURE DNS
Si el dispositivo que espera resolver el FQDN del registro de contenedor a través de una dirección IP privada forma parte de una red virtual de Azure que usa un servidor DNS personalizado, debe configurar un reenviador de nivel de servidor al servicio DNS de Azure en el servidor DNS personalizado. Las opciones y los pasos de configuración exactos dependen de las redes y DNS existentes (por ejemplo, Windows Server, CoreDNS, etc.).
Causa 3: El servidor DNS personalizado no se vincula de forma privada al registro de contenedor
De forma predeterminada, las redes virtuales de Azure usan el servicio DNS de Azure (168.63.129.16
) como servidor DNS, pero también puede usar su propio servidor DNS personalizado. Cuando intentó configurar su propio servidor DNS personalizado, estableció correctamente un reenviador de nivel de servidor en el servicio DNS de Azure en el nivel de servidor DNS personalizado. Sin embargo, olvidó agregar un vínculo de red virtual en el nivel de zona DNS privada del registro de contenedor para la red virtual en la que existe el servidor DNS personalizado.
Solución 3: Vínculo al servidor DNS personalizado desde el nivel de zona DNS privada del registro de contenedor
Para agregar el vínculo de red virtual al servidor DNS personalizado desde el nivel de zona DNS privada del registro de contenedor, use uno de los métodos siguientes:
A través de Azure Portal
En Azure Portal, busque y seleccione Zonas DNS privadas.
En la lista de zonas DNS privadas, seleccione <container-registry-name.privatelink.azurecr.io>.
En el panel de menús de la zona DNS privada, seleccione Configuración Vínculo>de red virtual.
En la página Vínculos de red virtual de la zona DNS privada, seleccione Agregar.
En la página Agregar vínculo de red virtual , escriba un valor de Nombre de vínculo y, a continuación, seleccione el valor de red virtual adecuado para el servidor DNS personalizado. (La opción Habilitar registro automático es opcional).
Seleccione el botón Aceptar.
A través de la CLI de Azure
En la CLI de Azure, ejecute el comando az network private-dns link vnet create .
Recursos
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.