Configuración de la tunelización forzada mediante el sitio predeterminado para conexiones de sitio a sitio

Los pasos de este artículo le ayudarán a configurar la tunelización forzada para las conexiones IPsec de sitio a sitio (S2S) especificando un sitio predeterminado. Para obtener información sobre los métodos de configuración para la tunelización forzada, incluida la configuración de la tunelización forzada a través de BGP, consulte Acerca de la tunelización forzada para VPN Gateway.

De manera predeterminada, el tráfico destinado a Internet desde las VM va directamente a Internet. Si desea forzar todo el tráfico destinado a Internet a través de la puerta de enlace VPN a un sitio local para su inspección y auditoría, puede hacerlo mediante la configuración de la tunelización forzada. Tras configurar la tunelización forzada, si lo desea, puede enrutar a Internet directamente el tráfico destinado a Internet para las subredes especificadas mediante rutas definidas por el usuario (UDR) personalizadas.

Diagram shows split tunneling.

Los siguientes pasos le ayudan a configurar un escenario de tunelización forzada mediante la especificación de un sitio predeterminado. De manera opcional, con UDR personalizadas, para enrutar el tráfico puede especificar que el tráfico destinado a Internet desde la subred de front-end vaya directamente a Internet, en lugar de al sitio local.

  • La red virtual que cree tiene tres subredes: front-end, nivel medio y back-end con cuatro conexiones entre locales: DefaultSiteHQ y tres ramas.
  • Especifique el sitio predeterminado para la puerta de enlace de VPN mediante PowerShell, lo que obliga a todo el tráfico a Internet a volver a la ubicación local. El sitio predeterminado no se puede configurar usando Azure Portal.
  • A la subred de front-end se le asigna una UDR para enviar directamente a Internet el tráfico destinado a Internet, omitiendo la puerta de enlace de VPN. El resto del tráfico se enruta normalmente.
  • Las subredes de nivel medio y back-end siguen forzando la tunelización de tráfico a Internet de vuelta al sitio local a través de la puerta de enlace de VPN, ya que hay especificado un sitio predeterminado.

Creación de una red virtual y subredes

Primero, cree el entorno de pruebas. Puede usar Azure Cloud Shell o ejecutar PowerShell localmente. Para obtener más información, consulte Instalación y configuración de Azure PowerShell.

Nota

Puede que vea advertencias que indican que "el tipo de objeto de salida de este cmdlet se va a modificar en una versión futura". Este es el comportamiento esperado y puede ignorar estas advertencias.

  1. Cree un grupo de recursos con New-AzResourceGroup.

    New-AzResourceGroup -Name "TestRG1" -Location "EastUS"
    
  2. Cree una red virtual con New-AzVirtualNetwork.

    $vnet = New-AzVirtualNetwork `
    -ResourceGroupName "TestRG1" `
    -Location "EastUS" `
    -Name "VNet1" `
    -AddressPrefix 10.1.0.0/16
    
  3. Cree subredes mediante New-AzVirtualNetworkSubnetConfig. Cree subredes front-end, de nivel medio y back-end, y una subred de puerta de enlace (que debe llamarse GatewaySubnet).

    $subnetConfigFrontend = Add-AzVirtualNetworkSubnetConfig `
      -Name Frontend `
      -AddressPrefix 10.1.0.0/24 `
      -VirtualNetwork $vnet
    
    $subnetConfigMid-tier = Add-AzVirtualNetworkSubnetConfig `
      -Name Mid-tier `
      -AddressPrefix 10.1.1.0/24 `
      -VirtualNetwork $vnet
    
    $subnetConfigBackend = Add-AzVirtualNetworkSubnetConfig `
      -Name Backend `
      -AddressPrefix 10.1.2.0/24 `
      -VirtualNetwork $vnet
    
    $subnetConfigGW = Add-AzVirtualNetworkSubnetConfig `
      -Name GatewaySubnet `
      -AddressPrefix 10.1.200.0/27 `
      -VirtualNetwork $vnet
    
  4. Escriba las configuraciones de subred en la red virtual con Set-AzVirtualNetwork, lo que crea las subredes en la red virtual:

    $vnet | Set-AzVirtualNetwork
    

Creación de puertas de enlace de red local

En esta sección, cree las puertas de enlace de red locales para los sitios mediante New-AzLocalNetworkGateway. Hay una breve pausa entre cada comando a medida que se crea cada puerta de enlace de red local. En este ejemplo, los valores de -GatewayIpAddress son marcadores de posición. Para establecer una conexión, tendrá que reemplazar estos valores por las direcciones IP públicas de los respectivos dispositivos VPN locales.

$lng1 = New-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.111" -AddressPrefix "192.168.1.0/24"
$lng2 = New-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.112" -AddressPrefix "192.168.2.0/24"
$lng3 = New-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.113" -AddressPrefix "192.168.3.0/24"
$lng4 = New-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.114" -AddressPrefix "192.168.4.0/24"

Creación de una puerta de enlace de VPN

En esta sección, solicitará una dirección IP pública y creará una puerta de enlace de VPN asociada al objeto de la dirección IP pública. La dirección IP pública se usa al conectar un dispositivo VPN local o externo a la puerta de enlace de VPN para conexiones entre locales.

  1. Solicite una dirección IP pública para su puerta de enlace de VPN mediante New-AzPublicIpAddress.

    $gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
    
  2. Cree la configuración de la dirección IP de la puerta de enlace mediante New-AzVirtualNetworkGatewayIpConfig. Esta configuración es referida al crear la puerta de enlace de VPN.

    $vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1"
    $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
    $gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $gwsubnet.Id -PublicIpAddressId $gwpip.Id
    
  3. Cree la puerta de enlace de red virtual con el tipo de puerta de enlace "Vpn" mediante New-AzVirtualNetworkGateway. La creación de una puerta de enlace puede tardar 45 minutos o más, en función la SKU de la puerta de enlace que seleccione.

    En este ejemplo se usa la SKU VpnGw2, generación 2. Si ve errores ValidateSet relacionados con el valor de GatewaySku, compruebe que tiene instalada la versión más reciente de los cmdlets de PowerShell. La versión más reciente contiene los nuevos valores validados para las SKU más recientes de la puerta de enlace.

    New-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1" -Location "EastUS" -IpConfigurations $gwipconfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku VpnGw2 -VpnGatewayGeneration "Generation2"
    

Configuración de la tunelización forzada: sitio predeterminado

Configure la tunelización forzada mediante la asignación de un sitio predeterminado a la puerta de enlace de red virtual. Si no especifica un sitio predeterminado, el tráfico de Internet no se fuerza a través de la puerta de enlace de VPN y, en su lugar, atravesará directamente a Internet para todas las subredes (de forma predeterminada).

Para asignar un sitio predeterminado para la puerta de enlace, use el parámetro -GatewayDefaultSite. Asegúrese de asignarlo correctamente.

  1. Primero declare las variables que especifican la información de la puerta de enlace de red virtual y la puerta de enlace de red local para el sitio predeterminado, en este caso, DefaultSiteHQ.

    $LocalGateway = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1"
    $VirtualGateway = Get-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    
  2. A continuación, establezca el sitio predeterminado de la puerta de enlace de red virtual mediante Set-AzVirtualNetworkGatewayDefaultSite.

    Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway
    

Llegados a este punto, todo el tráfico enlazado a Internet está ahora configurado para forzar la tunelización a DefaultSiteHQ. El dispositivo VPN local debe configurarse con 0.0.0.0/0 como selectores de tráfico.

  • Si desea configurar solo la tunelización forzada y no enrutar directamente a Internet el tráfico destinado a Internet para subredes específicas, puede ir directamente a la sección Establecer conexiones de este artículo para crear las conexiones.
  • Si quiere que subredes específicas envíen tráfico destinado a Internet directamente a Internet, continúe con las secciones siguientes para configurar UDR personalizadas y asignar rutas.

Enrutamiento del tráfico enlazado a Internet para subredes específicas

Como opción, si desea que el tráfico enlazado a Internet se envíe directamente a Internet para subredes específicas (en lugar de a la red local), siga estos pasos. Estos pasos se aplican a la tunelización forzada que se ha configurado especificando un sitio predeterminado o que se ha configurado a través de BGP.

Creación de tablas de rutas y de rutas

Para especificar que el tráfico destinado a Inter debe ir directamente a Internet, cree la tabla de rutas y la ruta pertinentes. Más adelante asignará la tabla de rutas a la subred front-end.

  1. Cree las tablas de rutas mediante New-AzRouteTable.

    $routeTable1 = New-AzRouteTable `
    -Name 'RouteTable1' `
    -ResourceGroupName "TestRG1" `
    -location "EastUS"
    
  2. Cree las rutas con los siguientes cmdlets: GetAzRouteTable, Add-AzRouteConfig, y Set-AzRouteConfig. Cree la ruta para el tipo de próximo salto “Internet” en RouteTable1. Esta ruta se asigna más adelante a la subred front-end.

    Get-AzRouteTable `
       -ResourceGroupName "TestRG1" `
       -Name "RouteTable1" `
       | Add-AzRouteConfig `
       -Name "ToInternet" `
       -AddressPrefix 0.0.0.0/0 `
       -NextHopType "Internet" `
       | Set-AzRouteTable
    

Asignación de rutas

En esta sección, asignará la tabla de rutas y las rutas a la subred front-end mediante los siguientes comandos de PowerShell: GetAzRouteTable, Set-AzRouteConfig, y Set-AzVirtualNetwork.

  1. Asigne la subred frontend a la tabla RouteTable1 con la ruta “ToInternet” especificando 0.0.0.0/0 con el próximo salto Internet.

    $vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1"
    $routeTable1 = Get-AzRouteTable `
       -ResourceGroupName "TestRG1" `
       -Name "RouteTable1" 
    Set-AzVirtualNetworkSubnetConfig `
       -VirtualNetwork $vnet `
       -Name 'Frontend' `
       -AddressPrefix 10.1.0.0/24 `
       -RouteTable $routeTable1 | `
    Set-AzVirtualNetwork
    

Establecimiento de conexiones VPN S2S

Use New-AzVirtualNetworkGatewayConnection para establecer las conexiones S2S.

  1. Declare las variables.

    $gateway = Get-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    $lng1 = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1" 
    $lng2 = Get-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "TestRG1" 
    $lng3 = Get-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "TestRG1" 
    $lng4 = Get-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "TestRG1"
    
  2. Cree las conexiones.

    New-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng1 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection2" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng2 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection3" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng3 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection4" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng4 -ConnectionType IPsec -SharedKey "preSharedKey"
    
  3. Para ver una conexión, use el ejemplo siguiente. Modifique los valores necesarios para especificar la conexión que desea ver.

    Get-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "TestRG1"
    

Pasos siguientes

Para más información sobre VPN Gateway, consulte Preguntas más frecuentes de VPN Gateway.