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


Настройка подключений ExpressRoute и "сеть — сеть" с помощью PowerShell

В этой статье показано, как настроить VPN-подключения ExpressRoute и VPN типа "сеть — сеть", которые сосуществуют. Настройка обоих подключений имеет несколько преимуществ:

  • Vpn типа "сеть — сеть" можно настроить как безопасный путь отработки отказа для ExpressRoute.
  • Кроме того, для подключения к сайтам, которые не подключены через ExpressRoute, можно использовать виртуальные сети типа "сеть — сеть".

В этой статье описан порядок действий для каждого из этих вариантов. Эта статья посвящена модели развертывания Resource Manager. Кроме того, в ней используется PowerShell. Эти сценарии также можно настроить с помощью портал Azure, хотя документация пока недоступна. Вы можете начать настройку c любого шлюза. Как правило, при добавлении нового шлюза или подключения к шлюзу не возникает никакого простоя.

Примечание.

Если вы хотите создать VPN типа "сеть — сеть" через канал ExpressRoute, обратитесь к VPN типа "сеть — сеть" через пиринг Майкрософт.

Квоты и ограничения

  • Поддерживается только VPN-шлюз на основе маршрутов. Необходимо использовать VPN-шлюз на основе маршрутов. Вы также можете использовать VPN-шлюз на основе маршрутов с VPN-подключением, настроенным для селекторов трафика на основе политик, как описано в разделе "Подключение к нескольким VPN-устройствам на основе политик".
  • Конфигурации ExpressRoute-VPN-шлюз сосуществуют не поддерживаются с общедоступным IP-адресом SKU уровня "Базовый".
  • Если вы хотите использовать транзитную маршрутизацию между ExpressRoute и VPN, asN VPN-шлюз Azure должен иметь значение 65515, а сервер маршрутизации Azure должен использоваться. Azure VPN-шлюз поддерживает протокол маршрутизации BGP. Для совместной работы ExpressRoute и Azure VPN необходимо, чтобы номер автономной системы (ASN) VPN-шлюза Azure был равен значению по умолчанию 65515. Если ранее был установлен другой ASN, но затем вы изменили параметр на 65515, сбросьте VPN-шлюз, чтобы этот параметр вступил в силу.
  • Подсеть шлюза должна быть /27 или более коротким префиксом, например /26 или /25, или при добавлении шлюза виртуальной сети ExpressRoute появится сообщение об ошибке.

Схемы конфигурации

Настройка VPN типа "сеть — сеть" в качестве пути отработки отказа для ExpressRoute

Vpn-подключение типа "сеть — сеть" можно настроить как резервную копию для подключения ExpressRoute. Эта настройка применяется только к виртуальным сетям, связанным с частным пиринговым путем Azure. Для служб, доступ к которым осуществляется через пиринг Microsoft Azure, решения для отработки отказа на основе VPN не существует. Канал ExpressRoute всегда является основным каналом, а данные передаются через VPN-путь типа "сеть — сеть", только если канал ExpressRoute завершается сбоем. Чтобы избежать асимметричной маршрутизации, настройте локальную сеть, чтобы предпочитать канал ExpressRoute через VPN типа "сеть — сеть", задав более высокий локальный выбор маршрутов, полученных через ExpressRoute.

Примечание.

  • Если у вас включен пиринг ExpressRoute Майкрософт, вы можете получить общедоступный IP-адрес VPN-шлюза Azure в подключении ExpressRoute. Чтобы настроить VPN-подключение типа "сеть — сеть" в качестве резервной копии, настройте локальную сеть таким образом, чтобы VPN-подключение перенаправилось в Интернет.
  • Хотя путь канала ExpressRoute предпочтителен для VPN типа "сеть — сеть", если оба маршрута одинаковы, Azure использует самый длинный префикс, чтобы выбрать маршрут к назначению пакета.

Схема, показывающая VPN-подключение типа

Настройка VPN типа "сеть — сеть" для подключения к сайтам, не подключенным через ExpressRoute

Вы можете настроить сеть таким образом, чтобы некоторые сайты подключались непосредственно к Azure через VPN типа "сеть — сеть", а другие подключаются через ExpressRoute.

Существуют одновременно

Выбор действий для использования

Существует два типа процедур. Выбранная процедура конфигурации зависит от наличия существующей виртуальной сети или необходимости создания новой.

  • У меня нет виртуальной сети и нужно создать ее.

    Если у вас еще нет виртуальной сети, эта процедура описывает создание виртуальной сети с помощью модели развертывания Resource Manager и создание vpn-подключений ExpressRoute и VPN типа "сеть — сеть".

  • У меня уже есть виртуальная сеть модели развертывания Resource Manager.

    Если у вас уже есть виртуальная сеть с существующим VPN-подключением типа "сеть — сеть" или ExpressRoute, а префикс подсети шлюза — /28 или более длинным (/29, /30 и т. д.), необходимо удалить существующий шлюз. Действия по настройке сосуществующих подключений для существующего раздела виртуальной сети помогут вам удалить шлюз, а затем создать новые VPN-подключения ExpressRoute и VPN типа "сеть — сеть".

    Удаление и повторное восстановление шлюза приводит к простою для локальных подключений. Однако виртуальные машины и службы могут подключаться через Интернет при настройке шлюза, если они настроены для этого.

Подготовка к работе

В шагах и примерах в этой статье используются модули Az для Azure PowerShell. Чтобы установить модули Az локально, см. статью Установка Azure PowerShell. Чтобы узнать о модуле Az, см. статью Знакомство с новым модулем Az для Azure PowerShell. Командлеты PowerShell часто обновляются. Если вы не используете последнюю версию, применение значений, указанных в инструкциях, может привести к сбою. Чтобы найти установленные в системе версии PowerShell, используйте командлет Get-Module -ListAvailable Az.

Azure Cloud Shell можно использовать для выполнения большинства командлетов PowerShell и команд CLI. Это позволяет избежать локальной установки Azure PowerShell или CLI. Azure Cloud Shell — это бесплатная интерактивная оболочка, в которой предустановлены и настроены для использования с вашей учетной записью стандартные средства Azure. Для выполнения кода из этой статьи в Azure Cloud Shell откройте сеанс Cloud Shell, скопируйте блок кода с помощью кнопки Копировать и вставьте его в сеанс Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS. Вставленный текст не выполняется автоматически, поэтому нажмите клавишу ВВОД для выполнения кода.

Cloud Shell можно запустить разными способами:

Вариант Ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом.               Cloud Shell в этой статье
Откройте Cloud Shell в браузере. https://shell.azure.com/powershell
Нажмите кнопку меню Cloud Shell в правом верхнем углу окна портала Azure. Cloud Shell на портале

Эта процедура поможет вам создать виртуальную сеть и настроить подключения VPN типа "сеть — сеть" и ExpressRoute. Командлеты, используемые в этой конфигурации, могут отличаться от знакомых командлетов, поэтому убедитесь, что используются указанные командлеты.

  1. Выполните вход и выберите подписку.

    Если вы используете Azure Cloud Shell, вы автоматически войдете в учетную запись Azure после нажатия кнопки "Попробовать". Чтобы войти локально, откройте консоль PowerShell с повышенными привилегиями и выполните командлет для подключения.

    Connect-AzAccount
    

    Если у вас есть несколько подписок Azure, запросите их список.

    Get-AzSubscription
    

    укажите подписку, которую нужно использовать;

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. Определите переменные и создайте группу ресурсов.

    $location = "Central US"
    $resgrp = New-AzResourceGroup -Name "ErVpnCoex" -Location $location
    $VNetASN = 65515
    
  3. Создайте виртуальную сеть, включая GatewaySubnet. См. дополнительные сведения в статье о создании виртуальной сети. Дополнительные сведения о создании подсетей см. в статье "Создание подсети".

    Внимание

    ШлюзSubnet должен быть префиксом /27 или короче, например /26 или /25.

    Создать новую виртуальную сеть.

    $vnet = New-AzVirtualNetwork -Name "CoexVnet" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AddressPrefix "10.200.0.0/16"
    

    Добавьте две подсети с именем App и GatewaySubnet.

    Add-AzVirtualNetworkSubnetConfig -Name "App" -VirtualNetwork $vnet -AddressPrefix "10.200.1.0/24"
    Add-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet -AddressPrefix "10.200.255.0/24"
    

    Сохраните конфигурацию виртуальной сети.

    $vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  4. Создайте VPN-шлюз типа "сеть — сеть". Дополнительные сведения о конфигурации VPN-шлюза см. в статье "Настройка виртуальной сети с подключением типа "сеть — сеть". ШлюзSku поддерживается для VPNGw1, VPNGw2, VPNGw3, Standard и HighPerformance VPN-шлюзов. Одновременное использование конфигураций VPN-шлюзов и ExpressRoute не поддерживается в SKU "Базовый". Параметр VpnType должен иметь значение RouteBased.

    $gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $gwIP = New-AzPublicIpAddress -Name "VPNGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
    $gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "VPNGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
    New-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1"
    

    VPN-шлюз Azure поддерживает протокол маршрутизации BGP. Вы можете указать ASN (AS Number) для виртуальной сети, добавив -Asn флаг в следующую команду. Не указывая Asn параметр по умолчанию, номер AS — 65515.

    $azureVpn = New-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1"
    

    Примечание.

    Для сосуществующих шлюзов необходимо использовать значение ASN по умолчанию, равное 65515. Дополнительные сведения см. в разделе об ограничениях и ограничениях.

    Вы можете найти IP-адрес пиринга BGP и номер AS, который Azure использует для VPN-шлюза, выполнив $azureVpn.BgpSettings.BgpPeeringAddress и $azureVpn.BgpSettings.Asn. Дополнительные сведения см. в статье Настройка BGP на VPN-шлюзах Azure с помощью Azure Resource Manager и PowerShell.

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

    Если локальное VPN-устройство поддерживает только статическую маршрутизацию, настройте статические маршруты следующим образом:

    $MyLocalNetworkAddress = @("10.100.0.0/16","10.101.0.0/16","10.102.0.0/16")
    $localVpn = New-AzLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress "<Public IP>" -AddressPrefix $MyLocalNetworkAddress
    

    Если локальное VPN-устройство поддерживает BGP и вы хотите включить динамическую маршрутизацию, необходимо знать IP-адрес пиринга BGP и номер AS локального VPN-устройства.

    $localVPNPublicIP = "<Public IP>"
    $localBGPPeeringIP = "<Private IP for the BGP session>"
    $localBGPASN = "<ASN>"
    $localAddressPrefix = $localBGPPeeringIP + "/32"
    $localVpn = New-AzLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress $localVPNPublicIP -AddressPrefix $localAddressPrefix -BgpPeeringAddress $localBGPPeeringIP -Asn $localBGPASN
    
  6. Настройте локальное VPN-устройство для подключения к новому VPN-шлюзу Azure. Дополнительные сведения о настройке VPN-устройства см. в статье О VPN-устройствах для подключений VPN-шлюзов типа "сеть — сеть".

  7. Свяжите VPN-шлюз типа "сеть — сеть" в Azure с локальным шлюзом.

    $azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName
    New-AzVirtualNetworkGatewayConnection -Name "VPNConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $azureVpn -LocalNetworkGateway2 $localVpn -ConnectionType IPsec -SharedKey "<yourkey>"
    
  8. Если вы подключаетесь к существующему каналу ExpressRoute, пропустите шаги 8 и 9 и перейдите к шагу 10. Настройте каналы ExpressRoute. Дополнительные сведения о настройке каналов ExpressRoute см. в статье о создании канала ExpressRoute.

  9. Настройте частный пиринг Azure через канал ExpressRoute. Дополнительные сведения о настройке частного пиринга Azure по каналу ExpressRoute см. в статье "Настройка пиринга".

  10. Создайте шлюз ExpressRoute. Дополнительные сведения о настройке шлюза ExpressRoute см. в статье Настройка шлюза виртуальной сети для ExpressRoute с помощью диспетчера ресурсов и PowerShell. Параметр GatewaySKU должен иметь значение Standard, HighPerformance или UltraPerformance.

$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
$gwIP = New-AzPublicIpAddress -Name "ERGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
$gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "ERGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
$gw = New-AzVirtualNetworkGateway -Name "ERGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "ExpressRoute" -GatewaySku Standard
  1. Свяжите шлюз ExpressRoute с каналом ExpressRoute. После выполнения этого шага подключение между локальной сетью и Azure устанавливается через ExpressRoute. Дополнительные сведения об операции связывания см. в статье Связывание виртуальной сети с каналом ExpressRoute.
$ckt = Get-AzExpressRouteCircuit -Name "YourCircuit" -ResourceGroupName "YourCircuitResourceGroup"
New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $gw -PeerId $ckt.Id -ConnectionType ExpressRoute