Condividi tramite


Indirizzi IP in ingresso e in uscita in Servizio app di Azure

Servizio app di Azure è un servizio multi-tenant, ad eccezione degli ambienti del servizio app. Le app che non si trovano in un ambiente del servizio app (non nel livello isolato) condividono l'infrastruttura di rete con altre app. Di conseguenza, gli indirizzi IP in ingresso e in uscita di un'app possono essere diversi e in determinate situazioni possono addirittura cambiare.

Gli ambienti del servizio app usano infrastrutture di rete dedicate e di conseguenza le app in esecuzione nell'ambiente del servizio app ottengono indirizzi IP statici dedicati per le connessioni sia in ingresso sia in uscita.

Come funzionano gli indirizzi IP nel servizio app

Un'app del servizio app viene eseguita in un piano di servizio app e i piani di servizio app vengono distribuiti in una delle unità di distribuzione nell'infrastruttura di Azure (internamente denominata spazio Web). Ogni unità di distribuzione viene assegnata a un set di indirizzi IP virtuali, che include un indirizzo IP in ingresso pubblico e un set di indirizzi IP in uscita. Tutti i piani di servizio app nella stessa unità di distribuzione e le istanze dell'app in essi eseguite condividono lo stesso set di indirizzi IP virtuali. Per un ambiente del servizio app (un piano di servizio app nel livello isolato), il piano di servizio app è l'unità di distribuzione stessa, quindi gli indirizzi IP virtuali sono dedicati di conseguenza.

Poiché non è consentito spostare un piano di servizio app tra le unità di distribuzione, gli indirizzi IP virtuali assegnati all'app generalmente rimangono invariati, ma esistono eccezioni.

Note

Il livello Premium V4 non fornisce un set stabile di indirizzi IP in uscita. Questo comportamento è intenzionale. Anche se le applicazioni in esecuzione nel livello Premium V4 possono effettuare chiamate in uscita agli endpoint con connessione Internet, la piattaforma del servizio app non fornisce un set stabile di indirizzi IP in uscita per il livello Premium V4. Questo comportamento è una modifica del comportamento rispetto ai piani tariffari precedenti del servizio app. Il portale mostra "Dinamico" per gli indirizzi IP in uscita e informazioni aggiuntive sugli indirizzi IP in uscita per le applicazioni che usano Premium V4. Le chiamate di Azure Resource Manager (ARM) e dell'interfaccia della riga di comando restituiscono stringhe vuote per i valori di outboundIpAddresses e possibiliOutboundIpAddresses. Se le applicazioni in esecuzione in Premium V4 richiedono un indirizzo IP o indirizzi in uscita stabili, gli sviluppatori devono usare una soluzione come gateway NAT di Azure per ottenere un indirizzo IP prevedibile per il traffico con connessione Internet in uscita.

Casi in cui gli indirizzi IP in ingresso cambiano

Indipendentemente dal numero di istanze cui è applicata scalabilità orizzontale, ogni app ha un singolo indirizzo IP in ingresso. L'indirizzo IP in ingresso può cambiare quando si esegue una delle azioni seguenti:

  • Eliminare un'app e ricrearla in un gruppo di risorse diverso (l'unità di distribuzione potrebbe cambiare).
  • Eliminare l'ultima app in una combinazione di gruppo di risorse e area e ricrearla (l'unità di distribuzione potrebbe cambiare).
  • Eliminare un'associazione TLS basata su IP esistente, ad esempio durante il rinnovo del certificato (vedere Rinnovare il certificato).

Trovare l'IP in ingresso

Eseguire il comando seguente in un terminale locale:

nslookup <app-name>.azurewebsites.net

Ottenere un indirizzo IP in ingresso statico

A volte è necessario un indirizzo IP statico dedicato per l'app. Per ottenere un indirizzo IP in ingresso statico, è necessario proteggere un nome DNS personalizzato con un'associazione di certificati basata su IP. Se non è realmente necessaria la funzionalità TLS per proteggere l'app, è anche possibile caricare un certificato autofirmato per questa associazione. In un'associazione TLS basata su IP, il certificato viene associato all'indirizzo IP stesso, quindi il servizio app crea un indirizzo IP affinché ciò avvenga.

Casi in cui gli indirizzi IP in uscita cambiano

Indipendentemente dal numero di istanze cui è applicata scalabilità orizzontale, ogni app ha un numero impostato di indirizzi IP in uscita in qualsiasi momento. Qualsiasi connessione in uscita dall'app di Servizio app di Azure, ad esempio un database back-end, usa uno degli indirizzi IP in uscita come indirizzo IP di origine. L'indirizzo IP da usare viene selezionato in modo casuale in fase di esecuzione, quindi il servizio back-end deve aprire il firewall a tutti gli indirizzi IP in uscita per l'app.

Il set di indirizzi IP in uscita per l'app cambia quando si effettua una delle azioni seguenti:

  • Eliminare un'app e ricrearla in un gruppo di risorse diverso (l'unità di distribuzione potrebbe cambiare).
  • Eliminare l'ultima app in una combinazione di gruppo di risorse e area e ricrearla (l'unità di distribuzione potrebbe cambiare).
  • Ridimensionare l'app tra i livelli inferiori (Basic, Standard e Premium), il livello PremiumV2 , il livello PremiumV3 e le opzioni Pmv3 all'interno del livello PremiumV3 (gli indirizzi IP potrebbero essere aggiunti o sottratti dal set).

È possibile trovare il set di tutti i possibili indirizzi IP in uscita che l'app può usare, indipendentemente dai piani tariffari, cercando la proprietà possibleOutboundIpAddresses o nel campo Indirizzi IP in uscita aggiuntivi nella pagina Proprietà nel portale di Azure. Vedere Trovare gli indirizzi IP in uscita.

Il set di tutti i possibili indirizzi IP in uscita può aumentare nel tempo se il servizio app aggiunge nuovi piani tariffari o opzioni alle distribuzioni esistenti del servizio app. Ad esempio, se il servizio app aggiunge il livello PremiumV3 a una distribuzione del servizio app esistente, il set di tutti i possibili indirizzi IP in uscita aumenta. Analogamente, se il servizio app aggiunge nuove opzioni Pmv3 a una distribuzione che già supporta il livello PremiumV3, il set di tutti i possibili indirizzi IP in uscita aumenta. L'aggiunta di indirizzi IP a una distribuzione non ha alcun effetto immediato perché gli indirizzi IP in uscita per le applicazioni in esecuzione non cambiano quando viene aggiunto un nuovo piano tariffario o un'opzione a una distribuzione del servizio app. Tuttavia, se le applicazioni passano a un nuovo piano tariffario o a un'opzione non disponibile in precedenza, vengono usati nuovi indirizzi in uscita e i clienti devono aggiornare le regole del firewall downstream e le restrizioni degli indirizzi IP.

Trovare gli indirizzi IP in uscita

Per trovare gli indirizzi IP in uscita usati attualmente dall'app nel portale di Azure, selezionare Proprietà nel riquadro di spostamento a sinistra dell'app. Sono elencati nel campo Indirizzi IP in uscita.

È possibile trovare le stesse informazioni eseguendo il comando seguente in Cloud Shell.

az webapp show --resource-group <group_name> --name <app_name> --query outboundIpAddresses --output tsv
(Get-AzWebApp -ResourceGroup <group_name> -name <app_name>).OutboundIpAddresses

Per trovare tutti gli indirizzi IP in uscita possibili per l'app, indipendentemente dai piani tariffari, selezionare Proprietà nel riquadro di spostamento a sinistra dell'app. Sono elencati nel campo Indirizzi IP in uscita aggiuntivi.

È possibile trovare le stesse informazioni eseguendo il comando seguente in Cloud Shell.

az webapp show --resource-group <group_name> --name <app_name> --query possibleOutboundIpAddresses --output tsv
(Get-AzWebApp -ResourceGroup <group_name> -name <app_name>).PossibleOutboundIpAddresses

Per le app per le funzioni, vedere Indirizzi IP in uscita dell'app per le funzioni.

Ottenere un indirizzo IP in uscita statico

È possibile controllare l'indirizzo IP del traffico in uscita dall'app usando l'integrazione della rete virtuale e un gateway NAT di rete virtuale per indirizzare il traffico attraverso un indirizzo IP pubblico statico. L'integrazione della rete virtuale è disponibile nei piani di servizio app Basic, Standard, Premium, PremiumV2 e PremiumV3. Per altre informazioni su questa configurazione, vedere Integrazione del gateway NAT.

Proprietà indirizzo IP nel portale di Azure

Gli indirizzi IP vengono visualizzati in più posizioni nel portale di Azure. La pagina delle proprietà mostra l'output non elaborato di inboundIpAddress, possibleInboundIpAddresses, outboundIpAddresses e possibleOutboundIpAddresses. La pagina di panoramica mostra anche gli stessi valori, ma non include gli indirizzi IP in ingresso possibili.

La panoramica della rete mostra la combinazione degli indirizzi IP in ingresso e degli indirizzi IP degli endpoint privati nel campo "Indirizzi in ingresso". Se l'accesso alla rete pubblica è disabilitato, l'indirizzo IP pubblico non viene visualizzato. Il campo Indirizzi in uscita include un elenco combinato di indirizzi IP in uscita (possibili) e se l'app è integrata e instrada tutto il traffico e la subnet ha un gateway NAT collegato, il campo include anche gli indirizzi IP del gateway NAT.

Screenshot che mostra come vengono visualizzati gli indirizzi IP nella pagina di panoramica della rete.

Tag di servizio

Usando il tag di servizio AppService, è possibile definire l'accesso di rete per il servizio del Servizio app di Azure senza specificare singoli indirizzi IP. Il tag del servizio è un gruppo di prefissi di indirizzi IP usati per ridurre al minimo la complessità della creazione di regole di sicurezza. Quando si usano i tag del servizio, Azure aggiorna automaticamente gli indirizzi IP quando cambiano per il servizio. Tuttavia, il tag del servizio non è un meccanismo di controllo della sicurezza. Il tag del servizio è semplicemente un elenco di indirizzi IP.

Il tag del servizio AppService include solo gli indirizzi IP in ingresso delle app multi-tenant. Gli indirizzi IP in ingresso dalle app distribuite in app isolate (ambiente del servizio app) e le app che usano associazioni TLS basate su IP non sono inclusi. Inoltre, tutti gli indirizzi IP in uscita usati sia nel multi-tenant che in quello isolato non sono inclusi nel tag.

Il tag può essere usato per consentire il traffico in uscita in un gruppo di sicurezza di rete (NSG) alle app. Se l'app usa TLS basato su IP o l'app viene distribuita in modalità isolata, è invece necessario usare l'indirizzo IP dedicato. Poiché il tag include solo indirizzi IP in ingresso, il tag non può essere usato nelle restrizioni di accesso per limitare l'accesso a un'app da altre app nel servizio app.

Note

Il tag di servizio consente di definire l'accesso alla rete, ma non deve essere considerato una sostituzione delle misure di sicurezza di rete appropriate perché non fornisce un controllo granulare sui singoli indirizzi IP.

Supporto del protocollo IPv6 per il traffico in ingresso

Servizio app di Azure supporta il protocollo IPv6 per il traffico in ingresso in tutti gli SKU Basic, Standard e Premium, nonché l'utilizzo di Funzioni, Funzioni Elastic Premium e dei piani Standard di App per la logica. Le app possono ricevere traffico su protocolli IPv4 e IPv6, offrendo compatibilità con le reti e i client moderni che richiedono la connettività IPv6.

Note

Il supporto IPv6 in uscita è disponibile in anteprima pubblica solo per le app di Windows. Per ulteriori informazioni sul supporto IPv6 in uscita, consultare l'articolo Annuncio del supporto IPv6 in uscita per App Service in anteprima pubblica. Tutte le connessioni in uscita dalle app Linux usano ancora IPv4.

Prerequisiti

Per usare il traffico in ingresso IPv6, è necessario:

  • Indirizzo IPv6 che accetta il traffico in ingresso
  • Record DNS che restituisce un record IPv6 (AAAA)
  • Client in grado di inviare e ricevere traffico IPv6

Importante

Molte reti locali e ambienti di sviluppo supportano solo IPv4, che potrebbero influire sulla capacità di testare la connettività IPv6 dal computer locale.

Funzionamento dell'indirizzamento IPv6

Tutte le unità di distribuzione del servizio app includono indirizzi IPv6, consentendo all'app di ricevere traffico sia su indirizzi IPv4 che IPv6. Per compatibilità con le versioni precedenti, la risposta DNS per il nome host predefinito (<app-name>.azurewebsites.net) restituisce solo l'indirizzo IPv4 per impostazione predefinita.

È possibile configurare il comportamento della modalità IP usando la IPMode proprietà :

  • IPv4 (impostazione predefinita): DNS restituisce solo l'indirizzo IPv4
  • IPv6: DNS restituisce solo l'indirizzo IPv6
  • IPv4AndIPv6: DNS restituisce sia indirizzi IPv4 che IPv6

IPMode è una funzionalità solo DNS. Ogni sito del servizio app può ricevere richieste tramite endpoint IPv4 e IPv6, indipendentemente dall'ipMode configurato. IpMode influenza solo il modo in cui DNS risolve l'endpoint, quindi influisce sui client che si basano sulla risoluzione DNS (che deve essere la maggior parte dei client), ma non limita gli endpoint del protocollo che è possibile raggiungere.

Configurare il supporto IPv6

Per aggiornare un'app per restituire i record DNS IPv6 nel portale di Azure, passare alla pagina Configurazione per l'app del servizio app e impostare la proprietà Modalità IP in ingresso .

Screenshot che mostra come viene impostata la modalità IP in ingresso nella pagina di configurazione del servizio app.

Testare la connettività IPv6

Per testare la connettività IPv6 all'app, usare il comando curl seguente:

curl -6 https://<app-name>.azurewebsites.net

Domini personalizzati e IPv6

Quando si usano domini personalizzati, è possibile configurare i record DNS per supportare IPv6:

  • Solo IPv6: aggiungere un record AAAA che punta all'indirizzo IPv6 dell'app. I client devono supportare IPv6.
  • Dual-stack: aggiungere i record A (IPv4) e AAAA (IPv6) oppure utilizzare un record CNAME al nome host predefinito, che eredita il comportamentoIPMode.