Konfigurera tvingad tunneltrafik

Med tvingad tunneltrafik kan du omdirigera eller ”tvinga” all Internetbunden trafik tillbaka till din lokala plats via en plats-till-plats-VPN-tunnel för kontroll och granskning. Detta är ett kritiskt säkerhetskrav för de flesta företags IT-principer. Om du inte konfigurerar tvingad tunneltrafik passerar Internetbunden trafik från dina virtuella datorer i Azure alltid från Azure-nätverksinfrastrukturen direkt ut till Internet, utan alternativet att låta dig inspektera eller granska trafiken. Obehörig Internetåtkomst kan potentiellt leda till avslöjande av information eller andra typer av säkerhetsintrång.

Tvingad tunneling kan konfigureras med hjälp av Azure PowerShell. Det kan inte konfigureras med hjälp av Azure Portal. Den här artikeln hjälper dig att konfigurera tvingad tunnel för virtuella nätverk som skapats med hjälp Resource Manager distributionsmodellen. Om du vill konfigurera tvingad tunneling för den klassiska distributionsmodellen kan du se Tvingad tunneling – klassisk.

Om tvingad tunneling

Följande diagram illustrerar hur tvingad tunneling fungerar.

Diagram som visar tvingad tunneling.

I det här exemplet är undernätet i frontend inte tvingad tunnel. Arbetsbelastningarna i undernätet i frontend kan fortsätta att acceptera och svara på kundförfrågningar direkt från Internet. Undernäten Mid-tier och Backend tvingad tunnel. Alla utgående anslutningar från dessa två undernät till Internet tvingas eller omdirigeras tillbaka till en lokal plats via någon av S2S VPN-tunnlarna (plats-till-plats).

På så sätt kan du begränsa och inspektera Internetåtkomst från dina virtuella datorer eller molntjänster i Azure, samtidigt som du fortsätter att aktivera din tjänstarkitektur med flera nivåer som krävs. Om det inte finns några Internetriktade arbetsbelastningar i dina virtuella nätverk kan du också använda tvingad tunneling för hela virtuella nätverk.

Krav och överväganden

Tvingad tunneltrafik i Azure konfigureras med anpassade användardefinierade vägar för virtuella nätverk. Omdirigering av trafik till en lokal plats uttrycks som en standardväg till Azure VPN-gatewayen. Mer information om användardefinierad routning och virtuella nätverk finns i Anpassade användardefinierade vägar.

  • Varje virtuellt nätverksundernät har en inbyggd systemroutningstabell. Systemruttertabellen har följande tre grupper av vägar:

    • Lokala VNet-vägar: Direkt till de virtuella måldatorerna i samma virtuella nätverk.
    • Lokala vägar: Till Azure VPN-gatewayen.
    • Standardväg: Direkt till Internet. Paket till de privata IP-adresser som inte omfattas av de föregående två vägarna tas bort.
  • Den här proceduren använder användardefinierade vägar (UDR) för att skapa en routningstabell för att lägga till en standardväg och sedan associera routningstabellen till dina VNet-undernät för att aktivera tvingad tunneling på dessa undernät.

  • Tvingad tunneling måste associeras med ett VNet som har en ruttbaserad VPN-gateway. Du måste ange en "standardplats" bland de lokala platser som är anslutna till det virtuella nätverket. Dessutom måste den lokala VPN-enheten konfigureras med 0.0.0.0/0 som trafikväljare.

  • Tvingad Tunneling i ExpressRoute konfigureras inte via den här mekanismen, utan aktiveras i stället genom annonsering av en standardväg via ExpressRoute BGP-peeringsessioner. Mer information finns i ExpressRoute-dokumentationen.

  • När både VPN Gateway och ExpressRoute Gateway har distribuerats i samma virtuella nätverk behövs inte längre användardefinierade vägar (UDR) eftersom ExpressRoute Gateway annonserar konfigurerad "standardwebbplats" i VNet.

Översikt över konfiguration

Följande procedur hjälper dig att skapa en resursgrupp och ett VNet. Sedan skapar du en VPN-gateway och konfigurerar tvingad tunneling. I den här proceduren har det virtuella nätverket MultiTier-VNet tre undernät: "Frontend", "Midtier" och "Backend", med fyra anslutningar mellan flera platser: DefaultSiteHQ och tre grenar.

Procedurstegen anger DefaultSiteHQ som standardplatsanslutning för tvingad tunneling och konfigurerar undernäten Midtier och Backend för att använda tvingad tunneling.

Innan du börjar

Installera den senaste versionen av Azure Resource Managers PowerShell-cmdletar. Mer information om hur man installerar PowerShell-cmdletar finns i Så här installerar och konfigurerar du Azure PowerShell.

Viktigt

Du måste installera den senaste versionen av PowerShell-cmdletarna. Annars kan du få valideringsfel när du kör några av cmdletarna.

Logga in

Om du kör PowerShell lokalt öppnar du PowerShell-konsolen med utökade privilegier och ansluter till ditt Azure-konto. Med cmdleten Connect-AzAccount uppmanas du att ange autentiseringsuppgifter. Efter autentiseringen hämtas dina konto inställningar så att de är tillgängliga för Azure PowerShell.

Om du använder Azure Cloud Shell i stället för att köra PowerShell lokalt, kommer du att märka att du inte behöver köra Connect-AzAccount. Azure Cloud Shell ansluter till ditt Azure-konto automatiskt när du har valt prova.

  1. Om du kör PowerShell lokalt loggar du in.

    Connect-AzAccount
    
  2. Om du har mer än en prenumeration hämtar du en lista över dina Azure-prenumerationer.

    Get-AzSubscription
    
  3. Ange den prenumeration som du vill använda.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

Konfigurera tvingad tunneltrafik

Anteckning

Du kan se varningar som säger "Utdataobjekttypen för denna cmdlet kommer att ändras i en framtida version". Detta är förväntat beteende och du kan ignorera dessa varningar på ett säkert sätt.

  1. Skapa en resursgrupp.

    New-AzResourceGroup -Name 'ForcedTunneling' -Location 'North Europe'
    
  2. Skapa ett virtuellt nätverk och ange undernät.

    $s1 = New-AzVirtualNetworkSubnetConfig -Name "Frontend" -AddressPrefix "10.1.0.0/24"
    $s2 = New-AzVirtualNetworkSubnetConfig -Name "Midtier" -AddressPrefix "10.1.1.0/24"
    $s3 = New-AzVirtualNetworkSubnetConfig -Name "Backend" -AddressPrefix "10.1.2.0/24"
    $s4 = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix "10.1.200.0/28"
    $vnet = New-AzVirtualNetwork -Name "MultiTier-VNet" -Location "North Europe" -ResourceGroupName "ForcedTunneling" -AddressPrefix "10.1.0.0/16" -Subnet $s1,$s2,$s3,$s4
    
  3. Skapa de lokala nätverksgatewayerna.

    $lng1 = New-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.111" -AddressPrefix "192.168.1.0/24"
    $lng2 = New-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.112" -AddressPrefix "192.168.2.0/24"
    $lng3 = New-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.113" -AddressPrefix "192.168.3.0/24"
    $lng4 = New-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.114" -AddressPrefix "192.168.4.0/24"
    
  4. Skapa vägtabellen och vägregeln.

    New-AzRouteTable –Name "MyRouteTable" -ResourceGroupName "ForcedTunneling" –Location "North Europe"
    $rt = Get-AzRouteTable –Name "MyRouteTable" -ResourceGroupName "ForcedTunneling" 
    Add-AzRouteConfig -Name "DefaultRoute" -AddressPrefix "0.0.0.0/0" -NextHopType VirtualNetworkGateway -RouteTable $rt
    Set-AzRouteTable -RouteTable $rt
    
  5. Associera vägtabellen med undernäten Midtier och Backend.

    $vnet = Get-AzVirtualNetwork -Name "MultiTier-Vnet" -ResourceGroupName "ForcedTunneling"
    Set-AzVirtualNetworkSubnetConfig -Name "MidTier" -VirtualNetwork $vnet -AddressPrefix "10.1.1.0/24" -RouteTable $rt
    Set-AzVirtualNetworkSubnetConfig -Name "Backend" -VirtualNetwork $vnet -AddressPrefix "10.1.2.0/24" -RouteTable $rt
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  6. Skapa den virtuella nätverksgatewayen. Att skapa en gateway kan ofta ta 45 minuter eller mer, beroende på vald gateway-SKU. Om du ser ValidateSet-fel angående GatewaySKU-värdet kontrollerar du att du har installerat den senaste versionen av PowerShell-cmdletarna. Den senaste versionen av PowerShell-cmdletarna innehåller de nya validerade värdena för de senaste gateway-SKU:erna.

    $pip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -AllocationMethod Dynamic
    $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $ipconfig = New-AzVirtualNetworkGatewayIpConfig -Name "gwIpConfig" -SubnetId $gwsubnet.Id -PublicIpAddressId $pip.Id
    New-AzVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -IpConfigurations $ipconfig -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -EnableBgp $false
    
  7. Tilldela en standardplats till den virtuella nätverksgatewayen. -GatewayDefaultSite är cmdlet-parametern som gör att den framtvingade routningskonfigurationen fungerar, så var noga med att konfigurera den här inställningen korrekt.

    $LocalGateway = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling"
    $VirtualGateway = Get-AzVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling"
    Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway
    
  8. Upprätta VPN-anslutningar för plats-till-plats.

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