Поделиться через


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

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

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

На схеме показан разделённый туннелинг.

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

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

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

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

    $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-AzVirtualNetworkGatewayConnection, чтобы установить подключения 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-шлюзе.