Configurare il tunneling forzato tramite il modello di distribuzione Azure Resource ManagerConfigure forced tunneling using the Azure Resource Manager deployment model

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.Forced tunneling lets you redirect or "force" all Internet-bound traffic back to your on-premises location via a Site-to-Site VPN tunnel for inspection and auditing. Si tratta di un requisito di sicurezza critico per la maggior parte dei criteri IT aziendali.This is a critical security requirement for most enterprise IT policies. Senza il tunneling forzato, il traffico verso Internet dalle macchine virtuali in Azure raggiunge sempre direttamente Internet attraversando l'infrastruttura di rete di Azure, senza che si possa analizzare o controllare il traffico.Without forced tunneling, Internet-bound traffic from your VMs in Azure always traverses from Azure network infrastructure directly out to the Internet, without the option to allow you to inspect or audit the traffic. L'accesso a Internet non autorizzato potrebbe provocare la divulgazione di informazioni o altri tipi di violazioni della sicurezza.Unauthorized Internet access can potentially lead to information disclosure or other types of security breaches.

Azure attualmente funziona con due modelli di distribuzione: Azure Resource Manager e classica.Azure currently works with two deployment models: Resource Manager and classic. I due modelli non sono completamente compatibili tra loro.The two models are not completely compatible with each other. Prima di iniziare, è necessario conoscere il modello da usare.Before you begin, you need to know which model that you want to work in. Per informazioni, vedere l'articolo contenente le informazioni sui modelli di distribuzione.For information about the deployment models, see Understanding deployment models. Se non si ha familiarità con Azure, è consigliabile usare il modello di distribuzione Resource Manager.If you are new to Azure, we recommend that you use the Resource Manager deployment model.

Questo articolo illustra la configurazione del tunneling forzato per le reti virtuali create usando il modello di distribuzione di Gestione risorse.This article walks you through configuring forced tunneling for virtual networks created using the Resource Manager deployment model. Il tunneling forzato può essere configurato tramite PowerShell e non tramite il portale.Forced tunneling can be configured by using PowerShell, not through the portal. Se si intende configurare il tunneling forzato per il modello di distribuzione classica, selezionare l'articolo relativo alla distribuzione classica nell'elenco a discesa seguente:If you want to configure forced tunneling for the classic deployment model, select classic article from the following dropdown list:

Informazioni sul tunneling forzatoAbout forced tunneling

Nel diagramma seguente viene illustrato il funzionamento del tunneling forzato.The following diagram illustrates how forced tunneling works.

Tunneling forzato

Nell'esempio riportato in precedenza, il tunneling della subnet front-end non viene forzato.In the example above, the Frontend subnet is not forced tunneled. I carichi di lavoro nella subnet front-end possono continuare ad accettare e a rispondere alle richieste dei clienti direttamente da Internet.The workloads in the Frontend subnet can continue to accept and respond to customer requests from the Internet directly. Il tunneling delle subnet di livello intermedio e back-end viene forzato.The Mid-tier and Backend subnets are forced tunneled. Tutte le connessioni in uscita da queste due subnet a Internet verranno forzate o reindirizzate verso un sito locale tramite uno dei tunnel VPN S2S.Any outbound connections from these two subnets to the Internet will be forced or redirected back to an on-premises site via one of the S2S VPN tunnels.

Ciò consente di limitare e ispezionare l'accesso a Internet dalle macchine virtuali o dai servizi cloud in Azure, pur continuando ad abilitare l'architettura dei servizi multilivello richiesta.This allows you to restrict and inspect Internet access from your virtual machines or cloud services in Azure, while continuing to enable your multi-tier service architecture required. È anche possibile applicare il tunneling forzato a tutte le reti virtuali se non sono presenti carichi di lavoro con connessione Internet nelle reti virtuali.If there are no Internet-facing workloads in your virtual networks, you also can apply forced tunneling to the entire virtual networks.

Problemi e considerazioniRequirements and considerations

Il tunneling forzato in Azure viene configurato tramite route di rete virtuale definite dall'utente.Forced tunneling in Azure is configured via virtual network user-defined routes. Il reindirizzamento del traffico a un sito locale viene espresso come route predefinita al gateway VPN di Azure.Redirecting traffic to an on-premises site is expressed as a Default Route to the Azure VPN gateway. Per altre informazioni sulle route definite dall'utente e sulle reti virtuali, vedere Route definite dall'utente e inoltro IP.For more information about user-defined routing and virtual networks, see User-defined routes and IP forwarding.

  • Ciascuna subnet della rete virtuale dispone di una tabella di routing di sistema integrata.Each virtual network subnet has a built-in, system routing table. La tabella di routing di sistema include i tre gruppi di route seguenti:The system routing table has the following three groups of routes:

    • Route della rete virtuale locale: direttamente alle macchine virtuali di destinazione nella stessa rete virtuale.Local VNet routes: Directly to the destination VMs in the same virtual network.
    • Route locali: al gateway VPN di Azure.On-premises routes: To the Azure VPN gateway.
    • Route predefinita: direttamente a Internet.Default route: Directly to the Internet. I pacchetti destinati agli indirizzi IP privati che non rientrano nelle due route precedenti vengono eliminati.Packets destined to the private IP addresses not covered by the previous two routes are dropped.
  • Questa procedura usa le route definite dall'utente per creare una tabella di routing per aggiungere una route predefinita, quindi associare la tabella di routing alle subnet della rete virtuale per abilitare il tunneling forzato in tali subnet.This procedure uses user-defined routes (UDR) to create a routing table to add a default route, and then associate the routing table to your VNet subnet(s) to enable forced tunneling on those subnets.
  • Il tunneling forzato deve essere associato a una rete virtuale con un gateway VPN basato su route.Forced tunneling must be associated with a VNet that has a route-based VPN gateway. È necessario impostare un "sito predefinito" tra i siti locali cross-premise connessi alla rete virtuale.You need to set a "default site" among the cross-premises local sites connected to the virtual network. È anche necessario configurare il dispositivo VPN locale usando 0.0.0.0/0 come selettori di traffico.Also, the on-premises VPN device must be configured using 0.0.0.0/0 as traffic selectors.
  • Il tunneling forzato ExpressRoute non viene configurato mediante questo meccanismo, ma è abilitato annunciando una route predefinita tramite le sessioni di peering BGP ExpressRoute.ExpressRoute forced tunneling is not configured via this mechanism, but instead, is enabled by advertising a default route via the ExpressRoute BGP peering sessions. Per altre informazioni, vedere la Documentazione su ExpressRoute.For more information, see the ExpressRoute Documentation.

Panoramica della configurazioneConfiguration overview

La procedura seguente consente di creare un gruppo di risorse e una rete virtuale.The following procedure helps you create a resource group and a VNet. Si passerà quindi alla creazione di un gateway VPN e alla configurazione del tunneling forzato.You'll then create a VPN gateway and configure forced tunneling. In questa procedura, la rete virtuale 'MultiTier-VNet' include tre subnet: 'Frontend', 'Midtier' e 'Backend' con quattro connessioni cross-premise: 'DefaultSiteHQ' e tre rami.In this procedure, the virtual network 'MultiTier-VNet' has three subnets: 'Frontend', 'Midtier', and 'Backend', with four cross-premises connections: 'DefaultSiteHQ', and three Branches.

La procedura illustrata consente di impostare 'DefaultSiteHQ' come connessione predefinita del sito per il tunneling forzato e di configurare le subnet 'Midtier' e 'Backend' per l'uso del tunneling forzato.The procedure steps set the 'DefaultSiteHQ' as the default site connection for forced tunneling, and configure the 'Midtier' and 'Backend' subnets to use forced tunneling.

Prima di iniziareBefore you begin

Installare la versione più recente dei cmdlet di PowerShell per Azure Resource Manager.Install the latest version of the Azure Resource Manager PowerShell cmdlets. Per altre informazioni sull'installazione dei cmdlet di PowerShell, vedere Come installare e configurare Azure PowerShell .See How to install and configure Azure PowerShell for more information about installing the PowerShell cmdlets.

Importante

È consigliabile installare la versione più recente dei cmdlet di PowerShell.Installing the latest version of the PowerShell cmdlets is required. In caso contrario, si potrebbero ricevere errori di convalida durante l'esecuzione di alcuni cmdlet.Otherwise, you may receive validation errors when running some of the cmdlets.

Per accedereTo log in

Prima di iniziare questa configurazione, è necessario accedere all'account Azure.Before beginning this configuration, you must log in to your Azure account. Il cmdlet richiede le credenziali di accesso per l'account di Azure.The cmdlet prompts you for the login credentials for your Azure account. Dopo l'accesso, vengono scaricate le impostazioni dell'account in modo che siano disponibili per Azure PowerShell.After logging in, it downloads your account settings so they are available to Azure PowerShell. Per altre informazioni, vedere Uso di Windows PowerShell con Gestione risorse.For more information, see Using Windows PowerShell with Resource Manager.

Per accedere, aprire la console di PowerShell con privilegi elevati e connettersi al proprio account.To log in, open your PowerShell console with elevated privileges, and connect to your account. Per eseguire la connessione, usare gli esempi che seguono:Use the following example to help you connect:

Login-AzureRmAccount

Se si hanno più sottoscrizioni di Azure, selezionare le sottoscrizioni per l'account.If you have multiple Azure subscriptions, check the subscriptions for the account.

Get-AzureRmSubscription

Specificare la sottoscrizione da usare.Specify the subscription that you want to use.

Select-AzureRmSubscription -SubscriptionName "Replace_with_your_subscription_name"

È possibile configurare il tunneling forzato?Configure forced tunneling

Nota

Potrebbero essere visualizzati avvisi indicanti che il tipo di oggetto di output del cmdlet verrà modificato in una versione futura.You may see warnings saying "The output object type of this cmdlet will be modified in a future release". Si tratta del comportamento previsto ed è possibile ignorare questi avvisi.This is expected behavior and you can safely ignore these warnings.

  1. Creare un gruppo di risorse.Create a resource group.

    New-AzureRmResourceGroup -Name 'ForcedTunneling' -Location 'North Europe'
    
  2. Creare una rete virtuale e specificare le subnet.Create a virtual network and specify subnets.

    $s1 = New-AzureRmVirtualNetworkSubnetConfig -Name "Frontend" -AddressPrefix "10.1.0.0/24"
    $s2 = New-AzureRmVirtualNetworkSubnetConfig -Name "Midtier" -AddressPrefix "10.1.1.0/24"
    $s3 = New-AzureRmVirtualNetworkSubnetConfig -Name "Backend" -AddressPrefix "10.1.2.0/24"
    $s4 = New-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix "10.1.200.0/28"
    $vnet = New-AzureRmVirtualNetwork -Name "MultiTier-VNet" -Location "North Europe" -ResourceGroupName "ForcedTunneling" -AddressPrefix "10.1.0.0/16" -Subnet $s1,$s2,$s3,$s4
    
  3. Creare i gateway di rete locale.Create the local network gateways.

    $lng1 = New-AzureRmLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.111" -AddressPrefix "192.168.1.0/24"
    $lng2 = New-AzureRmLocalNetworkGateway -Name "Branch1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.112" -AddressPrefix "192.168.2.0/24"
    $lng3 = New-AzureRmLocalNetworkGateway -Name "Branch2" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.113" -AddressPrefix "192.168.3.0/24"
    $lng4 = New-AzureRmLocalNetworkGateway -Name "Branch3" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.114" -AddressPrefix "192.168.4.0/24"
    
  4. Creare la tabella di route e la regola di route.Create the route table and route rule.

    New-AzureRmRouteTable –Name "MyRouteTable" -ResourceGroupName "ForcedTunneling" –Location "North Europe"
    $rt = Get-AzureRmRouteTable –Name "MyRouteTable" -ResourceGroupName "ForcedTunneling" 
    Add-AzureRmRouteConfig -Name "DefaultRoute" -AddressPrefix "0.0.0.0/0" -NextHopType VirtualNetworkGateway -RouteTable $rt
    Set-AzureRmRouteTable -RouteTable $rt
    
  5. Associare la tabella di route alle subnet Midtier e Backend.Associate the route table to the Midtier and Backend subnets.

    $vnet = Get-AzureRmVirtualNetwork -Name "MultiTier-Vnet" -ResourceGroupName "ForcedTunneling"
    Set-AzureRmVirtualNetworkSubnetConfig -Name "MidTier" -VirtualNetwork $vnet -AddressPrefix "10.1.1.0/24" -RouteTable $rt
    Set-AzureRmVirtualNetworkSubnetConfig -Name "Backend" -VirtualNetwork $vnet -AddressPrefix "10.1.2.0/24" -RouteTable $rt
    Set-AzureRmVirtualNetwork -VirtualNetwork $vnet
    
  6. Creare il gateway con un sito predefinito.Create the Gateway with a default site. Questa procedura può richiedere 45 minuti o più perché include le operazioni di creazione e configurazione del gateway.This step takes some time to complete, sometimes 45 minutes or more, because you are creating and configuring the gateway.
    -GatewayDefaultSite è il parametro di cmdlet che consente il funzionamento della configurazione del routing forzata. Assicurarsi pertanto di configurare questa impostazione in modo corretto.The -GatewayDefaultSite is the cmdlet parameter that allows the forced routing configuration to work, so take care to configure this setting properly. Se vengono visualizzati errori ValidateSet riguardo al valore GatewaySKU, verificare di avere installato la versione più recente dei cmdlet di PowerShell.If you see ValidateSet errors regarding the GatewaySKU value, verify that you have installed the latest version of the PowerShell cmdlets. La versione più recente dei cmdlet di PowerShell contiene i nuovi valori convalidati per gli SKU del gateway più recenti.The latest version of the PowerShell cmdlets contains the new validated values for the latest Gateway SKUs.

    $pip = New-AzureRmPublicIpAddress -Name "GatewayIP" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -AllocationMethod Dynamic
    $gwsubnet = Get-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $ipconfig = New-AzureRmVirtualNetworkGatewayIpConfig -Name "gwIpConfig" -SubnetId $gwsubnet.Id -PublicIpAddressId $pip.Id
    New-AzureRmVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -IpConfigurations $ipconfig -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -GatewayDefaultSite $lng1 -EnableBgp $false
    
  7. Stabilire le connessioni VPN da sito a sito.Establish the Site-to-Site VPN connections.

    $gateway = Get-AzureRmVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling"
    $lng1 = Get-AzureRmLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling" 
    $lng2 = Get-AzureRmLocalNetworkGateway -Name "Branch1" -ResourceGroupName "ForcedTunneling" 
    $lng3 = Get-AzureRmLocalNetworkGateway -Name "Branch2" -ResourceGroupName "ForcedTunneling" 
    $lng4 = Get-AzureRmLocalNetworkGateway -Name "Branch3" -ResourceGroupName "ForcedTunneling" 
    
    New-AzureRmVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng1 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzureRmVirtualNetworkGatewayConnection -Name "Connection2" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng2 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzureRmVirtualNetworkGatewayConnection -Name "Connection3" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng3 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzureRmVirtualNetworkGatewayConnection -Name "Connection4" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng4 -ConnectionType IPsec -SharedKey "preSharedKey"
    
    Get-AzureRmVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "ForcedTunneling"