Создание VPN-шлюза на основе маршрута с помощью CLI

В статье кратко описано создание VPN-шлюза в Azure с использованием CLI в Azure. VPN-шлюз используется при создании VPN-подключения к локальной сети. Также вы можете использовать VPN-шлюз для подключения виртуальных сетей.

В этой статье вы создадите виртуальную сеть, подсеть, подсеть шлюза и VPN-шлюз на основе маршрутов (шлюз виртуальной сети). Создание шлюза часто занимает 45 минут и более, в зависимости от выбранного SKU шлюза. Создав шлюз, можно создавать подключения. Для этих действий требуется подписка Azure.

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

Diagram that shows a virtual network and a VPN gateway.

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

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

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

  • Для работы с этой статьей требуется Azure CLI версии 2.0.4 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

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

Создайте группу ресурсов с помощью команды az group create. Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими.

az group create --name TestRG1 --location eastus

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

Создайте виртуальную сеть с помощью команды az network vnet create. В следующем примере создается виртуальная сеть с именем VNet1 в расположении EastUS.

az network vnet create \
  -n VNet1 \
  -g TestRG1 \
  -l eastus \
  --address-prefix 10.1.0.0/16 \
  --subnet-name Frontend \
  --subnet-prefix 10.1.0.0/24

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

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

az network vnet subnet create \
  --vnet-name VNet1 \
  -n GatewaySubnet \
  -g TestRG1 \
  --address-prefix 10.1.255.0/27 

Запрос общедоступного IP-адреса

VPN-шлюз должен иметь общедоступный IP-адрес. Общедоступный IP-адрес выделяется VPN-шлюзу, создаваемому для виртуальной сети. Используйте следующий пример, чтобы запросить общедоступный IP-адрес с помощью команды az network public-ip create :

az network public-ip create \
  -n VNet1GWIP \
  -g TestRG1 \

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

Чтобы создать VPN-шлюз, используйте команду az network vnet-gateway create.

При выполнении этой команды с использованием параметра --no-wait вы не увидите ответа или выходных данных. Параметр --no-wait позволяет создать шлюз в фоновом режиме. Это не означает, что VPN-шлюз создается немедленно.

az network vnet-gateway create \
  -n VNet1GW \
  -l eastus \
  --public-ip-address VNet1GWIP \
  -g TestRG1 \
  --vnet VNet1 \
  --gateway-type Vpn \
  --sku VpnGw2 \
  --vpn-gateway-generation Generation2 \
  --no-wait

Для создания VPN-шлюза требуется не менее 45 минут.

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

az network vnet-gateway show \
  -n VNet1GW \
  -g TestRG1

Результат выглядит примерно так.

{
  "activeActive": false,
  "bgpSettings": {
    "asn": 65515,
    "bgpPeeringAddress": "10.1.255.30",
    "bgpPeeringAddresses": [
      {
        "customBgpIpAddresses": [],
        "defaultBgpIpAddresses": [
          "10.1.255.30"
        ],
        "ipconfigurationId": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW/ipConfigurations/vnetGatewayConfig0",
        "tunnelIpAddresses": [
          "20.228.164.35"
        ]
      }
    ],
    "peerWeight": 0
  },
  "disableIPSecReplayProtection": false,
  "enableBgp": false,
  "enableBgpRouteTranslationForNat": false,
  "enablePrivateIpAddress": false,
  "etag": "W/\"6c61f8cb-d90f-4796-8697\"",
  "gatewayType": "Vpn",
  "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW",
  "ipConfigurations": [
    {
      "etag": "W/\"6c61f8cb-d90f-4796-8697\"",
      "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW/ipConfigurations/vnetGatewayConfig0",
      "name": "vnetGatewayConfig0",
      "privateIPAllocationMethod": "Dynamic",
      "provisioningState": "Succeeded",
      "publicIPAddress": {
        "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/publicIPAddresses/VNet1GWIP",
        "resourceGroup": "TestRG1"
      },
      "resourceGroup": "TestRG1",
      "subnet": {
        "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworks/VNet1/subnets/GatewaySubnet",
        "resourceGroup": "TestRG1"
      }
    }
  ],
  "location": "eastus",
  "name": "VNet1GW",
  "natRules": [],
  "provisioningState": "Succeeded",
  "resourceGroup": "TestRG1",
  "resourceGuid": "69c269e3-622c-4123-9231",
  "sku": {
    "capacity": 2,
    "name": "VpnGw2",
    "tier": "VpnGw2"
  },
  "type": "Microsoft.Network/virtualNetworkGateways",
  "vpnGatewayGeneration": "Generation2",
  "vpnType": "RouteBased"
}

Просмотр общедоступного IP-адреса

Для просмотра общедоступного IP-адреса, назначенного шлюзу, воспользуйтесь следующим примером.

az network public-ip show \
  --name VNet1GWIP \
  --resource-group TestRG1

Значение в поле ipAddress представляет собой общедоступный IP-адрес VPN-шлюза.

Пример ответа:

{
  "dnsSettings": null,
  "etag": "W/\"69c269e3-622c-4123-9231\"",
  "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/publicIPAddresses/VNet1GWIP",
  "idleTimeoutInMinutes": 4,
  "ipAddress": "13.90.195.184",
  "ipConfiguration": {
    "etag": null,
    "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW/ipConfigurations/vnetGatewayConfig0",

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

При отсутствии необходимости дальнейшего использования созданных ресурсов группу ресурсов можно удалить командой az group delete. При этом удаляется группа ресурсов и все содержащиеся в ней ресурсы.

az group delete --name TestRG1 --yes

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

Создав шлюз, можно создать подключение между вашей и другой виртуальной сетью. Также можно создать подключение между виртуальной сетью и локальным расположением.