Настройка подключений 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 типа "сеть — сеть" для подключения к сайтам, не подключенным через 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 в правом верхнем углу окна портала Azure. |
![]() |
Эта процедура поможет вам создать виртуальную сеть и настроить подключения VPN типа "сеть — сеть" и ExpressRoute. Командлеты, используемые в этой конфигурации, могут отличаться от знакомых командлетов, поэтому убедитесь, что используются указанные командлеты.
Выполните вход и выберите подписку.
Если вы используете Azure Cloud Shell, вы автоматически войдете в учетную запись Azure после нажатия кнопки "Попробовать". Чтобы войти локально, откройте консоль PowerShell с повышенными привилегиями и выполните командлет для подключения.
Connect-AzAccount
Если у вас есть несколько подписок Azure, запросите их список.
Get-AzSubscription
укажите подписку, которую нужно использовать;
Select-AzSubscription -SubscriptionName "Name of subscription"
Определите переменные и создайте группу ресурсов.
$location = "Central US" $resgrp = New-AzResourceGroup -Name "ErVpnCoex" -Location $location $VNetASN = 65515
Создайте виртуальную сеть, включая
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
Создайте 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.Создайте сущность 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
Настройте локальное VPN-устройство для подключения к новому VPN-шлюзу Azure. Дополнительные сведения о настройке VPN-устройства см. в статье О VPN-устройствах для подключений VPN-шлюзов типа "сеть — сеть".
Свяжите 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>"
Если вы подключаетесь к существующему каналу ExpressRoute, пропустите шаги 8 и 9 и перейдите к шагу 10. Настройте каналы ExpressRoute. Дополнительные сведения о настройке каналов ExpressRoute см. в статье о создании канала ExpressRoute.
Настройте частный пиринг Azure через канал ExpressRoute. Дополнительные сведения о настройке частного пиринга Azure по каналу ExpressRoute см. в статье "Настройка пиринга".
Создайте шлюз 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
- Свяжите шлюз 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