Freigeben über


Private IP-Adresse eines Azure-Containerregistrierungs-FQDN kann nicht abgerufen werden

Dieser Artikel enthält Anleitungen für die Problembehandlung der am häufigsten auftretenden Situationen, die verhindern können, dass Sie den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) einer Microsoft Azure-Containerregistrierung in seine private IP-Adresse auflösen.

Übersicht

In azure Container Registry können Sie Azure Private Link zusammen mit einem privaten Endpunkt und einer privaten DNS-Zone verwenden, um dem Registrierungs-FQDN (auch als Anmeldeserver oder REST-API-Endpunkt bezeichnet) eine private IP-Adresse eines virtuellen Netzwerks zuzuweisen.

Da der Azure-Containerregistrierungsdienst multitenant ist, verfügt er immer über eine öffentliche IP-Adresse. Wenn Sie Ihre Containerregistrierung so festlegen, dass die Technologie für private Verknüpfungen für den Registrierungs-FQDN verwendet wird, wird Ihre Containerregistrierung eine öffentliche IP-Adresse und eine private IP-Adresse ausgegeben.

Nachdem Sie diese Konfiguration eingerichtet haben, gibt es Situationen, in denen die DNS-Auflösung Ihres Containerregistrierungs-FQDN die öffentliche IP-Adresse zurückgibt, obwohl Sie erwarten, dass die DNS-Auflösung die private IP-Adresse zurückgibt. Dieses Szenario kann viele Probleme verursachen, z. B. Pullfehler, wenn der öffentliche Zugriff auf Ihre Containerregistrierung deaktiviert ist und Sie nur auf die private Konnektivität angewiesen sind.

Notiz

Führen Sie die folgenden Schritte aus, um zu überprüfen, ob Ihre Containerregistrierung für die private Verwendung konfiguriert ist:

  1. Suchen Sie im Azure-Portal nach Containerregistrierungen, und wählen Sie sie aus.

  2. Wählen Sie in der Liste der Containerregistrierungen den Namen Ihrer Containerregistrierung aus.

  3. Wählen Sie im Menübereich Der Containerregistrierung die Option "Netzwerkeinstellungen">aus.

  4. Überprüfen Sie auf der Registerkarte "Öffentlicher Zugriff", ob das Feld "Zugriff auf öffentliche Netzwerke" auf "Deaktiviert" festgelegt ist.

  5. Wählen Sie die Registerkarte "Privater Zugriff " aus, und stellen Sie sicher, dass eine private Endpunktverbindung eingerichtet ist.

Symptome

Sie verwenden ein Dns-Hilfsprogrammtool (Domain Name System), um eine DNS-Abfrage auszuführen und die öffentliche IP-Adresse der Containerregistrierung in den Abfrageergebnissen abzurufen. Die Containerregistrierung ist jedoch tatsächlich für die private Verwendung konfiguriert, und das DNS-Abfrageergebnis gibt an, dass die Containerregistrierung für die private Verwendung konfiguriert ist.

Notiz

Eine Containerregistrierung ist für die private Verwendung konfiguriert, wenn sich der kanonische Name in der Form befindet. <container-registry-name>.privatelink.azurecr.io

Der folgende nslookup-Befehl führt beispielsweise eine DNS-Abfrage für den FQDN der acrpe332.azurecr.io Containerregistrierung aus:

nslookup acrpe332.azurecr.io

Die nslookup-Ausgabe gibt einen kanonischen Namen von acrpe332.privatelink.azurecr.io, sodass Sie wissen, dass die Containerregistrierung für die acrpe332 private Verwendung konfiguriert ist. Die Ausgabe gibt jedoch auch eine öffentliche IP-Adresse für 20.62.128.38 den Containerregistrierungs-FQDN acrpe332 zurück:

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

Notiz

In diesem Beispiel wird der Azure DNS-Dienst (168.63.129.16) als DNS-Server verwendet. Wenn Sie einen benutzerdefinierten DNS-Server verwenden, zeigt der Server seine IP-Adresse zusammen mit den Server Feldern an Address .

Ursache 1: Privater Endpunkt der Containerregistrierung und das Gerät befinden sich in verschiedenen virtuellen Netzwerken

Die Netzwerkschnittstelle des privaten Endpunkts der Containerregistrierung befindet sich in einem anderen virtuellen Netzwerk als das Gerät, das versucht, den FQDN der Containerregistrierung aufzulösen.

Fügen Sie zum erfolgreichen Abfragen von DNS-Einträgen in der privaten DNS-Zone einen virtuellen Netzwerklink auf der Ebene der privaten DNS-Zone der Containerregistrierung für das virtuelle Netzwerk hinzu, auf dem das Gerät vorhanden ist, das die DNS-Abfrage initiiert. Dieses Gerät kann eine der folgenden Elemente sein:

  • Azure Kubernetes Service (AKS)-Knoten
  • Azure Virtual Machines
  • Azure-Web-App für Container
  • Anderer Gerätetyp

Verwenden Sie eine der folgenden Methoden, um die Virtuelle Netzwerkverbindung zum virtuellen Netzwerk des Geräts aus der privaten DNS-Zonenebene der Containerregistrierung hinzuzufügen:

  • Über das Azure-Portal

    1. Suchen Sie im Azure-Portal nach Privates DNS Zonen, und wählen Sie sie aus.

    2. Wählen Sie <in der Liste der privaten DNS-Zonen "container-registry-name.privatelink.azurecr.io>" aus.

    3. Wählen Sie im Menübereich Ihrer privaten DNS-Zone den Link "Virtuelles Netzwerkeinstellungen">aus.

    4. Wählen Sie auf der Seite "Virtuelle Netzwerklinks" Ihrer privaten DNS-Zone "Hinzufügen" aus.

    5. Geben Sie auf der Seite "Virtuelle Netzwerkverbindung hinzufügen" einen Linknamen ein, und wählen Sie dann das virtuelle Netzwerk des Geräts aus, das den FQDN der Containerregistrierung privat auflösen muss. (Die Die Option "Automatische Registrierung aktivieren" ist optional.)

    6. Wählen Sie die Schaltfläche OK aus.

  • Über die Azure CLI

    Führen Sie in Azure CLI den Befehl "az network private-dns link vnet create" aus .

Ursache 2: Ihr benutzerdefinierter DNS-Server leitet nicht an den Azure DNS-Dienst weiter.

Standardmäßig verwenden virtuelle Azure-Netzwerke den Azure DNS-Dienst (168.63.129.16) als DNS-Server, aber Sie können alternativ Ihren eigenen benutzerdefinierten DNS-Server verwenden. Wenn Sie jedoch versucht haben, Ihren eigenen benutzerdefinierten DNS-Server einzurichten, haben Sie vergessen, eine Weiterleitung auf Serverebene an den Azure-DNS-Dienst auf der benutzerdefinierten DNS-Serverebene festzulegen.

Lösung 2: Konfigurieren einer Weiterleitung auf Serverebene an den Azure DNS-Dienst

Wenn das Gerät, das Sie erwarten, den FQDN der Containerregistrierung über eine private IP-Adresse auflösen, Teil eines virtuellen Azure-Netzwerks ist, das einen benutzerdefinierten DNS-Server verwendet, müssen Sie eine Weiterleitung auf Serverebene an den Azure DNS-Dienst auf dem benutzerdefinierten DNS-Server konfigurieren. Die genauen Konfigurationsoptionen und Schritte hängen von Ihren vorhandenen Netzwerken und DNS ab (z. B. Windows Server, CoreDNS usw.).

Standardmäßig verwenden virtuelle Azure-Netzwerke den Azure DNS-Dienst (168.63.129.16) als DNS-Server, aber Sie können alternativ Ihren eigenen benutzerdefinierten DNS-Server verwenden. Wenn Sie versucht haben, Ihren eigenen benutzerdefinierten DNS-Server einzurichten, legen Sie eine Weiterleitung auf Serverebene ordnungsgemäß auf den Azure-DNS-Dienst auf benutzerdefinierter DNS-Serverebene fest. Sie haben jedoch vergessen, auf der Ebene der privaten DNS-Zone der Containerregistrierung für das virtuelle Netzwerk, auf dem der benutzerdefinierte DNS-Server vorhanden ist, einen virtuellen Netzwerklink hinzuzufügen.

Verwenden Sie eine der folgenden Methoden, um den benutzerdefinierten DNS-Server über die private DNS-Zonenebene der Containerregistrierung hinzuzufügen:

  • Über das Azure-Portal

    1. Suchen Sie im Azure-Portal nach Privates DNS Zonen, und wählen Sie sie aus.

    2. Wählen Sie <in der Liste der privaten DNS-Zonen "container-registry-name.privatelink.azurecr.io>" aus.

    3. Wählen Sie im Menübereich Ihrer privaten DNS-Zone den Link "Virtuelles Netzwerkeinstellungen">aus.

    4. Wählen Sie auf der Seite "Virtuelle Netzwerklinks" Ihrer privaten DNS-Zone "Hinzufügen" aus.

    5. Geben Sie auf der Seite "Virtuelle Netzwerkverbindung hinzufügen" einen Linknamenwert ein, und wählen Sie dann den entsprechenden Wert für das virtuelle Netzwerk für den benutzerdefinierten DNS-Server aus. (Die Die Option "Automatische Registrierung aktivieren" ist optional.)

    6. Wählen Sie die Schaltfläche OK aus.

  • Über die Azure CLI

    Führen Sie in Azure CLI den Befehl "az network private-dns link vnet create" aus .

Ressourcen

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.