Controllare il routing e usare dispositivi virtuali di rete (distribuzione classica) mediante PowerShell

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 ai diversi strumenti selezionando un'opzione nella parte superiore di questo articolo. In questo articolo viene illustrato il modello di distribuzione classica.

Scenario

Per illustrare meglio come creare un UDR, in questo documento verrà utilizzato lo scenario seguente.

DESCRIZIONE DELL’IMMAGINE

In questo scenario si creerà un UDR per la subnet front-end e un altro UDR per la subnet back-end, come descritto di seguito:

  • UDR-FrontEnd. Il front-end UDR verrà applicato per il subnet front-end , 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. Il back-end UDR verrà applicato per il subnet back-end , e contiene una route:
    • RouteToFrontend. Questa route invia tutto il traffico nella subnet di front-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 utilizzato come un dispositivo virtuale. È inoltre necessario attivare l'inoltro IP per tale macchina virtuale, per garantire che possa ricevere il traffico destinato ad altre macchine virtuali.

I comandi di esempio di Azure PowerShell 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 PowerShell.

Prerequisito: installare il modulo Azure PowerShell.

Per realizzare la procedura descritta in questo articolo, è necessario installare e configurare Azure PowerShell e seguire le istruzioni fino al termine della procedura per accedere ad Azure e selezionare la sottoscrizione desiderata.

Nota

Se non si dispone di un account Azure, è necessario procurarsene uno. Usare la versione di valutazione gratuita.

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. Eseguire il comando seguente per creare una tabella di route per la subnet front-end:

    New-AzureRouteTable -Name UDR-FrontEnd -Location uswest `
    -Label "Route table for front end subnet"
    
  2. 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):

    Get-AzureRouteTable UDR-FrontEnd `
    |Set-AzureRoute -RouteName RouteToBackEnd -AddressPrefix 192.168.2.0/24 `
    -NextHopType VirtualAppliance `
    -NextHopIpAddress 192.168.0.4
    
  3. Eseguire il comando seguente per associare la tabella di route creata in precedenza alla subnet FrontEnd:

    Set-AzureSubnetRouteTable -VirtualNetworkName TestVNet `
    -SubnetName FrontEnd `
    -RouteTableName UDR-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, seguire questa procedura:

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

    New-AzureRouteTable -Name UDR-BackEnd `
    -Location uswest `
    -Label "Route table for back end subnet"
    
  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):

    Get-AzureRouteTable UDR-BackEnd
    | Set-AzureRoute `
    -RouteName RouteToFrontEnd `
    -AddressPrefix 192.168.1.0/24 `
    -NextHopType VirtualAppliance `
    -NextHopIpAddress 192.168.0.4
    
  3. Eseguire il comando seguente per associare la tabella di route creata in precedenza alla subnet BackEnd:

    Set-AzureSubnetRouteTable -VirtualNetworkName TestVNet `
    -SubnetName BackEnd `
    -RouteTableName UDR-BackEnd
    

Abilitare l'inoltro dell'indirizzo IP sulla VM FW1

Per abilitare l'inoltro dell'indirizzo IP nella macchina virtuale FW1, seguire questa procedura:

  1. Per verificare lo stato dell'inoltro dell'indirizzo IP, eseguire il comando seguente:

    Get-AzureVM -Name FW1 -ServiceName TestRGFW `
    | Get-AzureIPForwarding
    
  2. Per abilitare l'inoltro dell'indirizzo IP per la macchina virtuale FW1, eseguire il comando seguente:

    Get-AzureVM -Name FW1 -ServiceName TestRGFW `
    | Set-AzureIPForwarding -Enable