Non è possibile ottenere l'indirizzo IP privato di un nome di dominio completo Registro Azure Container
Questo articolo fornisce indicazioni per la risoluzione delle situazioni più comuni che possono impedire la risoluzione del nome di dominio completo (FQDN) di un Registro Azure Container Microsoft al relativo indirizzo IP privato.
Panoramica
In Registro Azure Container è possibile usare collegamento privato di Azure insieme a un endpoint privato e a una zona DNS privata per assegnare un indirizzo IP privato della rete virtuale al nome di dominio completo del Registro di sistema (noto anche come server di accesso o endpoint API REST).
Poiché il servizio Registro Azure Container è multi-tenant, ha sempre un indirizzo IP pubblico. Se si imposta il registro contenitori per l'uso della tecnologia collegamento privato per il nome di dominio completo del registro, il registro contenitori viene emesso un indirizzo IP pubblico e un indirizzo IP privato.
Dopo aver configurato questa configurazione, esistono situazioni in cui la risoluzione DNS del nome di dominio completo del registro contenitori restituisce l'indirizzo IP pubblico anche se si prevede che la risoluzione DNS restituisca l'indirizzo IP privato. Questo scenario può causare molti problemi, ad esempio un errore pull, se l'accesso pubblico al registro contenitori è disabilitato e si fa affidamento solo sulla connettività privata.
Note
Per verificare che il registro contenitori sia configurato per l'uso privato, seguire questa procedura:
Nella portale di Azure cercare e selezionare Registri contenitori.
Nell'elenco dei registri contenitori selezionare il nome del registro contenitori.
Nel riquadro dei menu del registro contenitori selezionare Impostazioni>rete.
Nella scheda Accesso pubblico verificare che il campo Accesso alla rete pubblica sia impostato su Disabilitato.
Selezionare la scheda Accesso privato e verificare che sia configurata una connessione endpoint privato.
Sintomi
Si usa uno strumento di utilità DNS (Domain Name System) per eseguire una query DNS e ottenere l'indirizzo IP pubblico del registro contenitori nei risultati della query. Tuttavia, il registro contenitori è effettivamente configurato per l'uso privato e il risultato della query DNS indica che il registro contenitori è configurato per l'uso privato.
Note
Un registro contenitori viene configurato per l'uso privato se il nome canonico è nel formato . <container-registry-name>.privatelink.azurecr.io
Ad esempio, il comando nslookup seguente esegue una query DNS sul nome di dominio completo del acrpe332.azurecr.io
registro contenitori:
nslookup acrpe332.azurecr.io
L'output nslookup restituisce un nome canonico di acrpe332.privatelink.azurecr.io
, in modo da sapere che il registro contenitori è configurato per l'uso acrpe332
privato. Tuttavia, l'output restituisce anche un indirizzo IP pubblico di per il nome di 20.62.128.38
dominio completo del acrpe332
registro contenitori:
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
Questo esempio usa il servizio DNS di Azure (168.63.129.16
) come server DNS. Se si usa un server DNS personalizzato, il server visualizza il relativo indirizzo IP insieme ai Server
campi e Address
.
Causa 1: l'endpoint privato del Registro Contenitori e il dispositivo si trovano in reti virtuali diverse
L'interfaccia di rete dell'endpoint privato del registro contenitori si trova in una rete virtuale diversa rispetto al dispositivo che tenta di risolvere il nome di dominio completo del registro contenitori.
Soluzione 1: Collegamento alla rete virtuale del dispositivo dal livello di zona DNS privato del registro contenitori
Per eseguire correttamente una query per i record DNS nella zona DNS privata, aggiungere un collegamento di rete virtuale a livello di zona DNS privato del registro contenitori per la rete virtuale in cui è presente il dispositivo che avvia la query DNS. Questo dispositivo può essere uno degli elementi seguenti:
- nodi servizio Azure Kubernetes (servizio Azure Kubernetes)
- Macchine virtuali di Azure
- App Web per contenitori di Azure
- Altro tipo di dispositivo
Per aggiungere il collegamento di rete virtuale alla rete virtuale del dispositivo dal livello di zona DNS privato del registro contenitori, usare uno dei metodi seguenti:
Tramite il portale di Azure
Nella portale di Azure cercare e selezionare DNS privato zone.
Nell'elenco delle zone DNS private selezionare <container-registry-name.privatelink.azurecr.io>.
Nel riquadro dei menu della zona DNS privata selezionare Impostazioni>Collegamento Rete virtuale.
Nella pagina Collegamenti di rete virtuale della zona DNS privata selezionare Aggiungi.
Nella pagina Aggiungi collegamento alla rete virtuale immettere un nome di collegamento e quindi selezionare la rete virtuale del dispositivo che deve risolvere il nome di dominio completo del registro contenitori privatamente. (L'oggetto L'opzione Abilita registrazione automatica è facoltativa.
Selezionare il pulsante OK.
Tramite l'interfaccia della riga di comando di Azure
Nell'interfaccia della riga di comando di Azure eseguire il comando az network private-dns link vnet create .
Causa 2: Il server DNS personalizzato non viene inoltrato al servizio DNS di Azure
Per impostazione predefinita, le reti virtuali di Azure usano il servizio DNS di Azure (168.63.129.16
) come server DNS, ma in alternativa è possibile usare il proprio server DNS personalizzato. Tuttavia, quando si tenta di configurare un server DNS personalizzato, si è dimenticato di impostare un server d'inoltro a livello di server sul servizio DNS di Azure a livello di server DNS personalizzato.
Soluzione 2: Configurare un server d'inoltro a livello di server per il servizio DNS di Azure
Se il dispositivo che si prevede di risolvere il nome di dominio completo del registro contenitori tramite un indirizzo IP privato fa parte di una rete virtuale di Azure che usa un server DNS personalizzato, è necessario configurare un server d'inoltro a livello di server al servizio DNS di Azure nel server DNS personalizzato. Le opzioni e i passaggi di configurazione esatti dipendono dalle reti esistenti e dal DNS (ad esempio, Windows Server, CoreDNS e così via).
Causa 3: Il server DNS personalizzato non si collega privatamente al registro contenitori
Per impostazione predefinita, le reti virtuali di Azure usano il servizio DNS di Azure (168.63.129.16
) come server DNS, ma in alternativa è possibile usare il proprio server DNS personalizzato. Quando si tenta di configurare il proprio server DNS personalizzato, si imposta correttamente un server d'inoltro a livello di server sul servizio DNS di Azure a livello di server DNS personalizzato. Tuttavia, si è dimenticato di aggiungere un collegamento di rete virtuale a livello di zona DNS privato del registro contenitori per la rete virtuale in cui è presente il server DNS personalizzato.
Soluzione 3: Collegamento al server DNS personalizzato dal livello di zona DNS privato del registro contenitori
Per aggiungere il collegamento di rete virtuale al server DNS personalizzato dal livello di zona DNS privato del registro contenitori, usare uno dei metodi seguenti:
Tramite il portale di Azure
Nella portale di Azure cercare e selezionare DNS privato zone.
Nell'elenco delle zone DNS private selezionare <container-registry-name.privatelink.azurecr.io>.
Nel riquadro dei menu della zona DNS privata selezionare Impostazioni>Collegamento Rete virtuale.
Nella pagina Collegamenti di rete virtuale della zona DNS privata selezionare Aggiungi.
Nella pagina Aggiungi collegamento alla rete virtuale immettere un valore di Nome collegamento e quindi selezionare il valore di rete virtuale appropriato per il server DNS personalizzato. (L'oggetto L'opzione Abilita registrazione automatica è facoltativa.
Selezionare il pulsante OK.
Tramite l'interfaccia della riga di comando di Azure
Nell'interfaccia della riga di comando di Azure eseguire il comando az network private-dns link vnet create .
Risorse
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.