Configurare il tunneling forzato con il modello di distribuzione classico

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. Si tratta di un requisito di sicurezza critico per la maggior parte dei criteri IT aziendali. Senza il tunneling forzato, il traffico associato a Internet dalle macchine virtuali in Azure raggiungerà direttamente Internet attraversando sempre l'infrastruttura di rete di Azure, senza l'opzione che consente di ispezionare o controllare il traffico. L'accesso a Internet non autorizzato potrebbe provocare la divulgazione di informazioni o altri tipi di violazioni della sicurezza.

I passaggi descritti in questo articolo si applicano al modello di distribuzione classico (legacy) e non si applicano al modello di distribuzione corrente, Resource Manager. A meno che non si voglia lavorare nel modello di distribuzione classica in modo specifico, è consigliabile usare la versione Resource Manager di questo articolo.

Nota

Questo articolo è scritto per il modello di distribuzione classico (legacy). È consigliabile usare invece il modello di distribuzione di Azure più recente. Il modello di distribuzione Resource Manager è il modello di distribuzione più recente e offre più opzioni e compatibilità delle funzionalità rispetto al modello di distribuzione classico. Per comprendere la differenza tra questi due modelli di distribuzione, vedere Informazioni sui modelli di distribuzione e sullo stato delle risorse.

Se si vuole usare una versione diversa di questo articolo, usare il sommario nel riquadro sinistro.

Problemi e considerazioni

Il tunneling forzato in Azure viene configurato tramite route di rete virtuale definite dall'utente. Il reindirizzamento del traffico a un sito locale viene espresso come route predefinita al gateway VPN di Azure. Nella sezione seguente viene elencata la limitazione attuale della tabella di routing e delle route per una rete virtuale di Azure:

  • Ciascuna subnet della rete virtuale dispone di una tabella di routing di sistema integrata. La tabella di routing di sistema include i tre gruppi di route seguenti:

    • Route della rete virtuale locale: direttamente alle macchine virtuali di destinazione nella stessa rete virtuale.
    • Route locali: al gateway VPN di Azure.
    • Route predefinita: direttamente a Internet. I pacchetti destinati agli indirizzi IP privati non rientranti nelle due route precedenti verranno eliminati.
  • Con il rilascio di route definite dall'utente, è possibile 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.

  • È necessario impostare un "sito predefinito" tra i siti locali cross-premise connessi alla rete virtuale.

  • Il tunneling forzato deve essere associato a una rete virtuale che disponga di un gateway VPN (non un gateway statico).

  • Il tunneling forzato di ExpressRoute non è configurato tramite questo meccanismo, ma è abilitato tramite la pubblicità di una route predefinita tramite le sessioni di peering BGP ExpressRoute. Per altre informazioni, vedere Informazioni su ExpressRoute?

Panoramica della configurazione

Nell'esempio seguente la subnet front-end non viene sottoposto a tunneling forzato. I carichi di lavoro nella subnet front-end possono continuare ad accettare e a rispondere alle richieste dei clienti direttamente da Internet. Il tunneling delle subnet di livello intermedio e back-end viene forzato. Tutte le connessioni in uscita da queste due subnet a Internet vengono forzate o reindirizzate a un sito locale tramite uno dei tunnel VPN S2S.

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. È anche possibile applicare il tunneling forzato a tutte le reti virtuali se non sono presenti carichi di lavoro con connessione Internet nelle reti virtuali.

Diagramma che mostra l'architettura di tunneling forzato.

Prerequisiti

Prima di iniziare la configurazione, verificare che ci siano le condizioni seguenti:

  • Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, è possibile attivare i vantaggi per i sottoscrittori di MSDN oppure iscriversi per ottenere un account gratuito.
  • Una rete virtuale configurata.
  • Quando si usa il modello di distribuzione classica, non è possibile usare Azure Cloud Shell. È invece necessario installare la versione più recente dei cmdlet di PowerShell (SM) di Gestione servizi di Azure in locale nel computer. Questi cmdlet sono diversi dai cmdlet AzureRM o Az. Per installare i cmdlet SM, vedere Installare i cmdlet di Gestione servizi. Per altre informazioni su Azure PowerShell in generale, vedere la documentazione Azure PowerShell.

È possibile configurare il tunneling forzato?

La procedura seguente consente di specificare il tunneling forzato per una rete virtuale. I passaggi di configurazione corrispondono al file di configurazione della rete virtuale. In questo esempio, la rete virtuale "MultiTier-VNet" include tre subnet: Frontnd, Midtier e Subnet back-end, con quattro connessioni cross premise: "DefaultSiteHQ" e tre rami.

<VirtualNetworkSite name="MultiTier-VNet" Location="North Europe">
     <AddressSpace>
      <AddressPrefix>10.1.0.0/16</AddressPrefix>
        </AddressSpace>
        <Subnets>
          <Subnet name="Frontend">
            <AddressPrefix>10.1.0.0/24</AddressPrefix>
          </Subnet>
          <Subnet name="Midtier">
            <AddressPrefix>10.1.1.0/24</AddressPrefix>
          </Subnet>
          <Subnet name="Backend">
            <AddressPrefix>10.1.2.0/23</AddressPrefix>
          </Subnet>
          <Subnet name="GatewaySubnet">
            <AddressPrefix>10.1.200.0/28</AddressPrefix>
          </Subnet>
        </Subnets>
        <Gateway>
          <ConnectionsToLocalNetwork>
            <LocalNetworkSiteRef name="DefaultSiteHQ">
              <Connection type="IPsec" />
            </LocalNetworkSiteRef>
            <LocalNetworkSiteRef name="Branch1">
              <Connection type="IPsec" />
            </LocalNetworkSiteRef>
            <LocalNetworkSiteRef name="Branch2">
              <Connection type="IPsec" />
            </LocalNetworkSiteRef>
            <LocalNetworkSiteRef name="Branch3">
              <Connection type="IPsec" />
            </LocalNetworkSiteRef>
        </Gateway>
      </VirtualNetworkSite>
    </VirtualNetworkSite>

La procedura seguente imposta "DefaultSiteHQ" come connessione del sito predefinita per il tunneling forzato e configura le subnet Midtier e Back-end per usare il tunneling forzato.

  1. Aprire la console di PowerShell con diritti elevati. Connettersi all'account usando l'esempio seguente:

    Add-AzureAccount
    
  2. Creare una tabella di routing. Utilizzare il cmdlet seguente per creare la tabella route.

    New-AzureRouteTable –Name "MyRouteTable" –Label "Routing Table for Forced Tunneling" –Location "North Europe"
    
  3. Aggiungere una route predefinita alla tabella di routing.

    L'esempio seguente aggiunge una route predefinita alla tabella di routing creata nel passaggio 1. L'unica route supportata è il prefisso di destinazione "0.0.0.0/0" al "VPNGateway" NextHop.

    Get-AzureRouteTable -Name "MyRouteTable" | Set-AzureRoute –RouteTable "MyRouteTable" –RouteName "DefaultRoute" –AddressPrefix "0.0.0.0/0" –NextHopType VPNGateway
    
  4. Associare la tabella di routing alle subnet.

    Dopo aver creato una tabella di routing e aggiunto una route, usare l'esempio seguente per aggiungere o associare la tabella di route a una subnet della rete virtuale. L'esempio aggiunge la tabella di route "MyRouteTable" alle subnet Midtier e Backend della rete virtuale MultiTier-VNet.

    Set-AzureSubnetRouteTable -VirtualNetworkName "MultiTier-VNet" -SubnetName "Midtier" -RouteTableName "MyRouteTable"
    Set-AzureSubnetRouteTable -VirtualNetworkName "MultiTier-VNet" -SubnetName "Backend" -RouteTableName "MyRouteTable"
    
  5. Assegnare un sito predefinito per il tunneling forzato.

    Nel passaggio precedente, gli script di cmdlet di esempio hanno consentito di creare la tabella route e di associarla a due delle subnet della rete virtuale. L'ultimo passaggio consiste nel selezionare un sito locale tra le connessioni multisito della rete virtuale come sito predefinito o tunnel.

    $DefaultSite = @("DefaultSiteHQ")
    Set-AzureVNetGatewayDefaultSite –VNetName "MultiTier-VNet" –DefaultSite "DefaultSiteHQ"
    

Ulteriori cmdlet di PowerShell

Per eliminare una tabella route

Remove-AzureRouteTable -Name <routeTableName>

Per elencare una tabella route

Get-AzureRouteTable [-Name <routeTableName> [-DetailLevel <detailLevel>]]

Per eliminare una route da una tabella route

Remove-AzureRouteTable –Name <routeTableName>

Per rimuovere una route da una subnet

Remove-AzureSubnetRouteTable –VirtualNetworkName <virtualNetworkName> -SubnetName <subnetName>

Per elencare la tabella route associata a una subnet

Get-AzureSubnetRouteTable -VirtualNetworkName <virtualNetworkName> -SubnetName <subnetName>

Per rimuovere un sito predefinito da un gateway VPN della rete virtuale

Remove-AzureVnetGatewayDefaultSite -VNetName <virtualNetworkName>