Controllare il routing e usare dispositivi virtuali di rete (distribuzione classica) mediante l'interfaccia della riga di comando di Azure

Sebbene l'utilizzo di route del sistema faciliti il traffico automaticamente per la distribuzione, esistono casi in cui si desidera controllare il routing dei pacchetti tramite un dispositivo virtuale. Questo è possibile tramite la creazione di route definite dall'utente che specifichino l'hop successivo per i pacchetti che passano a una subnet specifica per accedere all'applicazione virtuale e tramite l’attivazione dell'inoltro IP per la macchina virtuale in esecuzione come dispositivo virtuale.

Alcuni dei casi in cui possono essere utilizzati dispositivi di rete:

  • Monitoraggio del traffico con un sistema di rilevamento delle intrusioni (ID)
  • Controllo del traffico con un firewall

Per altre informazioni su UDR, l’inoltro IP vedere Route e inoltro IP definiti dall'utente.

Importante

Prima di iniziare a usare le risorse di Azure, è importante comprendere che Azure al momento offre due modelli di distribuzione, la distribuzione classica e Azure Resource Manager. È importante comprendere i modelli e strumenti di distribuzione prima di lavorare con le risorse di Azure. È possibile visualizzare la documentazione relativa a diversi strumenti facendo clic sulle schede nella parte superiore di questo articolo.

In questo articolo viene illustrato il modello di distribuzione classica. È possibile anche controllare il routing e usare dispositivi virtuali di rete nel modello di distribuzione di Gestione risorse.

Scenario

Per illustrare meglio come creare una route definita dall'utente, in questo documento verrà usato lo scenario seguente.

DESCRIZIONE IMMAGINE

In questo scenario creare una route definita dall'utente per la subnet front-end e un'altra route definita dall'utente per la subnet back-end, come descritto di seguito:

  • UDR-FrontEnd. La route front-end definita dall'utente verrà applicata alla subnet FrontEnd e contiene una route:
    • RouteToBackend. Questa route invia tutto il traffico nella subnet di back-end per la macchina virtuale FW1.
  • Back-end di UDR. La route back-end definita dall'utente verrà applicata alla subnet BackEnd e contiene una route:
    • RouteToFrontend. Questa route invia tutto il traffico nella subnet di font-end per la macchina virtuale FW1.

La combinazione di queste route garantisce che tutto il traffico destinato da una subnet a un'altra venga indirizzato alla macchina virtuale FW1, che viene usata come appliance virtuale. È inoltre necessario attivare l'inoltro IP per tale macchina virtuale FW1, per garantire che possa ricevere il traffico destinato ad altre macchine virtuali.

I comandi di esempio dell'interfaccia della riga di comando di Azure riportati di seguito prevedono un ambiente semplice già creato in base allo scenario precedente. Se si desidera eseguire i comandi illustrati in questo documento, creare l'ambiente descritto nella pagina relativa alla creazione di una rete virtuale (classica) mediante l'interfaccia della riga di comando di Azure.

Prerequisito: installare l'interfaccia della riga di comando di Azure

Per eseguire la procedura descritta in questo articolo, installare l'interfaccia della riga di comando di Azure e accedere ad Azure.

Nota

Se non si dispone di un account Azure, è necessario procurarsene uno. Iscriversi per una versione di valutazione gratuita qui. Inoltre, per seguire questa procedura è necessario avere jq o altri strumenti di analisi JSON o libreria installati.

Creare la route definita dall'utente per la subnet front-end

Per creare la tabella di route e la route necessarie per la subnet front-end in base allo scenario precedente, attenersi alla procedura seguente.

  1. Usare il comando seguente per passare alla modalità classica:

     azure config mode asm
    

    Output:

     info:    New mode is asm
    
  2. Eseguire il comando seguente per creare una tabella di route per la subnet front-end:

     azure network route-table create -n UDR-FrontEnd -l uswest
    

    Output:

     info:    Executing command network route-table create
     info:    Creating route table "UDR-FrontEnd"
     info:    Getting route table "UDR-FrontEnd"
     data:    Name                            : UDR-FrontEnd
     data:    Location                        : West US
     info:    network route-table create command OK
    

    Parametri

    • -l (o --location). Area di Azure in cui verrà creato il nuovo gruppo di sicurezza di rete. Per questo scenario, westus.
    • -n (o --name). Nome per il nuovo gruppo di sicurezza di rete. Per questo scenario, NSG-FrontEnd.
  3. Eseguire il comando seguente per creare una route nella tabella della route creata in precedenza per inviare tutto il traffico destinato alla subnet back-end (192.168.2.0/24) alla VM FW1 (192.168.0.4):

     azure network route-table route set -r UDR-FrontEnd -n RouteToBackEnd -a 192.168.2.0/24 -t VirtualAppliance -p 192.168.0.4
    

    Output:

     info:    Executing command network route-table route set
     info:    Getting route table "UDR-FrontEnd"
     info:    Setting route "RouteToBackEnd" in a route table "UDR-FrontEnd"
     info:    network route-table route set command OK
    

    Parametri

    • -r (o --route-table-name). Nome della tabella di route in cui verrà aggiunta la route. Per questo scenario, UDR-FrontEnd.
    • -a (o --address-prefix). Prefisso di indirizzo della subnet alla quale sono destinati i pacchetti. Per questo scenario, 192.168.2.0/24.
    • -t (o --next-hop-type). Tipo di oggetto al quale verrà inviato il traffico. I valori possibili sono VirtualAppliance, VirtualNetworkGateway, VNETLocal, Internet o None.
    • -p (o --next-hop-ip-address). Indirizzo IP per l'hop successivo. Per questo scenario, 192.168.0.4.
  4. Eseguire il comando seguente per associare la tabella di route creata con la subnet FrontEnd:

     azure network vnet subnet route-table add -t TestVNet -n FrontEnd -r UDR-FrontEnd
    

    Output:

     info:    Executing command network vnet subnet route-table add
     info:    Looking up the subnet "FrontEnd"
     info:    Looking up network configuration
     info:    Looking up network gateway route tables in virtual network "TestVNet" subnet "FrontEnd"
     info:    Associating route table "UDR-FrontEnd" and subnet "FrontEnd"
     info:    Looking up network gateway route tables in virtual network "TestVNet" subnet "FrontEnd"
     data:    Route table name                : UDR-FrontEnd
     data:      Location                      : West US
     data:      Routes:
     info:    network vnet subnet route-table add command OK    
    

    Parametri

    • -t (o --vnet-name). Nome della rete virtuale in cui si trova la subnet. Per questo scenario, TestVNet.
    • -n (o --subnet-name. Nome della subnet in cui verrà aggiunta la tabella di route. Per questo scenario, FrontEnd.

Creare la route definita dall'utente per la subnet back-end

Per creare la tabella di route e la route necessarie per la subnet back-end in base allo scenario precedente, attenersi alla procedura seguente:

  1. Per creare una tabella di route per la subnet back-end, eseguire il comando seguente:

     azure network route-table create -n UDR-BackEnd -l uswest
    
  2. Eseguire il comando seguente per creare una route nella tabella della route creata in precedenza per inviare tutto il traffico destinato alla subnet front-end (192.168.1.0/24) alla VM FW1 (192.168.0.4):

     azure network route-table route set -r UDR-BackEnd -n RouteToFrontEnd -a 192.168.1.0/24 -t VirtualAppliance -p 192.168.0.4
    
  3. Eseguire il comando seguente per associare la tabella di route creata in precedenza alla subnet BackEnd:

     azure network vnet subnet route-table add -t TestVNet -n BackEnd -r UDR-BackEnd