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 fondamentale 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 può potenzialmente causare la diffusione di informazioni o altri tipi di violazioni della sicurezza.

I passaggi descritti in questo articolo si applicano al modello di distribuzione classica (legacy) e non al modello di distribuzione corrente, Resource Manager. A meno che non si voglia lavorare specificamente con il modello di distribuzione classico, si consiglia di utilizzare la versione di Gestione risorse in questo articolo.

Nota

Questo articolo riguarda il modello di distribuzione classica (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à con le funzionalità rispetto al modello di distribuzione classica. Per comprendere la differenza tra questi due modelli di distribuzione, vedere Informazioni sui modelli di distribuzione e sullo stato delle risorse.

Se si desidera 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 ExpressRoute non viene configurato mediante questo meccanismo, ma è abilitato annunciando una route predefinita tramite le sessioni di peering BGP ExpressRoute. Per altre informazioni vedere Che cos'è ExpressRoute?

Panoramica della configurazione

Nell'esempio seguente il tunneling della subnet front-end non viene 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 verso 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 del 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 per Gestione dei servizi di Azure (SM) a livello locale nel computer. Questi cmdlet sono diversi dai cmdlet di AzureRM o Az. Per installare i cmdlet per Gestione dei servizi, vedere Installare i cmdlet di Gestione dei servizi. Per altre informazioni su Azure PowerShell in generale, vedere la documentazione di 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: Frontend, Midtier e Backend 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>

I passaggi seguenti consentono 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.

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

    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 di "0.0.0.0/0" su NextHop "VPNGateway".

    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>