Considerazioni sulla rete per un ambiente del servizio app

Panoramica

L'ambiente del servizio app di Azure è una distribuzione di Servizio app di Azure in una subnet nella rete virtuale di Azure (VNet). È possibile distribuire un ambiente del servizio app in due modi:

  • Ambiente del servizio app esterno: espone le app ospitate dall'ambiente del servizio app su un indirizzo IP accessibile da Internet. Per altre informazioni, vedere Create an External ASE (Creare un ambiente del servizio app esterno).
  • Ambiente del servizio app con bilanciamento del carico interno: espone le app ospitate dall'ambiente del servizio app su un indirizzo IP all'interno della VNet. L'endpoint interno è un servizio di bilanciamento del carico interno (ILB, Internal Load Balancer) ed è per questo motivo che si usa la definizione "ambiente del servizio app con bilanciamento del carico interno". Per altre informazioni, vedere Create and use an ILB ASE (Creare e usare un ambiente del servizio app ILB).

Esistono ora due versioni dell'ambiente del servizio app: ASEv1 e ASEv2. Per informazioni sulla versione ASEv1, vedere Introduzione all'ambiente del servizio app. Un ambiente ASEv1 può essere distribuito in una rete virtuale classica o di Resource Manager. Un ambiente ASEv2 può essere distribuito solo in una rete virtuale di Resource Manager.

Tutte le chiamate da un ambiente del servizio app indirizzate a Internet lasciano la rete virtuale tramite un indirizzo VIP assegnato per l'ambiente del servizio app. L'indirizzo IP pubblico di questo indirizzo VIP è quindi l'indirizzo IP di origine per tutte le chiamate dall'ambiente del servizio app indirizzate a Internet. Se le app nell'ambiente del servizio app effettuano chiamate a risorse nella rete virtuale o tramite una VPN, l'IP di origine sarà uno degli indirizzi IP nella subnet usata dall'ambiente del servizio app. Dato che l'ambiente del servizio app è all'interno della rete virtuale, consente anche di accedere alle risorse all'interno della rete virtuale senza ulteriori configurazioni. Se la rete virtuale è connessa alla rete locale, le app nell'ambiente del servizio app hanno accesso anche alle relative risorse. Non è necessario configurare ulteriormente l'ambiente del servizio app o l'app.

Ambiente del servizio app esterno

Se si dispone di un ambiente del servizio app esterno, il VIP pubblico è anche l'endpoint in cui si risolvono le app dell'ambiente del servizio app per:

  • HTTP/S.
  • FTP/S.
  • Distribuzione Web.
  • Debug remoto.

Ambiente del servizio app con bilanciamento del carico interno

Se è disponibile un ambiente del servizio app con bilanciamento del carico interno, l'indirizzo IP del servizio di bilanciamento del carico interno è l'endpoint per HTTP/S, FTP/S, la distribuzione Web e il debug remoto.

Le porte di accesso alle app normali sono:

Uso Da A
HTTP/HTTPS Configurabile dall'utente 80, 443
FTP/FTPS Configurabile dall'utente 21, 990, 10001-10020
Debug remoto in Visual Studio Configurabile dall'utente 4016, 4018, 4020, 4022

Ciò vale se si usa un ambiente del servizio app esterno o con bilanciamento del carico. Se si è su un ambiente del servizio app esterno, tali porte possono essere raggiunte sul VIP pubblico. Se si è su un ambiente del servizio app con bilanciamento del carico interno, tali porte possono essere raggiunte sul servizio di bilanciamento del carico interno. Il blocco della porta 443 ha un possibile impatto su alcune funzionalità esposte nel portale. Per altre informazioni, vedere Dipendenze per il portale.

Dipendenze dell'ambiente del servizio app

Una dipendenza per l'accesso in ingresso dell'ambiente del servizio app è:

Uso Da A
Gestione Internet Subnet dell'ambiente del servizio app: 454, 455
Comunicazione interna dell'ambiente del servizio app Subnet dell'ambiente del servizio app: tutte le porte Subnet dell'ambiente del servizio app: tutte le porte
Consenti bilanciamento del carico di Azure in ingresso Servizio di bilanciamento del carico di Azure Qualsiasi

Il traffico in ingresso fornisce comandi e controllo dell'ambiente del servizio app oltre al monitoraggio del sistema. Gli indirizzi IP di origine per questo traffico non sono costanti. La configurazione della sicurezza di rete deve consentire l'accesso da tutti gli indirizzi IP sulle porte 454 e 455.

Per l'accesso in uscita, un ambiente del servizio app dipende da più sistemi esterni. Tali dipendenze di sistema sono definite con nomi DNS e non corrispondono a un set fisso di indirizzi IP. Per questo, l'ambiente del servizio app richiede l'accesso in uscita dalla subnet dell'ambiente del servizio app a tutti gli indirizzi IP esterni su un'ampia gamma di porte. Per un ambiente del servizio app esistono le seguenti dipendenze in uscita:

Uso Da A
Archiviazione di Azure Subnet dell'ambiente del servizio app table.core.windows.net, blob.core.windows.net, queue.core.windows.net, file.core.windows.net: 80, 443, 445 (445 necessaria solo per ASEv1.)
Database SQL di Azure Subnet dell'ambiente del servizio app database.windows.net: 1433, 11000-11999, 14000-14999 (per altre informazioni, vedere Porte successive alla 1433 per ADO.NET 4.5)
Gestione di Azure Subnet dell'ambiente del servizio app management.core.windows.net, management.azure.com: 443
Verifica dei certificati SSL Subnet dell'ambiente del servizio app ocsp.msocsp.com, mscrl.microsoft.com, crl.microsoft.com: 443
Azure Active Directory Subnet dell'ambiente del servizio app Internet: 443
Gestione del servizio app Subnet dell'ambiente del servizio app Internet: 443
DNS di Azure Subnet dell'ambiente del servizio app Internet: 53
Comunicazione interna dell'ambiente del servizio app Subnet dell'ambiente del servizio app: tutte le porte Subnet dell'ambiente del servizio app: tutte le porte

L'ambiente del servizio app smette di funzionare se perde l'accesso a queste dipendenze. Se questa condizione si prolunga nel tempo, l'ambiente del servizio app viene sospeso.

DNS del cliente

Se la rete virtuale è configurata con un server DNS definito dal cliente, i carichi di lavoro tenant lo useranno. L'ambiente del servizio app deve comunque comunicare con DNS di Azure per scopi di gestione.

Se la rete virtuale è configurata con un DNS del cliente sull'altra estremità di una VPN, il server DNS deve essere raggiungibile dalla subnet che contiene l'ambiente del servizio app.

Dipendenze per il portale

Oltre alle dipendenze funzionali per un ambiente del servizio app, esistono alcune altre dipendenze correlate all'esperienza del portale. Alcune delle funzionalità nel portale di Azure dipendono dall'accesso diretto al sito di Gestione controllo servizi. Per ogni app nel Servizio app di Azure esistono due URL. Il primo URL consente l'accesso all'app. Il secondo URL consente l'accesso al sito di Gestione controllo servizi, chiamato anche console di Kudu. Le funzionalità che usano il sito di Gestione controllo servizi includono:

  • Processi Web
  • Funzioni
  • LogStream
  • Kudu
  • Estensioni
  • Esplora processi
  • Console

Quando si usa un ambiente del servizio app con bilanciamento del carico interno, il sito di Gestione controllo servizi non è accessibile dall'esterno della rete virtuale. Quando l'app è ospitata in un ambiente del servizio app con bilanciamento del carico interno, le funzionalità che non riescono a raggiungere il sito di Gestione controllo servizi sono disattivate nel portale di Azure.

Molte delle funzionalità che dipendono dal sito di Gestione controllo servizi sono anche disponibili direttamente nella console di Kudu. È possibile connettersi direttamente anziché tramite il portale. Se l'app è ospitata in un ambiente del servizio app con bilanciamento del carico interno, usare le credenziali di pubblicazione per accedere. L'URL per accedere al sito di Gestione controllo servizi di un'app ospitata in un ambiente del servizio app ILB ha il formato seguente:

<appname>.scm.<domain name the ILB ASE was created with> 

Se l'ambiente del servizio app con bilanciamento del carico interno è il nome di dominio contoso.net e il nome dell'app è testapp, l'app viene raggiunta in testapp.contoso.net. Il sito di Gestione controllo servizi abbinato viene raggiunto in testapp.scm.contoso.net.

Indirizzi IP dell'ambiente del servizio app

Un ambiente del servizio app ha più indirizzi IP di cui tenere conto. Sono:

  • Indirizzo IP in ingresso pubblico: usato per il traffico di app in un ambiente del servizio app esterno e per il traffico di gestione sia per un ambiente del servizio app esterno che con bilanciamento del carico interno.
  • IP pubblico in uscita: usato come indirizzo IP di origine per le connessioni in uscita dall'ambiente del servizio app che lasciano la rete virtuale e non vengono indirizzate su una VPN.
  • Indirizzo IP con bilanciamento del carico interno: se si usa un ambiente del servizio app con bilanciamento del carico interno.
  • Indirizzi SSL basati su IP assegnati alle app: possibili solo con un ambiente del servizio app esterno e quando è configurato SSL basato su IP.

Tutti questi indirizzi IP sono facilmente visibili in un ambiente ASEv2 nel portale di Azure dall'interfaccia utente dell'ambiente del servizio app. Con un ambiente del servizio app con bilanciamento del carico interno viene elencato l'indirizzo IP per il servizio di bilanciamento del carico interno.

Indirizzi IP

Indirizzi IP assegnati alle app

Con un ambiente del servizio app esterno è possibile assegnare gli indirizzi IP alle singole app. Ciò non è possibile con un ambiente del servizio app con bilanciamento del carico interno. Per altre informazioni su come configurare l'app in modo che abbia un indirizzo IP proprio, vedere Associare un certificato SSL personalizzato esistente ad app Web di Azure.

Quando a un'app viene assegnato un indirizzo SSL basato su IP proprio, l'ambiente del servizio app riserva due porta da mappare a tale indirizzo IP. Una porta è destinata al traffico HTTP e l'altra al traffico HTTPS. Tali porte sono elencate nell'interfaccia utente dell'ambiente del servizio app nella sezione degli indirizzi IP. Il traffico deve essere in grado di raggiungere tali porte dall'indirizzo VIP o le app saranno inaccessibili. Questo requisito è importante da ricordare quando si configurano gruppi di sicurezza di rete (NSG).

Gruppi di sicurezza di rete

I gruppi di sicurezza di rete consentono di controllare l'accesso alla rete all'interno di una rete virtuale. Quando si usa il portale, esiste una regola implicita con la priorità più bassa che nega tutto. Quello che è necessario creare sono le regole di autorizzazione.

In un ambiente del servizio app non si ha accesso alle macchine virtuali usate per ospitare l'ambiente del servizio app stesso. Tali macchine virtuali si trovano in una sottoscrizione gestita da Microsoft. Se si vuole limitare l'accesso alle app nell'ambiente del servizio app, impostare gruppi di sicurezza di rete nella subnet dell'ambiente del servizio app. In questo caso, prestare particolare attenzione alle dipendenze dell'ambiente del servizio app. In caso di blocco delle dipendenze, l'ambiente del servizio app smette di funzionare.

I gruppi di sicurezza di rete possono essere configurati tramite il portale di Azure o PowerShell. Le informazioni riportate di seguito si riferiscono al portale di Azure. I gruppi di sicurezza di rete vengono creati e gestiti nel portale come risorsa di primo livello in Rete.

Tenendo conto dei requisiti in ingresso e in uscita, i gruppi di sicurezza di rete dovrebbero avere un aspetto simile a quelli illustrati in questo esempio. L'intervallo di indirizzi della rete virtuale è 192.168.250.0/16 e la subnet dell'ambiente del servizio app è inclusa in 192.168.251.128/25.

I primi due requisiti in ingresso per il funzionamento dell'ambiente del servizio app sono riportati all'inizio dell'elenco in questo esempio. e consentono la gestione dell'ambiente del servizio app oltre a consentire all'ambiente del servizio app di comunicare con se stesso. Le altre voci sono tutte configurabili a livello di tenant e consentono di regolare l'accesso alle applicazioni ospitate dall'ambiente del servizio app.

Regole di sicurezza in ingresso

Una regola predefinita consente agli indirizzi IP di comunicare con la subnet dell'ambiente del servizio app nella rete virtuale. Un'altra regola predefinita consente al bilanciamento del carico, noto anche come VIP pubblico, di comunicare con l'ambiente del servizio app. Per visualizzare le regole predefinite selezionare Regole predefinite accanto all'icona Aggiungi. Aggiungendo una regola per negare tutto il resto dopo le regole dei gruppi di sicurezza di rete visualizzate, si impedisce il traffico tra l'indirizzo VIP e l'ambiente del servizio app. Per impedire il traffico proveniente da all'interno della rete virtuale, aggiungere una regola personalizzata per consentire connessioni in entrata. Usare un'origine uguale ad AzureLoadBalancer con una destinazione qualsiasi e un intervallo di porte di \*. Dato che la regola del gruppo di sicurezza di rete viene applicata solo alla subnet dell'ambiente del servizio app, non è necessario impostare una destinazione specifica.

Se è stato assegnato un indirizzo IP all'app, accertarsi di mantenere le porte aperte. Per visualizzare le porte selezionare Ambiente del servizio app > Indirizzi IP.

Tutti gli elementi visualizzati nelle regole in uscita seguenti sono necessari, tranne per l'ultimo elemento. Queste voci consentono l'accesso alla rete alle dipendenze dell'ambiente del servizio app presentate più indietro in questo articolo. Se si bloccano una o più di queste voci, l'ambiente del servizio app smette di funzionare. L'ultima voce nell'elenco consente all'ambiente del servizio app di comunicare con altre risorse nella rete virtuale.

Regole di sicurezza in uscita

Dopo aver definito i gruppi di sicurezza di rete, assegnarli alla subnet in cui è incluso l'ambiente del servizio app. Se non si ricorda la rete virtuale o la subnet dell'ambiente del servizio app, è possibile visualizzarla dal portale di gestione dell'ambiente del servizio app. Per assegnare il gruppo di sicurezza di rete alla subnet, passare all'interfaccia utente della subnet e selezionare il gruppo di sicurezza di rete.

Route

Le route diventano problematiche più di frequente quando si configura la rete virtuale con Azure ExpressRoute. Esistono tre tipi di route in una rete virtuale:

  • Route di sistema
  • Route BGP
  • Route definite dall'utente

Le route BGP sono prioritarie rispetto alle route di sistema. Le route definite dall'utente sono prioritarie rispetto alle route BGP. Per altre informazioni sulle route nelle reti virtuali di Azure, vedere Panoramica delle route definite dall'utente.

Il database SQL di Azure che l'ambiente del servizio app usa per gestire il sistema è dotato di un firewall. Richiede che le comunicazioni provengano dall'indirizzo VIP pubblico dell'ambiente del servizio app. Le connessioni al database SQL dall'ambiente del servizio app verranno negate se vengono inviate alla connessione ExpressRoute e a un altro indirizzo IP.

Se le risposte alle richieste di gestione in ingresso vengono inviate a ExpressRoute, l'indirizzo di risposta è diverso da quello di destinazione originale. Questa mancata corrispondenza interrompe la comunicazione TCP.

Per il corretto funzionamento dell'ambiente del servizio app quando la rete virtuale è configurata con ExpressRoute, la cosa più semplice da fare è:

  • Configurare ExpressRoute in modo che annunci 0.0.0.0/0. Per impostazione predefinita, tutto il traffico locale in uscita viene forzato.
  • Creare una route definita dall'utente. Applicarla alla subnet contenente l'ambiente del servizio app, con un prefisso dell'indirizzo 0.0.0.0/0 e tipo di hop successivo Internet.

Se si apportano queste due modifiche, il traffico destinato a Internet, proveniente dalla subnet dell'ambiente del servizio app, non verrà forzato verso ExpressRoute e l'ambiente del servizio app potrà funzionare.

Importante

Le route definite in una route definita dall'utente devono essere sufficientemente specifiche per avere la precedenza su qualsiasi route annunciata dalla configurazione di ExpressRoute. Nell'esempio precedente viene usato l'intervallo di indirizzi ampio 0.0.0.0/0. Può essere accidentalmente sostituito dagli annunci di route che usano intervalli di indirizzi più specifici.

Gli ambienti del servizio app non sono supportati con le configurazioni di ExpressRoute con annuncio incrociato di route dal percorso di peering pubblico al percorso di peering privato. Le configurazioni di ExpressRoute con peering pubblico configurato riceveranno gli annunci di route da Microsoft. Gli annunci contengono un ampio set di intervalli di indirizzi IP di Microsoft Azure. In caso di annuncio incrociato di questi intervalli di indirizzi nel percorso di peering privato, tutti i pacchetti di rete in uscita dalla subnet dell'ambiente del servizio app verranno sottoposti a tunneling forzato verso un'infrastruttura di rete locale del cliente. Questo flusso di rete non è attualmente supportato con ambienti del servizio app. Una soluzione a questo problema consiste nell'interrompere l'annuncio incrociato di route dal percorso di peering pubblico al percorso di peering privato.

Per creare una route definita dall'utente, seguire questi passaggi:

  1. Accedere al portale di Azure. Selezionare Rete > Tabelle route.

  2. Creare una nuova tabella route nella stessa area della rete virtuale.

  3. Dall'interfaccia utente per le tabelle route selezionare Route > Aggiungi.

  4. Impostare Tipo hop successivo su Internet e Prefisso indirizzo su 0.0.0.0/0. Selezionare Salva.

    Verrà visualizzata una schermata simile alla seguente:

    Route funzionali

  5. Dopo aver creato la nuova tabella di route, passare alla subnet contenente l'ambiente del servizio app. Selezionare la tabella di route nell'elenco del portale. Dopo aver salvato la modifica, dovrebbero essere visibili i gruppi di sicurezza di rete e le route associati alla subnet.

    Gruppi di sicurezza di rete e route

Distribuzione nelle reti virtuali di Azure esistenti integrate con ExpressRoute

Per distribuire l'ambiente del servizio app in una rete virtuale integrata con ExpressRoute, preconfigurare la subnet in cui si desidera distribuire l'ambiente del servizio app. Quindi, usare un modello di Resource Manager per distribuirla. Per creare un ambiente del servizio app in una rete virtuale per cui è già configurato ExpressRoute:

  • Creare una subnet per ospitare l'ambiente del servizio app.

    Nota

    La subnet non può contenere altro oltre all'ambiente del servizio app. Assicurarsi di scegliere uno spazio di indirizzi che consente la crescita futura. Non è possibile modificare questa impostazione in un secondo momento. È consigliabile una dimensione pari a /25 con 128 indirizzi.

  • Creare route definite dall'utente (per esempio tabelle di route) come descritto in precedenza e impostarle sulla subnet.

  • Creare l'ambiente del servizio app usando un modello di Resource Manager come descritto in Come creare un ambiente del servizio app usando modelli di Azure Resource Manager.