Scenario dell'appliance virtualeVirtual appliance scenario

Uno scenario comune tra i clienti di Azure di grandi dimensioni è la necessità di offrire un'applicazione a due livelli esposta a Internet, consentendo l'accesso al livello back-end da un data center locale.A common scenario among larger Azure customer is the need to provide a two-tiered application exposed to the Internet, while allowing access to the back tier from an on-premises datacenter. Questo documento illustra uno scenario che prevede route definite dall'utente (UDR), un gateway VPN e appliance di rete virtuali per distribuire un ambiente a due livelli che soddisfi i requisiti seguenti:This document will walk you through a scenario using User Defined Routes (UDR), a VPN Gateway, and network virtual appliances to deploy a two-tier environment that meets the following requirements:

  • L'applicazione Web deve essere accessibile solo da Internet pubblico.Web application must be accessible from the public Internet only.
  • Il server Web che ospita l'applicazione deve essere in grado di accedere a un server applicazioni back-end.Web server hosting the application must be able to access a backend application server.
  • Tutto il traffico da Internet all'applicazione Web deve passare attraverso un'appliance virtuale firewall.All traffic from the Internet to the web application must go through a firewall virtual appliance. Questa appliance virtuale verrà usata solo per il traffico Internet.This virtual appliance will be used for Internet traffic only.
  • Tutto il traffico verso il server applicazioni deve passare attraverso un'appliance virtuale firewall.All traffic going to the application server must go through a firewall virtual appliance. Questa appliance virtuale verrà usata per l'accesso al server back-end e l'accesso proveniente dalla rete locale tramite un gateway VPN.This virtual appliance will be used for access to the backend end server, and access coming in from the on-premises network via a VPN Gateway.
  • Gli amministratori devono essere in grado di gestire le appliance virtuali firewall dai computer locali, con una terza appliance virtuale firewall usata esclusivamente per scopi di gestione.Administrators must be able to manage the firewall virtual appliances from their on-premises computers, by using a third firewall virtual appliance used exclusively for management purposes.

Si tratta di uno scenario di rete perimetrale standard con una rete perimetrale e una rete protetta.This is a standard DMZ scenario with a DMZ and a protected network. Questo scenario può essere creato in Azure usando gruppi di sicurezza di rete, appliance virtuali firewall o una combinazione di entrambi.Such scenario can be constructed in Azure by using NSGs, firewall virtual appliances, or a combination of both. La tabella seguente mostra un confronto tra vantaggi e svantaggi di gruppi di sicurezza di rete e appliance virtuali firewall.The table below shows some of the pros and cons between NSGs and firewall virtual appliances.

VantaggiPros SvantaggiCons
NSGNSG Nessun costo.No cost.
Integrato nel controllo degli accessi in base al ruolo di Azure.Integrated into Azure RBAC.
Le regole possono essere create in modelli di Azure Resource Manager.Rules can be created in ARM templates.
La complessità può variare in ambienti più grandi.Complexity could vary in larger environments.
FirewallFirewall Controllo completo del piano dati.Full control over data plane.
Gestione centrale con console firewall.Central management through firewall console.
Costo dell'appliance firewall.Cost of firewall appliance.
Non integrato nel controllo degli accessi in base al ruolo di Azure.Not integrated with Azure RBAC.

La soluzione seguente usa appliance virtuali firewall per implementare uno scenario di rete perimetrale/rete protetta.The solution below uses firewall virtual appliances to implement a DMZ/protected network scenario.

ConsiderazioniConsiderations

È possibile distribuire l'ambiente illustrato in precedenza in Azure usando diverse funzionalità attualmente disponibili come indicato di seguito.You can deploy the environment explained above in Azure using different features available today, as follows.

  • Rete virtuale.Virtual network (VNet). Una rete virtuale di Azure funziona in modo analogo a una rete locale e può essere segmentata in una o più subnet per l'isolamento del traffico e la separazione dei compiti.An Azure VNet acts in similar fashion to an on-premises network, and can be segmented into one or more subnets to provide traffic isolation, and separation of concerns.
  • Appliance virtuale.Virtual appliance. Numerosi partner offrono appliance virtuali in Azure Marketplace che possono essere usate per i tre firewall descritti in precedenza.Several partners provide virtual appliances in the Azure Marketplace that can be used for the three firewalls described above.
  • Route definite dall'utente.User Defined Routes (UDR). Le tabelle di route possono contenere route definite dall'utente usate dalla rete di Azure per controllare il flusso dei pacchetti all'interno di una rete virtuale.Route tables can contain UDRs used by Azure networking to control the flow of packets within a VNet. Queste tabelle di route possono essere applicate alle subnet.These route tables can be applied to subnets. Una delle funzionalità più recenti di Azure è la possibilità di applicare una tabella di route alla subnet del gateway, al fine di inoltrare tutto il traffico in ingresso sulla rete virtuale di Azure da una connessione ibrida verso un'appliance virtuale.One of the newest features in Azure is the ability to apply a route table to the GatewaySubnet, providing the ability to forward all traffic coming into the Azure VNet from a hybrid connection to a virtual appliance.
  • Inoltro IP.IP Forwarding. Per impostazione predefinita, il motore di rete Azure inoltra i pacchetti alle schede di interfaccia di rete (NIC) virtuale solo se l'indirizzo IP di destinazione dei pacchetti corrisponde all'indirizzo IP della scheda di interfaccia di rete.By default, the Azure networking engine forward packets to virtual network interface cards (NICs) only if the packet destination IP address matches the NIC IP address. Se quindi una route definita dall'utente indica che un pacchetto dovrà essere inviato a una specifica appliance virtuale, il motore di rete di Azure rilascerà il pacchetto.Therefore, if a UDR defines that a packet must be sent to a given virtual appliance, the Azure networking engine would drop that packet. Per far sì che il pacchetto venga inviato a una macchina virtuale, in questo caso un'appliance virtuale, che non è la destinazione effettiva del pacchetto è necessario abilitare l'inoltro IP per l'appliance virtuale.To ensure the packet is delivered to a VM (in this case a virtual appliance) that is not the actual destination for the packet, you need to enable IP Forwarding for the virtual appliance.
  • Gruppi di sicurezza di rete.Network Security Groups (NSGs). Nell'esempio seguente non vengono usati gruppi di sicurezza di rete, che possono essere tuttavia applicati alle subnet e/o alle schede di interfaccia di rete di questa soluzione per filtrare ulteriormente il traffico in ingresso e in uscita da tali subnet e schede di interfaccia di rete.The example below does not make use of NSGs, but you could use NSGs applied to the subnets and/or NICs in this solution to further filter the traffic in and out of those subnets and NICs.

IPv6 connectivity

In questo esempio è presente una sottoscrizione che include gli elementi seguenti:In this example there is a subscription that contains the following:

  • 2 gruppi di risorse non indicati nel diagramma.2 resource groups, not shown in the diagram.
    • ONPREMRG.ONPREMRG. Contiene tutte le risorse necessarie per simulare una rete locale.Contains all resources necessary to simulate an on-premises network.
    • AZURERG.AZURERG. Contiene tutte le risorse necessarie per l'ambiente di rete virtuale di Azure.Contains all resources necessary for the Azure virtual network environment.
  • Una rete virtuale denominata onpremvnet usata per simulare un data center locale segmentato come indicato di seguito.A VNet named onpremvnet used to mimic an on-premises datacenter segmented as listed below.
    • onpremsn1.onpremsn1. Subnet contenente una macchina virtuale che esegue Ubuntu per simulare un server locale.Subnet containing a virtual machine (VM) running Ubuntu to mimic an on-premises server.
    • onpremsn2.onpremsn2. Subnet contenente una macchina virtuale che esegue Ubuntu per simulare un computer locale usato da un amministratore.Subnet containing a VM running Ubuntu to mimic an on-premises computer used by an administrator.
  • È presente un'appliance virtuale firewall denominata OPFW su onpremvnet usata per mantenere un tunnel per azurevnet.There is one firewall virtual appliance named OPFW on onpremvnet used to maintain a tunnel to azurevnet.
  • Una rete virtuale denominata azurevnet segmentata come indicato di seguito.A VNet named azurevnet segmented as listed below.
    • azsn1.azsn1. Subnet del firewall esterno usata esclusivamente per il firewall esterno.External firewall subnet used exclusively for the external firewall. Tutto il traffico Internet in ingresso passerà attraverso questa subnet.All Internet traffic will come in through this subnet. Questa subnet contiene solo una scheda di interfaccia di rete collegata al firewall esterno.This subnet only contains a NIC linked to the external firewall.
    • azsn2.azsn2. Subnet front-end che ospita una macchina virtuale in esecuzione come server Web accessibile da Internet.Front end subnet hosting a VM running as a web server that will be accessed from the Internet.
    • azsn3.azsn3. Subnet back-end che ospita una macchina virtuale che esegue un server applicazioni back-end accessibile dal server Web front-end.Backend subnet hosting a VM running a backend application server that will be accessed by the front end web server.
    • azsn4.azsn4. Subnet di gestione usata esclusivamente per consentire l'accesso di gestione a tutte le appliance virtuali firewall.Management subnet used exclusively to provide management access to all firewall virtual appliances. Questa subnet contiene solo una scheda di interfaccia di rete per ogni appliance virtuale firewall usata nella soluzione.This subnet only contains a NIC for each firewall virtual appliance used in the solution.
    • GatewaySubnet.GatewaySubnet. Subnet di connessione ibrida di Azure necessaria per consentire a ExpressRoute e al gateway VPN di offrire la connessione tra le reti virtuali di Azure e altre reti.Azure hybrid connection subnet required for ExpressRoute and VPN Gateway to provide connectivity between Azure VNets and other networks.
  • Sono disponibili 3 appliance virtuali firewall nella rete azurevnet .There are 3 firewall virtual appliances in the azurevnet network.
    • AZF1.AZF1. Firewall esterno esposto a Internet pubblico con una risorsa di indirizzo IP pubblico in Azure.External firewall exposed to the public Internet by using a public IP address resource in Azure. È necessario ottenere un modello dal Marketplace o direttamente dal fornitore dell'appliance per il provisioning di un'appliance virtuale con 3 schede di interfaccia di rete.You need to ensure you have a template from the Marketplace, or directly from your appliance vendor, that provisions a 3-NIC virtual appliance.
    • AZF2.AZF2. Firewall interno usato per gestire il traffico tra azsn2 e azsn3.Internal firewall used to control traffic between azsn2 and azsn3. Anche questa è un'appliance virtuale con 3 schede di interfaccia di rete.This is also a 3-NIC virtual appliance.
    • AZF3.AZF3. Firewall di gestione accessibile agli amministratori dal centro dati locale e connesso a una subnet usata per la gestione di tutte le appliance firewall.Management firewall accessible to administrators from the on-premises datacenter, and connected to a management subnet used to manage all firewall appliances. I modelli per appliance virtuali con 2 schede di interfaccia di rete sono disponibili nel Marketplace oppure possono essere richiesti direttamente al fornitore dell'appliance.You can find 2-NIC virtual appliance templates in the Marketplace, or request one directly from your appliance vendor.

Routing definito dall'utenteUser Defined Routing (UDR)

Ogni subnet in Azure può essere collegata a una tabella di route definite dall'utente usata per definire come viene indirizzato il traffico che ha origine nella subnet.Each subnet in Azure can be linked to a UDR table used to define how traffic initiated in that subnet is routed. Se non sono presenti route definite dall'utente, Azure usa le route predefinite per consentire il flusso del traffico da una subnet all'altra.If no UDRs are defined, Azure uses default routes to allow traffic to flow from one subnet to another. Per informazioni approfondite sulle route definite dall'utente, vedere Cosa sono le route definite dall'utente e l'inoltro IP.To better understand UDRs, visit What are User Defined Routes and IP Forwarding.

Per garantire la comunicazione tramite l'appliance firewall corretta, in base all'ultimo requisito indicato in precedenza, è necessario creare la tabella seguente contenente le route definite dall'utente in azurevnet.To ensure communication is done through the right firewall appliance, based on the last requirement above, you need to create the following route table containing UDRs in azurevnet.

azgwudrazgwudr

In questo scenario, il solo traffico da locale ad Azure verrà usato per gestire i firewall connettendosi a AZF3 e tale traffico deve passare attraverso il firewall interno, AZF2.In this scenario, the only traffic flowing from on-premises to Azure will be used to manage the firewalls by connecting to AZF3, and that traffic must go through the internal firewall, AZF2. È quindi necessaria una sola route in GatewaySubnet come illustrato di seguito.Therefore, only one route is necessary in the GatewaySubnet as shown below.

DestinationDestination Hop successivoNext hop SpiegazioneExplanation
10.0.4.0/2410.0.4.0/24 10.0.3.1110.0.3.11 Consente al traffico locale di raggiungere il firewall di gestione AZF3Allows on-premises traffic to reach management firewall AZF3

azsn2udrazsn2udr

DestinationDestination Hop successivoNext hop SpiegazioneExplanation
10.0.3.0/2410.0.3.0/24 10.0.2.1110.0.2.11 Consente il traffico verso la subnet di back-end che ospita il server applicazioni tramite AZF2Allows traffic to the backend subnet hosting the application server through AZF2
0.0.0.0/00.0.0.0/0 10.0.2.1010.0.2.10 Consente di indirizzare il resto del traffico tramite AZF1Allows all other traffic to be routed through AZF1

azsn3udrazsn3udr

DestinationDestination Hop successivoNext hop SpiegazioneExplanation
10.0.2.0/2410.0.2.0/24 10.0.3.1010.0.3.10 Consente al traffico verso azsn2 di passare dal server app al server Web attraverso AZF2Allows traffic to azsn2 to flow from app server to the webserver through AZF2

È anche necessario creare tabelle route per le subnet in onpremvnet per simulare il centro dati locale.You also need to create route tables for the subnets in onpremvnet to mimic the on-premises datacenter.

onpremsn1udronpremsn1udr

DestinationDestination Hop successivoNext hop SpiegazioneExplanation
192.168.2.0/24192.168.2.0/24 192.168.1.4192.168.1.4 Consente il traffico verso onpremsn2 attraverso OPFWAllows traffic to onpremsn2 through OPFW

onpremsn2udronpremsn2udr

DestinationDestination Hop successivoNext hop SpiegazioneExplanation
10.0.3.0/2410.0.3.0/24 192.168.2.4192.168.2.4 Consente il traffico verso la subnet back-end in Azure tramite OPFWAllows traffic to the backed subnet in Azure through OPFW
192.168.1.0/24192.168.1.0/24 192.168.2.4192.168.2.4 Consente il traffico verso onpremsn1 attraverso OPFWAllows traffic to onpremsn1 through OPFW

Inoltro IPIP Forwarding

Le route definite dall'utente e l'inoltro IP sono funzionalità che è possibile usare in combinazione per consentire l'uso delle appliance virtuali per gestire il flusso del traffico in una rete virtuale di Azure.UDR and IP Forwarding are features that you can use in combination to allow virtual appliances to be used to control traffic flow in an Azure VNet. Un dispositivo virtuale non è altro che una macchina virtuale che esegue un'applicazione utilizzata per gestire il traffico di rete in qualche modo, ad esempio un firewall o un dispositivo NAT.A virtual appliance is nothing more than a VM that runs an application used to handle network traffic in some way, such as a firewall or a NAT device.

Questo dispositivo virtuale macchina virtuale deve essere in grado di ricevere traffico in ingresso non viene indirizzato a se stesso.This virtual appliance VM must be able to receive incoming traffic that is not addressed to itself. Per consentire a una macchina virtuale di ricevere il traffico indirizzato ad altre destinazioni, è necessario abilitare l'inoltro IP per la macchina virtuale.To allow a VM to receive traffic addressed to other destinations, you must enable IP Forwarding for the VM. Si tratta di un'impostazione di Azure e non del sistema operativo guest.This is an Azure setting, not a setting in the guest operating system. L'appliance virtuale deve comunque eseguire qualche tipo di applicazione per gestire il traffico in ingresso e indirizzarlo correttamente.Your virtual appliance still needs to run some type of application to handle the incoming traffic, and route it appropriately.

Per altre informazioni sull'inoltro IP, vedere Cosa sono le route definite dall'utente e l'inoltro IP.To learn more about IP Forwarding, visit What are User Defined Routes and IP Forwarding.

Si supponga ad esempio che una rete virtuale di Azure sia configurata come segue:As an example, imagine you have the following setup in an Azure vnet:

  • La subnet onpremsn1 contiene una macchina virtuale denominata onpremvm1.Subnet onpremsn1 contains a VM named onpremvm1.
  • La subnet onpremsn2 contiene una macchina virtuale denominata onpremvm2.Subnet onpremsn2 contains a VM named onpremvm2.
  • Un'appliance virtuale denominata OPFW è connessa a onpremsn1 e onpremsn2.A virtual appliance named OPFW is connected to onpremsn1 and onpremsn2.
  • Una route definita dall'utente collegata a onpremsn1 specifica che tutto il traffico verso onpremsn2 dovrà essere inviato a OPFW.A user defined route linked to onpremsn1 specifies that all traffic to onpremsn2 must be sent to OPFW.

Se a questo punto onpremvm1 tenta di stabilire una connessione a onpremvm2, verrà usata la route definita dall'utente e il traffico verrà inviato a OPFW come hop successivo.At this point, if onpremvm1 tries to establish a connection with onpremvm2, the UDR will be used and traffic will be sent to OPFW as the next hop. Tenere presente che la destinazione effettiva dei pacchetti non viene modificata, onpremvm2 rappresenta ancora la destinazione.Keep in mind that the actual packet destination is not being changed, it still says onpremvm2 is the destination.

Se l'inoltro IP non è attivato per OPFW, la logica della rete virtuale di Azure rilascerà i pacchetti perché consente l'invio di pacchetti a una macchina virtuale solo se l'indirizzo IP della macchina virtuale è la destinazione del pacchetto.Without IP Forwarding enabled for OPFW, the Azure virtual networking logic will drop the packets, since it only allows packets to be sent to a VM if the VM’s IP address is the destination for the packet.

Con l'inoltro IP, la logica della rete virtuale di Azure inoltrerà i pacchetti a OPFW, senza modificare l'indirizzo di destinazione originale.With IP Forwarding, the Azure virtual network logic will forward the packets to OPFW, without changing its original destination address. OPFW deve gestire i pacchetti e determinare cosa farne.OPFW must handle the packets and determine what to do with them.

Per far sì che lo scenario precedente funzioni è necessario abilitare l'inoltro IP sulle schede di interfaccia di rete per OPFW, AZF1, AZF2 e AZF3 che vengono usate per il routing. Si tratta di tutte le schede di interfaccia di rete ad eccezione di quelle collegate alla subnet di gestione.For the scenario above to work, you must enable IP Forwarding on the NICs for OPFW, AZF1, AZF2, and AZF3 that are used for routing (all NICs except the ones linked to the management subnet).

Regole del firewallFirewall Rules

Come descritto in precedenza, l'inoltro IP assicura solo che i pacchetti vengano inviati alle appliance virtuali.As described above, IP Forwarding only ensures packets are sent to the virtual appliances. L'appliance deve comunque stabilire come gestire i pacchetti.Your appliance still needs to decide what to do with those packets. Nello scenario precedente è necessario creare le regole seguenti nelle appliance:In the scenario above, you will need to create the following rules in your appliances:

OPFWOPFW

OPFW rappresenta un dispositivo locale contenente le regole seguenti:OPFW represents an on-premises device containing the following rules:

  • Route: tutto il traffico verso 10.0.0.0/16 (azurevnet) deve essere inviato attraverso il tunnel ONPREMAZURE.Route: All traffic to 10.0.0.0/16 (azurevnet) must be sent through tunnel ONPREMAZURE.
  • Criteri: consentire tutto il traffico bidirezionale tra port2 e ONPREMAZURE.Policy: Allow all bidirectional traffic between port2 and ONPREMAZURE.

AZF1AZF1

AZF1 rappresenta un'appliance virtuale di Azure contenente le regole seguenti:AZF1 represents an Azure virtual appliance containing the following rules:

  • Criteri: consentire tutto il traffico bidirezionale tra port1 e port2.Policy: Allow all bidirectional traffic between port1 and port2.

AZF2AZF2

AZF2 rappresenta un'appliance virtuale di Azure contenente le regole seguenti:AZF2 represents an Azure virtual appliance containing the following rules:

  • Route: tutto il traffico verso 10.0.0.0/16 (onpremvnet) deve essere inviato all'indirizzo IP del gateway di Azure (ovvero 10.0.0.1) attraverso port1.Route: All traffic to 10.0.0.0/16 (onpremvnet) must be sent to the Azure gateway IP address (i.e. 10.0.0.1) through port1.
  • Criteri: consentire tutto il traffico bidirezionale tra port1 e port2.Policy: Allow all bidirectional traffic between port1 and port2.

Gruppi di sicurezza di rete (NGS)Network Security Groups (NSGs)

In questo scenario i gruppi di sicurezza di rete non vengono usati.In this scenario, NSGs are not being used. È tuttavia possibile applicare i gruppi di sicurezza di rete a ogni subnet per limitare il traffico in ingresso e in uscita.However, you could apply NSGs to each subnet to restrict incoming and outgoing traffic. È ad esempio possibile applicare le seguenti regole per gruppi di sicurezza di rete alla subnet del firewall esterno.For instance, you could apply the following NSG rules to the external FW subnet.

In ingressoIncoming

  • Consentire tutto il traffico TCP da Internet alla porta 80 in qualsiasi macchina virtuale della subnet.Allow all TCP traffic from the Internet to port 80 on any VM in the subnet.
  • Rifiutare il resto del traffico da Internet.Deny all other traffic from the Internet.

In uscitaOutgoing

  • Rifiutare il traffico verso Internet.Deny all traffic to the Internet.

Passaggi di livello elevatoHigh level steps

Per distribuire lo scenario seguire questi passaggi generali.To deploy this scenario, follow the high level steps below.

  1. Effettuare l'accesso alla sottoscrizione di Azure.Login to your Azure Subscription.
  2. Se si intende distribuire una rete virtuale per simulare la rete locale, effettuare il provisioning delle risorse che fanno parte di ONPREMRG.If you want to deploy a VNet to mimic the on-premises network, provision the resources that are part of ONPREMRG.
  3. Effettuare il provisioning delle risorse che fanno parte di AZURERG.Provision the resources that are part of AZURERG.
  4. Effettuare il provisioning del tunnel da onpremvnet ad azurevnet.Provision the tunnel from onpremvnet to azurevnet.
  5. Dopo aver effettuato il provisioning di tutte le risorse, accedere a onpremvm2 ed eseguire il ping di 10.0.3.101 per verificare la connessione tra onpremsn2 e azsn3.Once all resources are provisioned, log on to onpremvm2 and ping 10.0.3.101 to test connectivity between onpremsn2 and azsn3.