Implementare il routing del traffico di rete virtuale

Completato

Azure crea automaticamente una tabella di route per ogni subnet all'interno di una rete virtuale di Azure e aggiunge le route predefinite di sistema alla tabella. È possibile eseguire l'override di alcune delle route di sistema di Azure usando route personalizzate e aggiungere altre route personalizzate alle tabelle di route. Azure instrada il traffico in uscita da una subnet in base alle route della tabella di route di una subnet.

Route di sistema

Azure crea automaticamente route di sistema e assegna le route a ogni subnet in una rete virtuale. Non è possibile creare né rimuovere route di sistema, ma è possibile ignorare alcune route di sistema usando route personalizzate. Azure crea route di sistema predefinite per ogni subnet e aggiunge altre route predefinite facoltative a subnet specifiche, oppure a ogni subnet, quando svengono usate funzionalità specifiche di Azure.

Route predefinite

Ogni route contiene un prefisso degli indirizzi e il tipo di hop successivo. Quando il traffico in uscita da una subnet viene inviato a un indirizzo IP compreso nel prefisso degli indirizzi di una route, la route che contiene il prefisso è quella usata da Azure. Quando si crea una rete virtuale, Azure crea automaticamente le route di sistema predefinite seguenti per ogni subnet della rete virtuale:

Origine

Prefissi degli indirizzi

Tipo hop successivo

Predefinito

Univoco per la rete virtuale

Rete virtuale

Predefinito

0.0.0.0/0

Internet

Predefinita

10.0.0.0/8

None

Predefinita

192.168.0.0/16

None

Predefinita

100.64.0.0/10

None

In termini di routing, un hop è un punto di tragitto nella route complessiva. L'hop successivo è quindi il punto di tragitto successivo a cui viene indirizzato il traffico prima di raggiungere la destinazione finale. I tipi di hop successivi elencati nella tabella precedente rappresentano il modo in cui Azure instrada il traffico destinato al prefisso degli indirizzi elencato. I tipi di hop successivo sono definiti come segue:

  • Rete virtuale: instrada il traffico tra gli intervalli di indirizzi all'interno dello spazio indirizzi di una rete virtuale. Azure crea una route con un prefisso degli indirizzi che corrisponde a ogni intervallo di indirizzi definito nello spazio di indirizzi di una rete virtuale. Azure effettua il routing automatico del traffico tra le subnet usando le route create per ogni intervallo di indirizzi.

  • Internet: instrada verso Internet il traffico specificato dal prefisso degli indirizzi. La route di sistema predefinita specifica il prefisso degli indirizzi 0.0.0.0/0. Azure instrada il traffico verso Internet per qualsiasi indirizzo non specificato da un intervallo di indirizzi all'interno di una rete virtuale, a meno che l'indirizzo di destinazione non sia quello di un servizio di Azure. Azure instrada tutto il traffico destinato al servizio direttamente al servizio tramite la rete backbone, invece di instradarlo verso Internet. È possibile eseguire l'override della route di sistema predefinita di Azure per il prefisso degli indirizzi 0.0.0.0/0 con una route personalizzata.

  • Nessuno: il traffico indirizzato al tipo di hop successivo Nessuno viene eliminato e non instradato all'esterno della subnet. Azure crea automaticamente route predefinite per i prefissi degli indirizzi seguenti:

    • 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16: riservato per l'uso privato in RFC 1918.
    • 100.64.0.0/10: riservato in RFC 6598.

Se si assegnano gli intervalli di indirizzi precedenti nello spazio degli indirizzi di una rete virtuale, Azure modifica automaticamente il tipo di hop successivo della route da Nessuno a Rete virtuale. Se si assegna un intervallo di indirizzi allo spazio degli indirizzi di una rete virtuale che include (ma non è uguale a) uno dei quattro prefissi degli indirizzi riservati, Azure rimuove la route per il prefisso e aggiunge una route per il prefisso degli indirizzi aggiunto, con Rete virtuale come tipo di hop successivo.

Route predefinite facoltative

Azure aggiunge route di sistema predefinite per qualsiasi funzionalità di Azure abilitata. A seconda della funzionalità, Azure aggiunge route predefinite facoltative a subnet specifiche o a tutte le subnet della rete virtuale. Le route di sistema aggiuntive e i tipi di hop successivi che Azure può aggiungere quando si abilitano le funzionalità sono:

Origine

Prefissi degli indirizzi

Tipo hop successivo

Subnet all'interno della rete virtuale a cui viene aggiunta la route

Default

Univoco per la rete virtuale, ad esempio 10.1.0.0/16

Peering reti virtuali

Tutte le date

Gateway di rete virtuale

Prefissi annunciati dall'ambiente locale tramite BGP o configurati nel gateway di rete locale

Gateway di rete virtuale

Tutte le date

Default

Multipla

VirtualNetworkServiceEndpoint

Solo la subnet per la quale è abilitato un endpoint di servizio

  • Peering di reti virtuali: quando si crea un peering tra due reti virtuali, viene aggiunta una route per ogni intervallo di indirizzi nello spazio indirizzi di ogni rete virtuale.

  • Gateway di rete virtuale: quando si aggiunge un gateway a una rete virtuale, Azure aggiunge una o più route con il gateway di rete virtuale come tipo di hop successivo. L'origine è elencata come gateway di rete virtuale perché il gateway aggiunge le route alla subnet.

    • Se il gateway di rete locale scambia route con un gateway di rete virtuale di Azure tramite Border Gateway Protocol (BGP), viene aggiunta una route per ogni route propagata dal gateway di rete locale. Poiché esistono limiti al numero di route che è possibile propagare a un gateway di rete virtuale di Azure, è consigliabile riepilogare le route locali negli intervalli di indirizzi più grandi possibili. Per altre informazioni sul numero di route che è possibile propagare, vedere Limiti delle reti.

VirtualNetworkServiceEndpoint: Azure aggiunge gli indirizzi IP pubblici per determinati servizi alla tabella di route quando si abilita un endpoint per il servizio. Gli endpoint di servizio vengono abilitati per singole subnet all'interno di una rete virtuale, quindi la route viene aggiunta solo alla tabella di route di una subnet per la quale è abilitato un endpoint di servizio. Gli indirizzi IP pubblici dei servizi di Azure vengono modificati periodicamente e Azure gestisce gli aggiornamenti alle tabelle di routing quando è necessario.

I tipi di hop successivi Peering di rete virtuale e VirtualNetworkServiceEndpoint vengono aggiunti solo alle tabelle di route delle subnet che si trovano nelle reti virtuali create tramite il modello di distribuzione Azure Resource Manager. I tipi di hop successivi non vengono aggiunti alle tabelle di route associate a subnet di reti virtuali create tramite il modello di distribuzione classica.

Route personalizzate

Per controllare con maggior precisione l'instradamento del traffico di rete, è possibile eseguire l'override delle route predefinite create da Azure usando le route definite dall'utente. Questa tecnica può essere utile quando si vuole essere certi che il traffico tra due subnet passi attraverso un'appliance firewall oppure che in nessun caso il traffico proveniente da una rete virtuale possa essere instradato verso Internet.

Route definite dall'utente

È possibile creare route personalizzate o definite dall'utente (statiche) in Azure per eseguire l'override delle route di sistema predefinite di Azure o per aggiungere altre route alla tabella di route di una subnet.

In Azure ogni subnet può avere una tabella di route associata oppure nessuna. Quando si crea una tabella di route e la si associa a una subnet, le route al suo interno vengono combinate con le route predefinite aggiunte da Azure a una subnet oppure ne eseguono l'override.

È possibile specificare i seguenti tipi di hop successivi durante la creazione di una route definita dall'utente:

Appliance virtuale: un'appliance virtuale è una macchina virtuale che generalmente esegue un'applicazione di rete, ad esempio un firewall. Quando si crea una route con il tipo hop appliance virtuale, si specifica anche un indirizzo IP hop successivo. L'indirizzo IP può essere:

  • L'indirizzo IP privato di un'interfaccia di rete collegata a una macchina virtuale.
  • L'indirizzo IP privato di un servizio di bilanciamento del carico interno di Azure.

Gateway di rete virtuale: specificare quando si vuole che il traffico destinato a prefissi degli indirizzi specifici venga indirizzato a un gateway di rete virtuale. Il gateway di rete virtuale deve essere creato con il tipo VPN.

Nessuno: specificare quando si vuole eliminare il traffico verso un prefisso degli indirizzi, invece di inoltrarlo a una destinazione.

Rete virtuale: specificare quando si intende eseguire l'override del routing predefinito in una rete virtuale.

Internet: consente di specificare quando si vuole instradare esplicitamente a Internet il traffico destinato a un prefisso degli indirizzi oppure se si vuole che il traffico destinato ai servizi di Azure con indirizzi IP pubblici resti all'interno della rete backbone di Azure.

Configurare le route definite dall'utente

Di seguito è riportato un esempio di rete virtuale che include tre subnet.

  • Le subnet sono front-end, DMZ e back-end. Nella subnet di rete perimetrale è presente un'appliance virtuale di rete. Le appliance virtuali di rete sono macchine virtuali con funzioni di rete come l'ottimizzazione di routing e firewall.
  • Si desidera assicurarsi che tutto il traffico proveniente dalla subnet front-end passi attraverso l'appliance virtuale di rete fino alla subnet back-end.

Diagramma di rete virtuale con tabella di routing assegnata.

Creare una tabella di routing

La creazione di una tabella di routing è un'operazione semplice. È necessario specificare le impostazioni Nome, Sottoscrizione, Gruppo di risorse e Località. Si decide anche di usare Propagazione route del gateway di rete virtuale.

Screenshot del pannello Crea tabella di route nel portale di Azure.

Le route vengono aggiunte automaticamente alla tabella di route per tutte le subnet con la propagazione del gateway di rete virtuale abilitata. Quando si usa ExpressRoute, la propagazione garantisce che tutte le subnet ottengano le informazioni di routing.

Creare una route personalizzata

Per questo esempio,

  • La nuova route è denominata ToPrivateSubnet.
  • La subnet privata è 10.0.1.0/24.
  • La route usa un'appliance virtuale. Notare le altre opzioni per Tipo hop successivo: Gateway di rete virtuale, Rete virtuale, Internet e Nessuno.
  • L'appliance virtuale è all'indirizzo 10.0.2.4.

Screenshot della pagina Aggiungi route con l'elenco a discesa Tipo hop successivo evidenziato e l'opzione Appliance virtuale selezionata.

In breve, questa route si applica a tutti i prefissi di indirizzo in 10.0.1.0/24 (subnet privata). Il traffico diretto a questi indirizzi verrà inviato all'appliance virtuale con indirizzo 10.0.2.4.

Associare la tabella di route

L'ultimo passaggio dell'esempio consiste nell'associare la subnet pubblica alla nuova tabella di routing. A ogni subnet può essere associata una o nessuna tabella di route.

Screenshot di una tabella di route associata a una rete virtuale.

Nota

Per impostazione predefinita, se si usano route di sistema, il traffico viene indirizzato direttamente alla subnet privata. Tuttavia, con una route definita dall'utente è possibile forzare il traffico attraverso l'appliance virtuale.

Nota

In questo esempio, l'appliance virtuale non dovrà avere un indirizzo IP pubblico e l'inoltro IP dovrà essere abilitato.

Proteggere una rete virtuale usando il tunneling forzato

Il tunneling forzato consente di reindirizzare o "forzare" tutto il traffico associato a Internet verso la posizione locale tramite un tunnel VPN da sito a sito per l'ispezione e il controllo. Si tratta di un requisito di sicurezza fondamentale per la maggior parte dei criteri IT aziendali. Se non si configura il tunneling forzato, il traffico associato a Internet dalle macchine virtuali in Azure raggiunge direttamente Internet attraversando sempre l'infrastruttura di rete di Azure, senza l'opzione che consente di ispezionare o controllare il traffico. L'accesso a Internet non autorizzato può potenzialmente causare la diffusione di informazioni o altri tipi di violazioni della sicurezza. Il tunneling forzato può essere configurato usando Azure PowerShell. Non può essere configurato usando il portale di Azure.

Nell'esempio seguente il tunneling della subnet front-end non viene forzato. I carichi di lavoro nella subnet front-end possono continuare ad accettare e a rispondere alle richieste dei clienti direttamente da Internet. Il tunneling delle subnet di livello intermedio e back-end viene forzato. Tutte le connessioni in uscita da queste due subnet a Internet verranno forzate o reindirizzate verso un sito locale tramite uno dei tunnel VPN da sito a sito.

Subnet back-end e di livello intermedio con tunnelling forzato tramite VPN da sito a sito. Subnet front-end instradate direttamente a Internet.

È possibile configurare il tunneling forzato?

Il tunneling forzato in Azure viene configurato usando le route di rete virtuale personalizzate definite dall'utente.

  • Ciascuna subnet della rete virtuale dispone di una tabella di routing di sistema integrata. La tabella di routing di sistema include i tre gruppi di route seguenti:

    • Route della rete virtuale locale: routing diretto alla destinazione di macchine virtuali nella stessa rete virtuale.
    • Route locali: routing al gateway VPN di Azure.
    • Route predefinita: routing diretto a Internet. I pacchetti destinati agli indirizzi IP privati che non rientrano nelle due route precedenti vengono eliminati.
  • Per configurare il tunneling forzato, è necessario:

    • Creare una tabella di routing.
    • Aggiungere una route predefinita definita dall'utente al gateway VPN.
    • Associare la tabella di routing a una o più subnet della rete virtuale appropriate.
  • Il tunneling forzato deve essere associato a una rete virtuale con un gateway VPN basato su route.

    • È necessario impostare una connessione al sito predefinito tra i siti locali di più sedi locali connessi alla rete virtuale.
    • È necessario configurare il dispositivo VPN locale usando 0.0.0.0/0 come selettori di traffico.

L'uso del tunneling forzato consente di limitare e controllare l'accesso a Internet dalle macchine virtuali e dai servizi cloud in Azure, continuando ad abilitare l'architettura del servizio multilivello necessaria per l'accesso a Internet.

Configurare il server di route di Azure

Server di route Azure semplifica il routing dinamico tra l'appliance virtuale di rete e la rete virtuale. Consente di scambiare informazioni di routing direttamente tramite il protocollo di routing Border Gateway Protocol (BGP) tra qualsiasi appliance virtuale di rete che supporta il protocollo di routing BGP e la rete definita dal software (SDN, Software Defined Network) di Azure nella rete virtuale di Azure senza la necessità di configurare o gestire manualmente le tabelle di route. Il Server di route Azure è un servizio completamente gestito ed è configurato con disponibilità elevata.

Il Server di route Azure semplifica la configurazione, la gestione e la distribuzione dell'appliance virtuale di rete nella rete virtuale.

  • Non è più necessario aggiornare manualmente la tabella di routing nell'appliance virtuale di rete ogni volta che vengono aggiornati gli indirizzi di rete virtuale.

  • Non è più necessario aggiornare manualmente le route definite dall'utente ogni volta che l'appliance virtuale di rete annuncia nuove route o ritira quelle precedenti.

  • È possibile eseguire il peering di più istanze dell'appliance virtuale di rete con il Server di route Azure. È possibile configurare gli attributi BGP nell'appliance virtuale di rete e, a seconda della progettazione (ad esempio, attiva-attiva per le prestazioni o passiva-attiva per la resilienza), consentire al Server di route Azure di sapere quale l'istanza dell'appliance virtuale di rete è attiva o quale è passiva.

  • L'interfaccia tra l'appliance virtuale di rete e il Server di route Azure si basa su un protocollo standard comune. Purché l'appliance virtuale di rete supporti BGP, è possibile eseguirne il peering con il Server di route Azure.

  • È possibile distribuire il Server di route Azure in una delle reti virtuali nuove o esistenti.

  • Informazioni su come distribuire il Server di Route Azure

Diagnosticare un problema di routing

Si supponga che i tentativi di connessione a una macchina virtuale specifica nella rete virtuale di Azure abbiano sempre esito negativo. È possibile diagnosticare un problema relativo al routing visualizzando le route valide per un'interfaccia di rete in una macchina virtuale. Le route valide per tutte le interfacce di rete in una subnet sono una combinazione di route create dall'utente, route predefinite di Azure e route propagate dalla rete locale tramite un gateway VPN di Azure con BGP (Border Gateway Protocol).

È possibile visualizzare le route valide per ogni interfaccia di rete usando il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure. I passaggi seguenti illustrano gli esempi corrispondenti a ogni tecnica. In ogni caso, l'output viene restituito solo se la macchina virtuale è in esecuzione. Se alla macchina virtuale sono collegate più interfacce di rete, è possibile esaminare le route valide per ognuna delle interfacce. Poiché ogni interfaccia di rete può trovarsi in una subnet diversa, ogni interfaccia di rete può avere route valide differenti.

Visualizzare le route valide nel portale di Azure

  1. Accedere al portale di Azure con un account Azure in possesso delle autorizzazioni necessarie.

  2. Nella casella di ricerca immettere il nome della macchina virtuale che si vuole analizzare.

  3. Selezionare la macchina virtuale nei risultati della ricerca.

  4. In Impostazioni selezionare Rete e passare alla risorsa dell'interfaccia di rete selezionandone il nome.

    Portale di Azure - Selezionare una scheda di interfaccia di rete specifica.

  5. In Supporto e risoluzione dei problemi selezionare Route valide. Le route valide per un'interfaccia di rete denominata myVMNic1 sono illustrate nell'immagine seguente:

    Portale di Azure - Route efficaci per una scheda di interfaccia di rete specifica.

Visualizzare le route valide usando Azure PowerShell

È possibile visualizzare le route valide per un'interfaccia di rete con il comando Get-AzEffectiveRouteTable. L'esempio seguente ottiene le route valide per un'interfaccia di rete denominata myVMNic1 che si trova in un gruppo di risorse denominato myResourceGroup:

Get-AzEffectiveRouteTable `

-NetworkInterfaceName myVMNic1 `

-ResourceGroupName myResourceGroup `

Risolvere il problema relativo al routing

I passaggi da eseguire per risolvere il problema di routing includono ad esempio:

  1. Aggiungere una route personalizzata per eseguire l'override di una route predefinita. Informazioni su come aggiungere una route personalizzata.
  2. Modificare o rimuovere una route personalizzata che provoca l'instradamento del traffico verso una posizione non desiderata. Informazioni su come modificare oppure eliminare una route personalizzata.
  3. Assicurarsi che la tabella di route sia associata alla subnet corretta (quella che contiene l'interfaccia di rete). Informazioni su come associare una route a una subnet.
  4. Verificare il corretto funzionamento dei dispositivi distribuiti, ad esempio gateway VPN di Azure o appliance virtuali di rete.

Scegliere la risposta migliore per ogni domanda che segue.

Verificare le conoscenze

1.

Quale tipo di route consente al traffico di eseguire l'override delle route configurate da Azure?

2.

Si verificano alcuni problemi di routing in una rete virtuale. Che cosa deve fare un tecnico per iniziare a diagnosticare il problema?