Создание VPN-шлюза с помощью PowerShell
В этой статье показано, как создать VPN-шлюз Azure с помощью PowerShell. VPN-шлюз используется при создании VPN-подключения к локальной сети. Также вы можете использовать VPN-шлюз для подключения виртуальных сетей. Дополнительные сведения о некоторых параметрах, приведенных в этой статье, см. в статье "Создание VPN-шлюза — портал".
VPN-шлюз является одной из частей архитектуры подключения, чтобы обеспечить безопасный доступ к ресурсам в виртуальной сети.
- В левой части схемы показана виртуальная сеть и VPN-шлюз, создаваемый с помощью действий, описанных в этой статье.
- Позже можно добавить различные типы подключений, как показано в правой части схемы. Например, можно создавать подключения типа "сеть — сеть" и "точка — сеть". Чтобы просмотреть различные архитектуры проектирования, которые можно создать, см . проект VPN-шлюза.
В этой статье описано, как создать виртуальную сеть, подсеть, подсеть шлюза и vpn-шлюз на основе маршрутов, избыточный между зонами VPN-шлюз (шлюз виртуальной сети) с помощью номера SKU поколения 2 VpnGw2AZ. Если вы хотите создать VPN-шлюз с помощью номера SKU уровня "Базовый", см. статью "Создание VPN-шлюза базового SKU". После завершения создания шлюза можно создать подключения.
Шлюзы active-active отличаются от шлюзов active-standby следующими способами:
- Шлюзы в режиме "активный — активный" используют две IP-конфигурации шлюза и два общедоступных IP-адреса.
- Для шлюзов в режиме "активный — активный" включен соответствующий параметр.
- Ценовая категория шлюза виртуальной сети не может быть "Базовый" или "Стандартный".
Дополнительные сведения о шлюзах active-active см. в статье "Высокодоступная локальная сеть" и подключение между виртуальными сетями. Дополнительные сведения о зонах доступности и избыточных между зонами шлюзах см. в разделе "Что такое зоны доступности?
Подготовка к работе
Для этих действий требуется подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Работа с Azure PowerShell
В этой статье используются командлеты 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. В следующем примере создается виртуальная сеть с именем VNet1 в расположении EastUS.
$virtualnetwork = New-AzVirtualNetwork `
-ResourceGroupName TestRG1 `
-Location EastUS `
-Name VNet1 `
-AddressPrefix 10.1.0.0/16
Создайте конфигурацию подсети с помощью командлета New-AzVirtualNetworkSubnetConfig.
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name Frontend `
-AddressPrefix 10.1.0.0/24 `
-VirtualNetwork $virtualnetwork
Задайте конфигурацию подсети для виртуальной сети с помощью командлета Set-AzVirtualNetwork.
$virtualnetwork | Set-AzVirtualNetwork
добавить подсеть шлюза;
Подсеть шлюза содержит зарезервированные IP-адреса, используемые службами шлюза виртуальной сети. Используйте следующие примеры для добавления подсети шлюза:
Задайте переменную для виртуальной сети.
$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-адрес, который вы указываете. В этом упражнении мы создадим среду VPN-шлюза с избыточностью между зонами. Это означает, что требуются два общедоступных IP-адреса уровня "Стандартный", по одному для каждого шлюза, и необходимо также указать параметр зоны. В этом примере указывается конфигурация, из-за избыточной между зонами, так как она указывает все 3 региональные зоны.
Используйте следующие примеры, чтобы запросить общедоступный IP-адрес для каждого шлюза. Метод выделения должен быть статическим.
$gw1pip1 = New-AzPublicIpAddress -Name "VNet1GWpip1" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard -Zone 1,2,3
$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-адреса, так и шлюз настроен как активный. В примере мы добавим необязательный -Debug
параметр.
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-адресов
Чтобы просмотреть общедоступный IP-адрес VPN-шлюза, используйте командлет Get-AzPublicIpAddress. Пример:
Get-AzPublicIpAddress -Name VNet1GWpip1 -ResourceGroupName TestRG1
Очистка ресурсов
Когда созданные ресурсы станут не нужны, удалите группу ресурсов с помощью командлета Remove-AzResourceGroup. При этом удаляется группа ресурсов и все содержащиеся в ней ресурсы.
Remove-AzResourceGroup -Name TestRG1
Следующие шаги
После завершения создания шлюза можно создать подключение между виртуальной сетью и другой виртуальной сетью. Также можно создать подключение между виртуальной сетью и локальным расположением.