Настройка принудительного туннелирования с помощью сайта по умолчанию для подключений типа "сеть — сеть"

Действия, описанные в этой статье, помогут настроить принудительное туннелирование для подключений IPsec типа "сеть — сеть" (S2S), указав сайт по умолчанию. Сведения о методах конфигурации для принудительного туннелирования, включая настройку принудительного туннелирования через BGP, см. в разделе "Сведения о принудительном туннелирование для VPN-шлюз".

По умолчанию трафик, привязанный к Интернету, из виртуальных машин передается непосредственно в Интернет. Если вы хотите принудительно принудить весь интернет-трафик через VPN-шлюз к локальному сайту для проверки и аудита, это можно сделать, настроив принудительное туннелирование. После настройки принудительного туннелирования при необходимости можно направлять трафик, привязанный к Интернету, напрямую в Интернет для указанных подсетей с помощью пользовательских определяемых пользователем маршрутов (определяемых пользователем).

Diagram shows split tunneling.

Следующие действия помогут настроить сценарий принудительного туннелирования, указав сайт по умолчанию. При необходимости с помощью пользовательского UDR можно маршрутизировать трафик, указав, что трафик, привязанный к Интернету, из подсети Frontend напрямую переходит в Интернет, а не на локальный сайт.

  • Созданная виртуальная сеть имеет три подсети: frontend, Mid-tier и Backend с четырьмя локальными подключениями: DefaultSiteHQ и тремя ветвями.
  • Вы указываете сайт по умолчанию для VPN-шлюза с помощью PowerShell, который заставляет весь интернет-трафик вернуться в локальное расположение. Не удается настроить сайт по умолчанию с помощью портал Azure.
  • Интерфейсная подсеть назначается UDR для отправки интернет-трафика непосредственно в Интернет, обходя VPN-шлюз. Другой трафик обычно направляется.
  • Подсети среднего уровня и серверной части продолжают туннелировать интернет-трафик обратно на локальный сайт через VPN-шлюз, так как указан сайт по умолчанию.

Создание виртуальной сети и подсетей

Сначала создайте тестовую среду. Вы можете использовать Azure Cloud Shell или запустить PowerShell локально. Подробнее: Установка и настройка Azure PowerShell.

Примечание.

Вы можете увидеть предупреждение "Тип выходного объекта этого командлета будет изменен в будущих версиях". Это ожидаемое поведение, и такие предупреждения можно смело игнорировать.

  1. Создайте группу ресурсов с помощью командлета New-AzResourceGroup.

    New-AzResourceGroup -Name "TestRG1" -Location "EastUS"
    
  2. Создайте виртуальную сеть с помощью New-AzVirtualNetwork.

    $vnet = New-AzVirtualNetwork `
    -ResourceGroupName "TestRG1" `
    -Location "EastUS" `
    -Name "VNet1" `
    -AddressPrefix 10.1.0.0/16
    
  3. Создайте подсети с помощью New-AzVirtualNetworkSubnetConfig. Создание интерфейсных, средних и внутренних подсетей и подсети шлюза (которые должны называться 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. Запишите конфигурацию подсети в виртуальную сеть с помощью командлета Set-AzVirtualNetwork, который создает подсети в виртуальной сети:

    $vnet | Set-AzVirtualNetwork
    

Создание шлюзов локальной сети

В этом разделе описано, как создать шлюзы локальной сети для сайтов с помощью New-AzLocalNetworkGateway. Существует небольшая пауза между каждой командой при создании каждого шлюза локальной сети. В этом примере -GatewayIpAddress значения являются заполнителями. Чтобы сделать подключение, необходимо заменить эти значения общедоступными IP-адресами соответствующих локальных VPN-устройств.

$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"

Создание VPN-шлюза

В этом разделе описан запрос общедоступного IP-адреса и создание VPN-шлюза, связанного с объектом общедоступного IP-адреса. Общедоступный IP-адрес используется при подключении локального или внешнего VPN-устройства к VPN-шлюзу для межсайтовых подключений.

  1. Запросите общедоступный IP-адрес для VPN-шлюза с помощью New-AzPublicIpAddress.

    $gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
    
  2. Создайте конфигурацию IP-адреса шлюза с помощью New-AzVirtualNetworkGatewayIpConfig. Эта конфигурация ссылается при создании 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. Создайте шлюз виртуальной сети с типом "VPN" с помощью New-AzVirtualNetworkGateway. Создание шлюза может занять 45 минут или более в зависимости от выбранного номера SKU шлюза.

    В этом примере используется номер SKU vpnGw2 поколения 2. Если вы получаете сообщение об ошибке ValidateSet в значении GatewaySKU, убедитесь, что установлена последняя версия командлетов PowerShell. Последняя версия содержит новые проверенные значения для последних номеров SKU шлюза.

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

Настройка принудительного туннелирования — сайт по умолчанию

Настройте принудительное туннелирование, назначив сайту по умолчанию шлюзу виртуальной сети. Если вы не укажете сайт по умолчанию, интернет-трафик не принудительно выполняется через VPN-шлюз и будет проходить непосредственно через Интернет для всех подсетей (по умолчанию).

Чтобы назначить сайт по умолчанию для шлюза, используйте параметр -GatewayDefaultSite . Не забудьте правильно назначить это.

  1. Сначала объявите переменные, указывающие сведения о шлюзе виртуальной сети и шлюз локальной сети для сайта по умолчанию, в данном случае DefaultSiteHQ.

    $LocalGateway = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1"
    $VirtualGateway = Get-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    
  2. Затем задайте сайт по умолчанию шлюза виртуальной сети с помощью Set-AzVirtualNetworkGatewayDefaultSite.

    Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway
    

На этом этапе весь трафик, привязанный к Интернету, теперь настроен принудительно туннелироваться в DefaultSiteHQ. Локальное VPN-устройство необходимо настроить для использования диапазона адресов 0.0.0.0/0 в качестве селекторов трафика.

  • Если вы хотите настроить только принудительное туннелирование и не направлять интернет-трафик непосредственно в Интернет для определенных подсетей, можно перейти к разделу "Установить Подключение ions" этой статьи, чтобы создать подключения.
  • Если вам нужны определенные подсети для отправки трафика, привязанного к Интернету, перейдите к следующим разделам, чтобы настроить пользовательские определяемые пользователем маршруты и назначить маршруты.

Маршрутизация трафика, привязанного к Интернету для определенных подсетей

Если вы хотите, чтобы трафик, привязанный к Интернету, отправляется непосредственно в Интернет для определенных подсетей (а не в локальную сеть), выполните следующие действия. Эти действия применяются к принудительному туннелирование, настроенное либо путем указания сайта по умолчанию, либо настройки с помощью BGP.

Создание таблиц маршрутов и маршрутов

Чтобы указать, что трафик, связанный с Интернетом, должен перейти непосредственно в Интернет, создайте необходимую таблицу маршрутов и маршрут. Позже вы назначите таблицу маршрутов подсети Frontend.

  1. Создайте таблицы маршрутов с помощью New-AzRouteTable.

    $routeTable1 = New-AzRouteTable `
    -Name 'RouteTable1' `
    -ResourceGroupName "TestRG1" `
    -location "EastUS"
    
  2. Создайте маршруты с помощью следующих командлетов: GetAzRouteTable, Add-AzRouteConfig и Set-AzRouteConfig. Создайте маршрут для типа следующего прыжка "Интернет" в RouteTable1. Этот маршрут назначается позже подсети Frontend.

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

Назначение маршрутов

В этом разделе вы назначите таблицу маршрутов и маршруты подсети Frontend с помощью следующих команд PowerShell: GetAzRouteTable, Set-AzRouteConfig и Set-AzVirtualNetwork.

  1. Назначьте подсеть Frontend в RouteTable1 с маршрутом ToInternet, указав 0.0.0.0/0/0 с помощью следующего прыжка в Интернете.

    $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
    

Установка VPN-подключений S2S

Используйте New-AzVirtualNetworkGateway Подключение ion, чтобы установить подключения S2S.

  1. Объявите переменные.

    $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. Создайте подключения.

    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. Чтобы просмотреть подключение, используйте следующий пример. Измените все необходимые значения, чтобы указать соединение, которое требуется просмотреть.

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

Следующие шаги

Дополнительные сведения о VPN-шлюз см. в VPN-шлюз часто задаваемых вопросов.