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


Создание VPN-шлюза с помощью PowerShell

В этой статье показано, как создать VPN-шлюз Azure с помощью PowerShell. VPN-шлюз используется при создании VPN-подключения к локальной сети. Для подключения виртуальных сетей можно также использовать VPN-шлюз. Дополнительные сведения о некоторых параметрах, приведенных в этой статье, см. в статье "Создание VPN-шлюза — портал".

Схема с виртуальной сетью и VPN-шлюзом.

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

Действия, описанные в этой статье, создают виртуальную сеть, подсеть, подсеть шлюза и VPN-шлюз с избыточностью между зонами в активном режиме (шлюз виртуальной сети) с помощью номера SKU поколения 2 VpnGw2AZ. После создания шлюза можно настроить подключения.

  • Если вы хотите создать VPN-шлюз с помощью SKU "Базовый", см. статью Создание VPN-шлюза с SKU "Базовый".
  • По возможности рекомендуется создать VPN-шлюз активного режима. VPN-шлюзы в активном режиме обеспечивают лучшую доступность и производительность, чем VPN-шлюзы стандартного режима. Дополнительные сведения о шлюзах в режиме активно-активный см. в разделе "Сведения о шлюзах режима активно-активный".
  • Сведения о зонах доступности и избыточных между зонами шлюзах см. в разделе "Что такое зоны доступности?

Примечание.

Шаги, описанные в этой статье, используют артикул VPNGw2AZ шлюза, который поддерживает зоны доступности Azure. Начиная с мая 2025 г. все регионы будут принимать SKU AZ независимо от того, поддерживаются ли зоны доступности в этом регионе. Дополнительные сведения об номерах SKU шлюза см. в разделе "Сведения о номерах SKU шлюза".

Прежде чем начать

Для этих действий требуется подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

В этой статье используются командлеты PowerShell. Для запуска командлетов вы можете использовать Azure Cloud Shell. Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Open Cloudshell в правом верхнем углу блока кода. Кроме того, Cloud Shell можно открыть в отдельной вкладке браузера. Для этого перейдите на страницу https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте их в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить код.

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

Создание группы ресурсов

Создайте группу ресурсов Azure с помощью команды New-AzResourceGroup . Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими. Если модуль PowerShell запущен локально, откройте консоль PowerShell с более высоким уровнем привилегий и подключитесь к Azure с помощью команды Connect-AzAccount.

New-AzResourceGroup -Name TestRG1 -Location EastUS

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

Если у вас еще нет виртуальной сети, создайте ее с помощью New-AzVirtualNetwork. При создании виртуальной сети убедитесь, что указанные адресные пространства не перекрываются ни одной из адресных пространств, которые у вас есть в локальной сети. Если на обеих сторонах VPN-подключения существует повторяющийся диапазон адресов, трафик не направляется так, как вы могли бы ожидать. Кроме того, если вы хотите подключить эту виртуальную сеть к другой виртуальной сети, адресное пространство не может перекрываться с другой виртуальной сетью. Спланируйте конфигурацию сети соответствующим образом.

В следующем примере создается виртуальная сеть с именем VNet1 в расположении EastUS.

$virtualnetwork = New-AzVirtualNetwork `
  -ResourceGroupName TestRG1 `
  -Location EastUS `
  -Name VNet1 `
  -AddressPrefix 10.1.0.0/16

Создайте конфигурацию подсети с помощью командлета New-AzVirtualNetworkSubnetConfig. Подсеть FrontEnd не используется в этом упражнении. Вы можете заменить собственное имя подсети.

$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
  -Name FrontEnd `
  -AddressPrefix 10.1.0.0/24 `
  -VirtualNetwork $virtualnetwork

Задайте конфигурацию подсети для виртуальной сети с помощью командлета Set-AzVirtualNetwork.

$virtualnetwork | Set-AzVirtualNetwork

Добавить подсеть шлюза.

Ресурсы шлюза виртуальной сети развертываются в определенной подсети с именем GatewaySubnet. Подсеть шлюза входит в диапазон IP-адресов виртуальной сети, указанный при настройке виртуальной сети.

Если у вас нет подсети с именем GatewaySubnet, при создании VPN-шлюза происходит сбой. Рекомендуется создать подсеть шлюза, которая использует /27 (или больше). Например, /27 или /26. Дополнительные сведения см. в разделе Параметры VPN-шлюза — подсеть шлюза.

Внимание

Группы безопасности сети в подсети шлюза не поддерживаются. Связывание группы безопасности сети с этой подсетью может привести к остановке работы шлюза виртуальной сети (VPN и шлюзов ExpressRoute). Дополнительные сведения о группах безопасности сети см. в статье Фильтрация сетевого трафика с помощью групп безопасности сети.

Задайте переменную для виртуальной сети.

$vnet = Get-AzVirtualNetwork -ResourceGroupName TestRG1 -Name VNet1

Создайте подсеть шлюза с помощью командлета Add-AzVirtualNetworkSubnetConfig.

Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27 -VirtualNetwork $vnet

Задайте конфигурацию подсети для виртуальной сети с помощью командлета Set-AzVirtualNetwork.

$vnet | Set-AzVirtualNetwork

Запрос общедоступных IP-адресов

VPN-шлюз должен иметь общедоступный IP-адрес. При создании подключения к шлюзу VPN это — IP-адрес, который вы указываете. Для шлюзов активного режима каждый экземпляр шлюза имеет собственный ресурс общедоступного IP-адреса. Сначала запросите ресурс IP-адреса, а затем укажите его при создании шлюза виртуальной сети. Кроме того, для любого номера SKU шлюза, заканчивающегося в AZ, также необходимо указать параметр зоны. В этом примере указывается конфигурация с избыточностью между зонами, поскольку она включает все три региональные зоны.

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

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

$gw1pip1 = New-AzPublicIpAddress -Name "VNet1GWpip1" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard -Zone 1,2,3

Чтобы создать шлюз active-active (рекомендуется), необходимо запросить второй общедоступный IP-адрес.

$gw1pip2 = New-AzPublicIpAddress -Name "VNet1GWpip2" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard -Zone 1,2,3

Создание конфигурации IP-адреса шлюза

Конфигурация шлюза определяет используемые подсеть и общедоступный IP-адрес. Используйте следующий пример, чтобы создать конфигурацию шлюза.

$vnet = Get-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1
$subnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet

$gwipconfig1 = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $gw1pip1.Id
$gwipconfig2 = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig2 -SubnetId $subnet.Id -PublicIpAddressId $gw1pip2.Id

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

Создание шлюза часто занимает 45 минут и более, в зависимости от выбранного SKU шлюза. После создания шлюза можно создать подключение между вашей виртуальной сетью и вашими локальными ресурсами. Или создайте подключение между виртуальной сетью и другой виртуальной сетью.

Создайте VPN-шлюз с помощью командлета New-AzVirtualNetworkGateway. Обратите внимание на примеры, в которых упоминаются как общедоступные IP-адреса, так и то, что шлюз настроен как активный-активный с помощью переключателя EnableActiveActiveFeature. В примере мы добавляем необязательный -Debug переключатель. Если вы хотите создать шлюз с помощью другого номера SKU, ознакомьтесь с разделом "Сведения о номерах SKU шлюза", чтобы определить номер SKU, который лучше всего соответствует вашим требованиям к конфигурации.

New-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1 `
-Location "East US" -IpConfigurations $gwipconfig1,$gwipconfig2 -GatewayType "Vpn" -VpnType RouteBased `
-GatewaySku VpnGw2AZ -VpnGatewayGeneration Generation2 -EnableActiveActiveFeature -Debug

Просмотр VPN-шлюза

Просмотреть VPN-шлюз можно с помощью командлета Get-AzVirtualNetworkGateway.

Get-AzVirtualNetworkGateway -Name Vnet1GW -ResourceGroup TestRG1

Просмотр IP-адресов шлюза

Каждому экземпляру VPN-шлюза назначается ресурс общедоступного IP-адреса. Чтобы просмотреть IP-адрес, связанный с ресурсом, используйте командлет Get-AzPublicIpAddress. Повторите для каждого экземпляра шлюза. Шлюзы active-active имеют разные общедоступные IP-адреса, назначенные каждому экземпляру.

Get-AzPublicIpAddress -Name VNet1GWpip1 -ResourceGroupName TestRG1

Очистка ресурсов

Когда созданные ресурсы станут не нужны, удалите группу ресурсов с помощью командлета Remove-AzResourceGroup. При этом удаляется группа ресурсов и все содержащиеся в ней ресурсы.

Remove-AzResourceGroup -Name TestRG1

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

После создания шлюза можно настроить подключения.