Impossible d’obtenir une adresse IP privée d’un nom de domaine complet Azure Container Registry
Cet article fournit des conseils pour résoudre les situations les plus courantes qui peuvent vous empêcher de résoudre le nom de domaine complet (FQDN) d’un Registre de conteneurs Microsoft Azure vers son adresse IP privée.
Aperçu
Dans Azure Container Registry, vous pouvez utiliser Azure Private Link avec un point de terminaison privé et une zone DNS privée pour affecter une adresse IP privée de réseau virtuel au nom de domaine complet du registre (également appelé serveur de connexion ou point de terminaison d’API REST).
Étant donné que le service Azure Container Registry est multilocataire, il a toujours une adresse IP publique. Si vous définissez votre registre de conteneurs pour utiliser la technologie Private Link pour le nom de domaine complet du Registre, votre registre de conteneurs est émis une adresse IP publique et une adresse IP privée.
Après avoir configuré cette configuration, il existe des situations dans lesquelles la résolution DNS de votre nom de domaine complet du registre de conteneurs retourne l’adresse IP publique, même si vous attendez que la résolution DNS retourne l’adresse IP privée. Ce scénario peut entraîner de nombreux problèmes, tels que l’échec d’extraction, si l’accès public à votre registre de conteneurs est désactivé et que vous vous appuyez uniquement sur la connectivité privée.
Note
Pour vérifier que votre registre de conteneurs est configuré pour une utilisation privée, procédez comme suit :
Dans le Portail Azure, recherchez et sélectionnez Registres de conteneurs.
Dans la liste des registres de conteneurs, sélectionnez le nom de votre registre de conteneurs.
Dans le volet de menu de votre registre de conteneurs, sélectionnez Paramètres>réseau.
Sous l’onglet Accès public, vérifiez que le champ d’accès réseau public est défini sur Désactivé.
Sélectionnez l’onglet Accès privé et vérifiez qu’une connexion de point de terminaison privé est configurée.
Symptômes
Vous utilisez un outil utilitaire DNS (Domain Name System) pour effectuer une requête DNS et obtenir l’adresse IP publique du registre de conteneurs dans les résultats de la requête. Toutefois, le registre de conteneurs est réellement configuré pour une utilisation privée, et le résultat de la requête DNS indique que le registre de conteneurs est configuré pour une utilisation privée.
Note
Un registre de conteneurs est configuré pour une utilisation privée si le nom canonique se trouve sous la forme <container-registry-name>.privatelink.azurecr.io
.
Par exemple, la commande nslookup suivante effectue une requête DNS sur le nom de domaine complet du acrpe332.azurecr.io
registre de conteneurs :
nslookup acrpe332.azurecr.io
La sortie nslookup retourne un nom canonique de acrpe332.privatelink.azurecr.io
: vous savez donc que le acrpe332
registre de conteneurs est configuré pour une utilisation privée. Toutefois, la sortie retourne également une adresse IP publique du nom de domaine complet du acrpe332
registre de 20.62.128.38
conteneurs :
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
Note
Cet exemple utilise le service Azure DNS (168.63.129.16
) comme serveur DNS. Si vous utilisez un serveur DNS personnalisé, le serveur affiche son adresse IP avec les champs et Address
les Server
champs.
Cause 1 : Point de terminaison privé du registre de conteneurs et l’appareil se trouvent sur différents réseaux virtuels
L’interface réseau du point de terminaison privé du registre de conteneurs se trouve sur un réseau virtuel différent de celui de l’appareil qui tente de résoudre le nom de domaine complet du registre de conteneurs.
Solution 1 : Lien vers le réseau virtuel de l’appareil à partir du niveau de zone DNS privée du registre de conteneurs
Pour rechercher des enregistrements DNS dans la zone DNS privée, ajoutez une liaison de réseau virtuel au niveau de la zone DNS privée du registre de conteneurs pour le réseau virtuel sur lequel l’appareil qui lance la requête DNS existe. Cet appareil peut être l’un des éléments suivants :
- Nœuds Azure Kubernetes Service (AKS)
- Machines virtuelles Azure
- Azure Web App pour conteneurs
- Autre type d’appareil
Pour ajouter la liaison de réseau virtuel au réseau virtuel de l’appareil à partir du niveau de zone DNS privée du registre de conteneurs, utilisez l’une des méthodes suivantes :
À l’aide du portail Azure
Dans la Portail Azure, recherchez et sélectionnez DNS privé zones.
Dans la liste des zones DNS privées, sélectionnez container-registry-name.privatelink.azurecr.io>.<
Dans le volet de menu de votre zone DNS privée, sélectionnez Lien de réseau virtuel Paramètres>.
Dans la page liens de réseau virtuel de votre zone DNS privée, sélectionnez Ajouter.
Dans la page Ajouter un lien de réseau virtuel, entrez un nom de lien, puis sélectionnez le réseau virtuel de l’appareil qui doit résoudre le nom de domaine complet du registre de conteneurs en privé. (Le L’option Activer l’inscription automatique est facultative.)
Cliquez sur le bouton OK.
Par le biais d’Azure CLI
Dans Azure CLI, exécutez la commande az network private-dns link vnet create .
Cause 2 : Votre serveur DNS personnalisé n’est pas transféré au service Azure DNS
Par défaut, les réseaux virtuels Azure utilisent le service Azure DNS (168.63.129.16
) comme serveur DNS, mais vous pouvez également utiliser votre propre serveur DNS personnalisé. Toutefois, lorsque vous avez essayé de configurer votre propre serveur DNS personnalisé, vous avez oublié de définir un redirecteur au niveau du serveur sur le service Azure DNS au niveau du serveur DNS personnalisé.
Solution 2 : Configurer un redirecteur au niveau du serveur sur le service Azure DNS
Si l’appareil que vous prévoyez de résoudre le nom de domaine complet du registre de conteneurs sur une adresse IP privée fait partie d’un réseau virtuel Azure qui utilise un serveur DNS personnalisé, vous devez configurer un redirecteur au niveau du serveur sur le service Azure DNS sur le serveur DNS personnalisé. Les options et étapes de configuration exactes dépendent de vos réseaux et DNS existants (par exemple, Windows Server, CoreDNS, etc.).
Cause 3 : Votre serveur DNS personnalisé n’est pas lié en privé au registre de conteneurs
Par défaut, les réseaux virtuels Azure utilisent le service Azure DNS (168.63.129.16
) comme serveur DNS, mais vous pouvez également utiliser votre propre serveur DNS personnalisé. Lorsque vous avez essayé de configurer votre propre serveur DNS personnalisé, vous définissez correctement un redirecteur au niveau du serveur sur le service Azure DNS au niveau du serveur DNS personnalisé. Toutefois, vous avez oublié d’ajouter une liaison de réseau virtuel au niveau de la zone DNS privée du registre de conteneurs pour le réseau virtuel sur lequel existe le serveur DNS personnalisé.
Solution 3 : Lien vers le serveur DNS personnalisé à partir du niveau de zone DNS privée du registre de conteneurs
Pour ajouter la liaison de réseau virtuel au serveur DNS personnalisé à partir du niveau de zone DNS privée du registre de conteneurs, utilisez l’une des méthodes suivantes :
À l’aide du portail Azure
Dans la Portail Azure, recherchez et sélectionnez DNS privé zones.
Dans la liste des zones DNS privées, sélectionnez container-registry-name.privatelink.azurecr.io>.<
Dans le volet de menu de votre zone DNS privée, sélectionnez Lien de réseau virtuel Paramètres>.
Dans la page liens de réseau virtuel de votre zone DNS privée, sélectionnez Ajouter.
Dans la page Ajouter un lien de réseau virtuel, entrez une valeur de nom de lien, puis sélectionnez la valeur de réseau virtuel appropriée pour le serveur DNS personnalisé. (Le L’option Activer l’inscription automatique est facultative.)
Cliquez sur le bouton OK.
Par le biais d’Azure CLI
Dans Azure CLI, exécutez la commande az network private-dns link vnet create .
Ressources
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.