Kan geen privé-IP-adres van een Azure Container Registry-FQDN ophalen
Dit artikel bevat richtlijnen voor het oplossen van problemen met de meest voorkomende situaties die kunnen voorkomen dat u de FQDN (Fully Qualified Domain Name) van een Microsoft Azure Container Registry kunt omzetten in het privé-IP-adres.
Overzicht
In Azure Container Registry kunt u Azure Private Link samen met een privé-eindpunt en een privé-DNS-zone gebruiken om een privé-IP-adres van een virtueel netwerk toe te wijzen aan de register-FQDN (ook wel bekend als de aanmeldingsserver of HET REST API-eindpunt).
Omdat de Azure Container Registry-service meerdere tenants heeft, heeft deze altijd een openbaar IP-adres. Als u uw containerregister instelt voor het gebruik van de Private Link-technologie voor de register-FQDN, wordt uw containerregister een openbaar IP-adres en een privé-IP-adres uitgegeven.
Nadat u deze configuratie hebt ingesteld, zijn er situaties waarin de DNS-resolutie van uw containerregister-FQDN het openbare IP-adres retourneert, ook al verwacht u dat de DNS-omzetting het privé-IP-adres retourneert. Dit scenario kan veel problemen veroorzaken, zoals pull-fouten, als openbare toegang tot uw containerregister is uitgeschakeld en u alleen afhankelijk bent van de persoonlijke connectiviteit.
Notitie
Voer de volgende stappen uit om te controleren of uw containerregister is geconfigureerd voor privégebruik:
Zoek en selecteer containerregisters in Azure Portal.
Selecteer in de lijst met containerregisters de naam van het containerregister.
Selecteer In het menuvenster van het containerregister Instellingen>netwerken.
Controleer op het tabblad Openbare toegang of het veld Openbare netwerktoegang is ingesteld op Uitgeschakeld.
Selecteer het tabblad Privétoegang en controleer of een privé-eindpuntverbinding is ingesteld.
Symptomen
U gebruikt het hulpprogramma Domain Name System (DNS) om een DNS-query uit te voeren en het openbare IP-adres van het containerregister in de queryresultaten op te halen. Het containerregister is echter wel geconfigureerd voor privégebruik en het DNS-queryresultaat geeft aan dat het containerregister is geconfigureerd voor privégebruik.
Notitie
Een containerregister is geconfigureerd voor privégebruik als de canonieke naam in het formulier staat. <container-registry-name>.privatelink.azurecr.io
Met de volgende nslookup-opdracht wordt bijvoorbeeld een DNS-query uitgevoerd op de FQDN van het acrpe332.azurecr.io
containerregister:
nslookup acrpe332.azurecr.io
De nslookup-uitvoer retourneert een canonieke naam van acrpe332.privatelink.azurecr.io
, zodat u weet dat het acrpe332
containerregister is geconfigureerd voor privégebruik. De uitvoer retourneert echter ook een openbaar IP-adres van 20.62.128.38
voor de FQDN van het acrpe332
containerregister:
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
Notitie
In dit voorbeeld wordt de Azure DNS-service (168.63.129.16
) gebruikt als de DNS-server. Als u een aangepaste DNS-server gebruikt, wordt het IP-adres van de server samen met de Server
velden weergegeven Address
.
Oorzaak 1: het privé-eindpunt van het containerregister en het apparaat zich in verschillende virtuele netwerken bevinden
De netwerkinterface van het privé-eindpunt van het containerregister bevindt zich in een ander virtueel netwerk dan het apparaat dat de FQDN van het containerregister probeert op te lossen.
Oplossing 1: Koppelen aan het virtuele netwerk van het apparaat vanaf het niveau van de privé-DNS-zone van het containerregister
Als u een query wilt uitvoeren op DNS-records in de privé-DNS-zone, voegt u een koppeling naar een virtueel netwerk toe op het niveau van de privé-DNS-zone van het containerregister voor het virtuele netwerk waarop het apparaat dat de DNS-query initieert, bestaat. Dit apparaat kan een van de volgende items zijn:
- AKS-knooppunten (Azure Kubernetes Service)
- Azure Virtual Machines
- Azure Web App for Containers
- Ander type apparaat
Gebruik een van de volgende methoden om de koppeling naar het virtuele netwerk van het apparaat toe te voegen vanaf het niveau van de privé-DNS-zone van het containerregister:
Via de Azure Portal
Zoek en selecteer Privé-DNS zones in Azure Portal.
Selecteer in de lijst met privé-DNS-zones de optie container-registry-name.privatelink.azurecr.io>.<
Selecteer in het menuvenster van uw privé-DNS-zone de koppeling Instellingen>virtueel netwerk.
Selecteer Toevoegen op de pagina Virtuele netwerkkoppelingen van uw privé-DNS-zone.
Voer op de pagina Koppeling toevoegen een koppelingsnaam in en selecteer vervolgens het virtuele netwerk van het apparaat dat de FQDN-naam van het containerregister privé moet oplossen. (De Optie voor automatische registratie inschakelen is optioneel.)
Selecteer de knop OK.
Via Azure CLI
Voer in Azure CLI de opdracht az network private-dns link vnet create uit.
Oorzaak 2: uw aangepaste DNS-server wordt niet doorgestuurd naar de Azure DNS-service
Virtuele Azure-netwerken maken standaard gebruik van de Azure DNS-service (168.63.129.16
) als de DNS-server, maar u kunt ook uw eigen aangepaste DNS-server gebruiken. Wanneer u echter probeert uw eigen aangepaste DNS-server in te stellen, bent u vergeten een doorstuurserver op serverniveau in te stellen op azure DNS-service op het niveau van de aangepaste DNS-server.
Oplossing 2: Een doorstuurserver op serverniveau configureren naar de Azure DNS-service
Als het apparaat dat u verwacht om te zetten van de FQDN van het containerregister via een privé-IP-adres deel uitmaakt van een virtueel Azure-netwerk dat gebruikmaakt van een aangepaste DNS-server, moet u een doorstuurserver op serverniveau configureren naar de Azure DNS-service op de aangepaste DNS-server. De exacte configuratieopties en stappen zijn afhankelijk van uw bestaande netwerken en DNS (bijvoorbeeld Windows Server, CoreDNS, enzovoort).
Oorzaak 3: Uw aangepaste DNS-server koppelt niet privé aan het containerregister
Virtuele Azure-netwerken maken standaard gebruik van de Azure DNS-service (168.63.129.16
) als de DNS-server, maar u kunt ook uw eigen aangepaste DNS-server gebruiken. Wanneer u probeert uw eigen aangepaste DNS-server in te stellen, stelt u een doorstuurserver op serverniveau correct in op de Azure DNS-service op het aangepaste DNS-serverniveau. U bent echter vergeten een koppeling voor een virtueel netwerk toe te voegen op het niveau van de privé-DNS-zone van het containerregister voor het virtuele netwerk waarop de aangepaste DNS-server bestaat.
Oplossing 3: Koppelen aan de aangepaste DNS-server vanaf het niveau van de privé-DNS-zone van het containerregister
Gebruik een van de volgende methoden om de koppeling naar het virtuele netwerk toe te voegen aan de aangepaste DNS-server vanaf het niveau van de privé-DNS-zone van het containerregister:
Via de Azure Portal
Zoek en selecteer Privé-DNS zones in Azure Portal.
Selecteer in de lijst met privé-DNS-zones de optie container-registry-name.privatelink.azurecr.io>.<
Selecteer in het menuvenster van uw privé-DNS-zone de koppeling Instellingen>virtueel netwerk.
Selecteer Toevoegen op de pagina Virtuele netwerkkoppelingen van uw privé-DNS-zone.
Voer op de pagina Koppeling voor het virtuele netwerk toevoegen een waarde voor de koppelingsnaam in en selecteer vervolgens de juiste waarde voor het virtuele netwerk voor de aangepaste DNS-server. (De Optie voor automatische registratie inschakelen is optioneel.)
Selecteer de knop OK.
Via Azure CLI
Voer in Azure CLI de opdracht az network private-dns link vnet create uit.
Resources
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.