Создание виртуальной сети с VPN типа "сеть — сеть" с помощью интерфейса командной строки.

В этой статье показано, как использовать Azure CLI для создания подключения VPN-шлюза типа "сеть — сеть" из локальной сети к виртуальной сети. Приведенные в этой статье инструкции относятся к модели развертывания с помощью Resource Manager. Эту конфигурацию также можно создать с помощью разных средств или моделей развертывания, выбрав вариант из следующего списка:

Site-to-site VPN Gateway cross-premises connection diagram for CLI article.

Подключение VPN-шлюза типа "сеть — сеть" используется для подключения локальной сети к виртуальной сети Azure через VPN-туннель IPsec/IKE (IKEv1 или IKEv2). Для этого типа подключения требуется локальное VPN-устройство, которому назначен внешний общедоступный IP-адрес. Дополнительные сведения о VPN-шлюзах см. в этой статье.

Подготовка к работе

Перед началом настройки убедитесь, что удовлетворены следующие требования:

  • Убедитесь, что у вас есть совместимое VPN–устройство и пользователь, который может настроить его. Дополнительные сведения о совместимых устройствах VPN и их настройке см. в этой статье.
  • Убедитесь, что у вас есть общедоступный IPv4–адрес для вашего VPN–устройства.
  • Если вы не знаете диапазоны IP-адресов в своей конфигурации локальной сети, найдите того, кто сможет предоставить вам нужную информацию. При создании этой конфигурации необходимо указать префиксы диапазона IP-адресов, которые 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 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Пример значений

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

#Example values

VnetName                = VNet1 
ResourceGroup           = TestRG1 
Location                = eastus 
AddressSpace            = 10.1.0.0/16 
SubnetName              = Frontend
Subnet                  = 10.1.0.0/24 
GatewaySubnet           = 10.1.255.0/27 
LocalNetworkGatewayName = Site1
LNG Public IP           = <On-premises VPN device IP address>
LocalAddrPrefix1        = 10.0.0.0/24
LocalAddrPrefix2        = 20.0.0.0/24   
GatewayName             = VNet1GW 
PublicIP                = VNet1GWIP 
GatewayType             = Vpn 
ConnectionName          = VNet1toSite2

1. Подключение к подписке

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

Войдите в свою подписку Azure с помощью команды az login и следуйте инструкциям на экране. Дополнительные сведения о входе в систему см. в статье Начало работы с Azure CLI.

az login

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

az account list --all

укажите подписку, которую нужно использовать;

az account set --subscription <replace_with_your_subscription_id>

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

В следующем примере создается группа ресурсов с именем TestRG1 в расположении eastus. Если у вас уже есть группа ресурсов в регионе, где вы хотите создать виртуальную сеть, вы можете воспользоваться ею.

az group create --name TestRG --location eastus

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

Если у вас еще нет виртуальной сети, создайте ее, используя команду az network vnet create. При создании виртуальной сети убедитесь, что указанные адресные пространства не перекрываются ни с одним из адресных пространств, которые используются в локальной сети.

Примечание.

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

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

az network vnet create --name VNet1 --resource-group TestRG1 --address-prefix 10.1.0.0/16 --location eastus --subnet-name Subnet1 --subnet-prefix 10.1.0.0/24

4. Создание подсети шлюза

Шлюз виртуальной сети использует определенную подсеть, которая называется подсетью шлюза. Подсеть шлюза входит в диапазон IP-адресов виртуальной сети, который вы указываете при ее настройке. Подсеть шлюза содержит IP-адреса, которые используют ресурсы и службы шлюза виртуальной сети. Чтобы развертывать ресурсы шлюза в Azure, подсети нужно присвоить имя GatewaySubnet. Для развертывания ресурсов шлюза нельзя указывать другую подсеть. Если при создании VPN-шлюза у вас нет подсети с именем GatewaySubnet, операция завершится сбоем.

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

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

Используйте команду azure network vnet subnet create, чтобы создать шлюз подсети.

az network vnet subnet create --address-prefix 10.1.255.0/27 --name GatewaySubnet --resource-group TestRG1 --vnet-name VNet1

Важно!

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

5. Создание локального сетевого шлюза

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

Используйте следующие значения.

  • Параметр --gateway-ip-address — это IP-адрес локального VPN-устройства.
  • --local-address-prefixes — это локальные адресные пространства.

Используйте команду az network local-gateway create,чтобы добавить шлюз локальной сети с несколькими префиксами адресов:

az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 --resource-group TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24

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

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

Используйте команду az network public-ip create, чтобы запросить общедоступный IP-адрес.

az network public-ip create --name VNet1GWIP --resource-group TestRG1 --allocation-method Static --sku Standard

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

Создайте VPN-шлюз виртуальной сети. Создание шлюза часто занимает 45 минут и более, в зависимости от выбранного SKU шлюза.

Используйте следующие значения.

  • Тип -- gateway для конфигурации типа "сеть — сеть" — VPN. Тип шлюза всегда зависит от используемой конфигурации. Дополнительные сведения см. в разделе Типы шлюзов.
  • Тип --vpn — RouteBased (называется динамическим шлюзом в некоторой документации).
  • Выберите SKU шлюза, который нужно использовать. К определенным номерам SKU применяются ограничения настройки. Дополнительные сведения см. в разделе о номерах SKU шлюзов.

Чтобы создать VPN-шлюз, используйте команду az network vnet-gateway create. При выполнении этой команды с использованием параметра --no-wait вы не увидите ответа или выходных данных. Этот параметр позволяет создать шлюз в фоновом режиме. Для создания шлюза требуется не менее 45 минут.

az network vnet-gateway create --name VNet1GW --public-ip-address VNet1GWIP --resource-group TestRG1 --vnet VNet1 --gateway-type Vpn --vpn-type RouteBased --sku VpnGw1 --no-wait 

8. Настройка VPN-устройства

Для подключения "сеть — сеть" к локальной сети требуется VPN-устройство. На этом этапе мы настроим VPN-устройство. Чтобы настроить локальное VPN-устройство, вам потребуется следующее:

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

  • Общедоступный IP-адрес шлюза виртуальной сети. Общедоступный IP-адрес можно просмотреть с помощью портала Azure, PowerShell или CLI. Чтобы найти общедоступный IP-адрес шлюза виртуальной сети, используйте команду az network public-ip list. Для удобства чтения выходные данные форматируются для отображения списка общедоступных IP-адресов в формате таблицы.

    az network public-ip list --resource-group TestRG1 --output table
    

Скачивание скриптов конфигурации VPN-устройства:

В зависимости от устройства VPN можно загрузить для него скрипт конфигурации. Дополнительные сведения см. в статье о скачивании скриптов конфигурации для VPN-устройств.

Дополнительные сведения о конфигурации см. по следующим ссылкам:

9. Создание VPN-подключения

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

Создайте подключение с помощью команды az network vpn-connection create.

az network vpn-connection create --name VNet1toSite2 --resource-group TestRG1 --vnet-gateway1 VNet1GW -l eastus --shared-key abc123 --local-gateway2 Site2

Через некоторое время будет установлено подключение.

10. Проверка VPN-подключения

Убедиться в успешном выполнении подключения можно с помощью команды az network vpn-connection show. В примере параметр "--name" — это имя подключения, которое требуется проверить. Когда подключение устанавливается, это отображено соответствующим образом (состояние "Подключение"). После установки подключения его состояние изменяется на "Подключено". Настройте следующий пример, указав значения для своей среды.

az network vpn-connection show --name <connection-name> --resource-group <resource-group-name>

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

Подключение к виртуальной машине

Вы можете подключиться к виртуальной машине, развернутой в виртуальной сети, создав Подключение удаленного рабочего стола на виртуальной машине. Лучший способ проверить, можете ли вы подключиться к своей виртуальной машине, — подключиться, используя частный IP-адрес, а не имя компьютера. Таким образом, вы проверяете, можете ли вы подключиться, а не правильно ли настроено разрешение имен.

  1. Найдите частный IP-адрес. Частный IP-адрес виртуальной машины можно найти, просматривая свойства виртуальной машины в портал Azure или с помощью PowerShell.

    • портал Azure. Найдите виртуальную машину в портал Azure. Просмотрите свойства виртуальной машины. Там будет указан частный IP-адрес.

    • PowerShell. Используйте пример для просмотра списка виртуальных машин и частных IP-адресов из групп ресурсов. Вам не нужно изменять этот пример перед использованием.

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. Убедитесь, что вы подключены к виртуальной сети.

  3. Откройте Подключение удаленного рабочего стола, введя Подключение RDP или удаленный рабочий стол в поле поиска на панели задач. Затем выберите Подключение удаленного рабочего стола. Вы также можете открыть Подключение удаленного mstsc рабочего стола с помощью команды в PowerShell.

  4. В сеансе подключения к удаленному рабочему столу введите частный IP-адрес виртуальной машины. Вы можете выбрать "Показать параметры" , чтобы настроить другие параметры, а затем подключиться.

Если у вас возникли проблемы с подключением к виртуальной машине через VPN-подключение, проверка следующие моменты:

  • Убедитесь, что вы используете активное VPN-подключение.
  • Убедитесь, что подключаетесь к частному IP-адресу виртуальной машины.
  • Если вы можете подключиться к виртуальной машине с помощью частного IP-адреса, но не имени компьютера, убедитесь, что dns настроен правильно. Дополнительные сведения о том, как работает разрешение имен для виртуальных машин, см. в разделе "Разрешение имен" для виртуальных машин.

Дополнительные сведения о подключениях RDP см. в статье Устранение неполадок с подключением к виртуальной машине Azure через удаленный рабочий стол.

Стандартные задачи

Этот раздел содержит общие команды, которые могут быть полезны при работе с конфигурациями подключения типа "сайт — сайт". Полный список сетевых команд интерфейса командной строки см. в разделе об управлении ресурсами сети Azure.

Просмотр локальных сетевых шлюзов

Чтобы просмотреть список шлюзов локальной сети, используйте команду az network local-gateway list.

az network local-gateway list --resource-group TestRG1

Изменение префиксов IP-адресов для шлюза локальной сети при отсутствии подключения шлюза

Если нет подключения шлюза и нужно добавить или удалить префиксы IP-адресов, выполните ту же команду, что и для создания шлюза локальной сети (az network local-gateway create). Эта команда также используется для обновления IP-адреса шлюза VPN-устройства. Чтобы перезаписать текущие параметры, укажите существующее имя шлюза локальной сети. Если используется другое имя, необходимо создать новый шлюз локальной сети вместо перезаписи существующего.

При каждом изменении нужно указать полный список префиксов, а не только те префиксы, которые вы хотите изменить. Укажите только те префиксы, которые нужно сохранить. В этом случае это 10.0.0.0/24 и 20.0.0.0/24.

az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 -g TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24

Изменение префиксов IP-адресов для шлюза локальной сети при наличии подключения шлюза

Если подключение шлюза существует и требуется добавить или удалить префиксы IP-адресов, обновите их с помощью команды az network local-gateway update. После этого VPN-подключение будет некоторое время недоступно. При изменении префиксов IP-адресов не нужно удалять VPN-шлюз.

При каждом изменении нужно указать полный список префиксов, а не только те префиксы, которые вы хотите изменить. В этом примере 10.0.0.0/24 и 20.0.0.0/24 уже существуют. Добавьте префиксы 30.0.0.0/24 и 40.0.0.0/24 и укажите все 4 при обновлении.

az network local-gateway update --local-address-prefixes 10.0.0.0/24 20.0.0.0/24 30.0.0.0/24 40.0.0.0/24 --name VNet1toSite2 -g TestRG1

Изменение шлюза локальной сети gateway-ip-address

Если общедоступный IP-адрес VPN-устройства, к которому вы хотите подключиться, изменился, измените шлюз локальной сети в соответствии с изменениями. IP-адрес шлюза можно изменить, не удаляя существующее подключение VPN-шлюза (если имеется). Чтобы изменить IP-адрес шлюза, замените значения Site2 и TestRG1 собственными, используя команду az network local-gateway update.

az network local-gateway update --gateway-ip-address 23.99.222.170 --name Site2 --resource-group TestRG1

Проверьте правильность IP-адреса в выходных данных:

"gatewayIpAddress": "23.99.222.170",

Проверка значений общего ключа

Убедитесь, что значение общего ключа совпадает со значением, использованным для настройки VPN-устройства. Если это не так, выполните подключение еще раз, используя значение с устройства, или воспользуйтесь предыдущим значением устройства. Значения должны совпадать. Чтобы просмотреть общий ключ, используйте команду az network vpn-connection-list.

az network vpn-connection shared-key show --connection-name VNet1toSite2 --resource-group TestRG1

Просмотр общедоступного IP-адреса VPN-шлюза

Чтобы найти общедоступный IP-адрес шлюза виртуальной сети, используйте команду az network public-ip list. Для удобства чтения выходные данные в этом примере форматируются для отображения списка общедоступных IP-адресов в формате таблицы.

az network public-ip list --resource-group TestRG1 --output table

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