Delen via


Kan geen privé-IP-adres van een Azure Container Registry-FQDN ophalen

Dit artikel bevat richtlijnen voor het oplossen van 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 gebruiken in combinatie met een privé-eindpunt en een privé-DNS-zone om een privé-IP-adres van een virtueel netwerk toe te wijzen aan de register-FQDN (ook wel de aanmeldingsserver of het REST API-eindpunt genoemd).

Omdat de Azure Container Registry-service multitenant is, heeft deze altijd een openbaar IP-adres. Als u uw containerregister instelt op het gebruik van de Private Link-technologie voor de register-FQDN, krijgt uw containerregister een openbaar IP-adres en een privé-IP-adres.

Nadat u deze configuratie hebt ingesteld, zijn er situaties waarin de DNS-resolutie van de FQDN van uw containerregister het openbare IP-adres retourneert, hoewel u verwacht dat de DNS-resolutie 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 vertrouwt op de privéverbinding.

Opmerking

Voer de volgende stappen uit om te controleren of uw containerregister is geconfigureerd voor privégebruik:

  1. Zoek en selecteer containerregisters in Azure Portal.

  2. Selecteer in de lijst met containerregisters de naam van uw containerregister.

  3. Selecteer Instellingen>Netwerken in het menuvenster van het containerregister.

  4. Controleer op het tabblad Openbare toegang of het veld Openbare netwerktoegang is ingesteld op Uitgeschakeld.

  5. Selecteer het tabblad Persoonlijke toegang en controleer of er 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 op te halen in de queryresultaten. Het containerregister is echter eigenlijk geconfigureerd voor privégebruik en het resultaat van de DNS-query geeft aan dat het containerregister is geconfigureerd voor privégebruik.

Opmerking

Een containerregister is geconfigureerd voor privégebruik als de canonieke naam in de vorm 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 voor de FQDN van 20.62.128.38 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

Opmerking

In dit voorbeeld wordt de Azure DNS-service (168.63.129.16) gebruikt als de DNS-server. Als u een aangepaste DNS-server gebruikt, geeft de server het IP-adres samen met de Server velden en Address weer.

Oorzaak 1: het privé-eindpunt van het containerregister en het apparaat bevinden zich in verschillende virtuele netwerken

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.

Als u een query wilt uitvoeren op DNS-records in de privé-DNS-zone, voegt u een virtuele netwerkkoppeling toe op het niveau van de privé-DNS-zone van het containerregister voor het virtuele netwerk waarop het apparaat bestaat dat de DNS-query initieert. Dit apparaat kan een van de volgende items zijn:

  • AKS-knooppunten (Azure Kubernetes Service)
  • Virtuele Azure-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 vanuit het privé-DNS-zoneniveau van het containerregister:

  • Via Azure Portal

    1. Zoek en selecteer privé-DNS-zones in Azure Portal.

    2. Selecteer <container-registry-name.privatelink.azurecr.io> in de lijst met privé-DNS-zones.

    3. Selecteer in het menuvenster van uw privé-DNS-zone Instellingen>Koppeling virtueel netwerk.

    4. Selecteer toevoegen op de pagina Koppelingen voor virtuele netwerken van uw privé-DNS-zone.

    5. Voer op de pagina Koppeling voor virtueel netwerk toevoegen een koppelingsnaam in en selecteer vervolgens het virtuele netwerk van het apparaat dat de FQDN van het containerregister privé moet oplossen. (De optie Automatische registratie inschakelen is optioneel.)

    6. Klik op de OK-knop.

  • Via Azure CLI

    Voer in Azure CLI de opdracht az network private-dns link vnet create uit.

Oorzaak 2: uw aangepaste DNS-server stuurt niet door naar de Azure DNS-service

Virtuele Azure-netwerken gebruiken standaard de Azure DNS-service (168.63.129.16) als de DNS-server, maar u kunt ook uw eigen aangepaste DNS-server gebruiken. Toen u echter uw eigen aangepaste DNS-server probeerde in te stellen, bent u vergeten een doorstuurserver op serverniveau in te stellen op de 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 de FQDN van het containerregister om te zetten 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).

Virtuele Azure-netwerken gebruiken standaard 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 niveau van de aangepaste DNS-server. U bent echter vergeten een virtuele netwerkkoppeling toe te voegen op het niveau van de privé-DNS-zone van het containerregister voor het virtuele netwerk waarop de aangepaste DNS-server bestaat.

Gebruik een van de volgende methoden om de virtuele netwerkkoppeling toe te voegen aan de aangepaste DNS-server vanuit het niveau van de privé-DNS-zone van het containerregister:

  • Via Azure Portal

    1. Zoek en selecteer privé-DNS-zones in Azure Portal.

    2. Selecteer <container-registry-name.privatelink.azurecr.io> in de lijst met privé-DNS-zones.

    3. Selecteer in het menuvenster van uw privé-DNS-zone Instellingen>Koppeling virtueel netwerk.

    4. Selecteer toevoegen op de pagina Koppelingen voor virtuele netwerken van uw privé-DNS-zone.

    5. Voer op de pagina Koppeling voor virtueel netwerk toevoegen een waarde voor koppelingsnaam in en selecteer vervolgens de juiste waarde voor het virtuele netwerk voor de aangepaste DNS-server. (De optie Automatische registratie inschakelen is optioneel.)

    6. Klik op de OK-knop.

  • Via Azure CLI

    Voer in Azure CLI de opdracht az network private-dns link vnet create uit.

Middelen

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 Feedback-community van Azure.