Настройка подключений ExpressRoute и "сеть — сеть" с помощью PowerShell
В этой статье показано, как настроить VPN-подключения ExpressRoute и VPN типа "сеть — сеть", которые сосуществуют. Возможность настройки VPN типа "сеть — сеть" и ExpressRoute имеет несколько преимуществ. Vpn типа "сеть — сеть" можно настроить как безопасный путь отработки отказа для ExpressRoute или использовать vpn-подключения типа "сеть — сеть" для подключения к сайтам, которые не подключены через ExpressRoute. В этой статье мы рассмотрим порядок действия в каждом из этих вариантов. Эта статья посвящена модели развертывания Resource Manager.
Настройка VPN типа "сеть — сеть" и "ExpressRoute" имеет несколько преимуществ:
- 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, более высокий локальный приоритет.
Примечание.
Если у вас включен пиринг 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. | |
В этой процедуре описывается создание виртуальных сетей и подключений типа "сеть — сеть" и "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-шлюза см. в статье "Настройка виртуальной сети с подключением типа "сеть — сеть". GatewaySku поддерживается только в VPN-шлюзах VpnGw1, VpnGw2, VpnGw3, Standard и HighPerformance. Одновременное использование конфигураций 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
Добавление конфигурации "точка — сеть" к VPN-шлюзу
Эти действия можно выполнить, чтобы добавить конфигурацию типа "точка — сеть" в VPN-шлюз в настройке сосуществования. Чтобы отправить корневой сертификат VPN, необходимо либо установить PowerShell локально на компьютер, либо использовать портал Azure.
Добавьте пул адресов VPN-клиента.
$azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName Set-AzVirtualNetworkGateway -VirtualNetworkGateway $azureVpn -VpnClientAddressPool "10.251.251.0/24"
Отправьте корневой сертификат VPN в Azure для VPN-шлюза. В этом примере предполагается, что корневой сертификат хранится на локальном компьютере, где выполняются следующие командлеты PowerShell, и вы выполняете PowerShell локально. Также можно отправить сертификат с помощью портала Azure.
$p2sCertFullName = "RootErVpnCoexP2S.cer" $p2sCertMatchName = "RootErVpnCoexP2S" $p2sCertToUpload=get-childitem Cert:\CurrentUser\My | Where-Object {$_.Subject -match $p2sCertMatchName} if ($p2sCertToUpload.count -eq 1){write-host "cert found"} else {write-host "cert not found" exit} $p2sCertData = [System.Convert]::ToBase64String($p2sCertToUpload.RawData) Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $p2sCertFullName -VirtualNetworkGatewayname $azureVpn.Name -ResourceGroupName $resgrp.ResourceGroupName -PublicCertData $p2sCertData
Дополнительные сведения см. в статье Настройка подключения типа "точка — сеть" к виртуальной сети с помощью PowerShell.
Включение транзитной маршрутизации между ExpressRoute и VPN Azure
Если вы хотите включить подключение между одной из локальных сетей, подключенных к ExpressRoute и другой локальной сети, подключенной к VPN-подключению типа "сеть — сеть", необходимо настроить сервер маршрутизации Azure.
Дальнейшие действия
Дополнительные сведения об ExpressRoute см. в статье Вопросы и ответы по ExpressRoute.