Создание VPN-шлюза с помощью PowerShell
В этой статье показано, как создать VPN-шлюз Azure с помощью PowerShell. VPN-шлюз используется при создании VPN-подключения к локальной сети. Для подключения виртуальных сетей можно также использовать VPN-шлюз. Дополнительные сведения о некоторых параметрах, приведенных в этой статье, см. в статье "Создание VPN-шлюза — портал".
- В левой части схемы показана виртуальная сеть и VPN-шлюз, создаваемый с помощью действий, описанных в этой статье.
- Позже можно добавить различные типы подключений, как показано в правой части схемы. Например, можно создавать подключения типа "сеть — сеть" и "точка — сеть". Чтобы просмотреть различные архитектуры проектирования, которые можно создать, см . проект VPN-шлюза.
Действия, описанные в этой статье, создают виртуальную сеть, подсеть, подсеть шлюза и VPN-шлюз с избыточностью между зонами в активном режиме (шлюз виртуальной сети) с помощью номера SKU поколения 2 VpnGw2AZ. После создания шлюза можно настроить подключения.
- Если вы хотите создать VPN-шлюз с помощью номера SKU уровня "Базовый", см. статью "Создание VPN-шлюза базового SKU".
- По возможности рекомендуется создать VPN-шлюз активного режима. VPN-шлюзы в активном режиме обеспечивают лучшую доступность и производительность, чем VPN-шлюзы стандартного режима. Дополнительные сведения о шлюзах active-active см. в разделе "Сведения о шлюзах активно-активного режима".
- Сведения о зонах доступности и избыточных между зонами шлюзах см. в разделе "Что такое зоны доступности?
Примечание.
Инструкции, описанные в этой статье, используют SKU VPNGw2AZ шлюза, который поддерживает зоны доступности Azure. Если зоны доступности не поддерживаются для вашего региона, используйте вместо него номер 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-шлюз параметров — подсеть шлюза.
Внимание
Группы безопасности сети (NSG) в подсети шлюза не поддерживаются. Связывание группы безопасности сети с этой подсетью может привести к остановке работы шлюза виртуальной сети (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
Следующие шаги
После создания шлюза можно настроить подключения.