Controllare il routing e usare dispositivi virtuali di rete (distribuzione classica) mediante l'interfaccia della riga di comando di AzureControl routing and use virtual appliances (classic) using the Azure CLI

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.Although the use of system routes facilitates traffic automatically for your deployment, there are cases in which you want to control the routing of packets through a virtual appliance. 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.You can do so by creating user defined routes that specify the next hop for packets flowing to a specific subnet to go to your virtual appliance instead, and enabling IP forwarding for the VM running as the virtual appliance.

Alcuni dei casi in cui possono essere utilizzati dispositivi di rete:Some of the cases where virtual appliances can be used include:

  • Monitoraggio del traffico con un sistema di rilevamento delle intrusioni (ID)Monitoring traffic with an intrusion detection system (IDS)
  • Controllo del traffico con un firewallControlling traffic with a firewall

Per altre informazioni su UDR, l’inoltro IP vedere Route e inoltro IP definiti dall'utente.For more information about UDR and IP forwarding, visit User Defined Routes and IP Forwarding.

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.Before you work with Azure resources, it's important to understand that Azure currently has two deployment models: Azure Resource Manager and classic. È importante comprendere i modelli e strumenti di distribuzione prima di lavorare con le risorse di Azure.Make sure you understand deployment models and tools before you work with any Azure resource. È possibile visualizzare la documentazione relativa a diversi strumenti facendo clic sulle schede nella parte superiore di questo articolo.You can view the documentation for different tools by clicking the tabs at the top of this article.

In questo articolo viene illustrato il modello di distribuzione classica.This article covers the classic deployment model. È possibile anche controllare il routing e usare dispositivi virtuali di rete nel modello di distribuzione di Gestione risorse.You can also control routing and use virtual appliances in the Resource Manager deployment model.

ScenarioScenario

Per illustrare meglio come creare un UDR, in questo documento verrà utilizzato lo scenario seguente.To better illustrate how to create UDRs, this document will use the scenario below.

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:In this scenario you will create one UDR for the Front end subnet and another UDR for the Back end subnet , as described below:

  • UDR-FrontEnd.UDR-FrontEnd. Il front-end UDR verrà applicato per il subnet front-end , e contiene una route:The front end UDR will be applied to the FrontEnd subnet, and contain one route:
    • RouteToBackend.RouteToBackend. Questa route invia tutto il traffico nella subnet di back-end per la macchina virtuale FW1 .This route will send all traffic to the back end subnet to the FW1 virtual machine.
  • Back-end di UDR.UDR-BackEnd. Il back-end UDR verrà applicato per il subnet back-end , e contiene una route:The back end UDR will be applied to the BackEnd subnet, and contain one route:
    • RouteToFrontend.RouteToFrontend. Questa route invia tutto il traffico nella subnet di front-end per la macchina virtuale FW1 .This route will send all traffic to the front end subnet to the FW1 virtual machine.

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.The combination of these routes will ensure that all traffic destined from one subnet to another will be routed to the FW1 virtual machine, which is being used as a virtual appliance. È inoltre necessario attivare l'inoltro IP per tale macchina virtuale, per garantire che possa ricevere il traffico destinato ad altre macchine virtuali.You also need to turn on IP forwarding for that VM, to ensure it can receive traffic destined to other VMs.

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.The sample Azure CLI commands below expect a simple environment already created based on the scenario above. 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.If you want to run the commands as they are displayed in this document, create the environment shown in create a VNet (classic) using the Azure CLI.

Prerequisito: installare l'interfaccia della riga di comando di AzurePrerequisite: Install the Azure CLI

Per eseguire i passaggi in questo articolo, è necessario installare l'interfaccia della riga di comando di Azure per Mac, Linux e Windows (interfaccia della riga di comando di Azure) ed è necessario accedere ad Azure.To perform the steps in this article, you need to install the Azure Command-Line Interface for Mac, Linux, and Windows (Azure CLI) and you need to log on to Azure.

Nota

Se non si dispone di un account Azure, è necessario procurarsene uno.If you don't have an Azure account, you need one. Usare la versione di valutazione gratuita.Go sign up for a free trial here. Inoltre, per completare l'operazione è necessario aver installato una libreria o uno strumento di analisi jq o JSON di altro tipo.In addition, to follow along completely you need to have either jq or some other JSON parsing tool or library installed.

Creare la route definita dall'utente per la subnet front-endCreate the UDR for the front end subnet

Per creare la tabella di route e la route necessarie per la subnet front-end in base allo scenario precedente, attenersi alla procedura seguente.To create the route table and route needed for the front end subnet based on the scenario above, follow the steps below.

  1. Usare il comando seguente per passare alla modalità classica:Run the following command to switch to classic mode:

    azure config mode asm
    

    Output:Output:

     info:    New mode is asm
    
  2. Eseguire il comando seguente per creare una tabella di route per la subnet front-end:Run the following command to create a route table for the front-end subnet:

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

    Output: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
    

    ParametriParameters:

    • -l (o --location).-l (or --location). Area di Azure in cui verrà creato il nuovo gruppo di sicurezza di rete.Azure region where the new NSG will be created. Per questo scenario, westus.For our scenario, westus.
    • -n (o --name).-n (or --name). Nome per il nuovo gruppo di sicurezza di rete.Name for the new NSG. Per questo scenario, NSG-FrontEnd.For our 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):Run the following command to create a route in the route table to send all traffic destined to the back-end subnet (192.168.2.0/24) to the FW1 VM (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: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
    

    ParametriParameters:

    • -r (o --route-table-name).-r (or --route-table-name). Nome della tabella di route in cui verrà aggiunta la route.Name of the route table where the route will be added. Per questo scenario, UDR-FrontEnd.For our scenario, UDR-FrontEnd.
    • -a (o --address-prefix).-a (or --address-prefix). Prefisso di indirizzo della subnet alla quale sono destinati i pacchetti.Address prefix for the subnet where packets are destined to. Per questo scenario, 192.168.2.0/24.For our scenario, 192.168.2.0/24.
    • -t (o --next-hop-type).-t (or --next-hop-type). Tipo di oggetto al quale verrà inviato il traffico.Type of object traffic will be sent to. I valori possibili sono VirtualAppliance, VirtualNetworkGateway, VNETLocal, Internet o None.Possible values are VirtualAppliance, VirtualNetworkGateway, VNETLocal, Internet, or None.
    • -p (o --next-hop-ip-address).-p (or --next-hop-ip-address). Indirizzo IP per l'hop successivo.IP address for next hop. Per questo scenario, 192.168.0.4.For our scenario, 192.168.0.4.
  4. Eseguire il comando seguente per associare la tabella di route creata con la subnet FrontEnd:Run the following command to associate the route table created with the FrontEnd subnet:

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

    Output: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    
    

    ParametriParameters:

    • -t (o --vnet-name).-t (or --vnet-name). Nome della rete virtuale in cui si trova la subnet.Name of the VNet where the subnet is located. Per questo scenario, TestVNet.For our scenario, TestVNet.
    • -n (o --subnet-name.-n (or --subnet-name. Nome della subnet in cui verrà aggiunta la tabella di route.Name of the subnet the route table will be added to. Per questo scenario, FrontEnd.For our scenario, FrontEnd.

Creare la route definita dall'utente per la subnet back-endCreate the UDR for the back-end subnet

Per creare la tabella di route e la route necessarie per la subnet back-end in base allo scenario precedente, attenersi alla procedura seguente:To create the route table and route needed for the back-end subnet based on the scenario, complete the following steps:

  1. Eseguire il comando seguente per creare una tabella di route per la subnet back-end:Run the following command to create a route table for the back-end subnet:

    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):Run the following command to create a route in the route table to send all traffic destined to the front-end subnet (192.168.1.0/24) to the FW1 VM (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:Run the following command to associate the route table with the BackEnd subnet:

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