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


Настройка VPN на устройстве Azure Stack Edge Mini R с помощью Azure PowerShell

VPN-подключение обеспечивает второй уровень шифрования при передаче данных по протоколу TLS c устройств Azure Stack Mini R или Azure Stack Edge Pro R в Azure. Настроить VPN на устройстве Azure Stack Mini R можно с помощью портала Azure или Azure PowerShell.

В этой статье описываются шаги, необходимые для настройки VPN-подключения "точка-сеть" (P2S) на устройстве Azure Stack Mini R с помощью скрипта Azure PowerShell для создания конфигурации в облаке. Настройка на устройстве Azure Stack Mini R выполняется через локальный пользовательский интерфейс.

Сведения о настройке VPN

Подключение типа "точка-сеть" через VPN-шлюз позволяет создать безопасное подключение к виртуальной сети с отдельного клиентского компьютера или с устройства Azure Stack Mini R. Подключение "точка-сеть" запускается с клиентского компьютера или устройства. В этом случае в подключении "точка-сеть" используется VPN-решение IKEv2 VPN на основе стандартов IPsec.

Стандартный рабочий процесс включает следующие этапы.

  1. Настройка необходимых компонентов.
  2. Настройте необходимые ресурсы в Azure.
    1. Создайте и настройте виртуальную сеть и требуемые подсети.
    2. Создайте и настройте VPN-шлюз Azure (шлюз виртуальной сети).
    3. Настройте брандмауэр Azure и добавьте правила сети и приложений.
    4. Создайте таблицы маршрутизации Azure и добавьте маршруты.
    5. Включите подключение типа "точка-сеть" в шлюзе VPN.
      1. Добавьте пулы адресов клиента.
      2. Настройте тип туннеля.
      3. Настройте тип аутентификации.
      4. Создайте сертификат.
      5. Отправка сертификата.
    6. Загрузите телефонную книгу.
  3. Настройте VPN в локальном веб-интерфейсе устройства.
    1. Укажите телефонную книгу.
    2. Укажите файл тегов служб (JSON).

Подробные сведения об этих шагах приведены в следующих разделах.

Настройка обязательных компонентов

  • У вас должен быть доступ к устройству Azure Stack Mini R, которое установлено в соответствии с инструкциями в статье Установка устройства Azure Stack Mini R. Это устройство будет устанавливать соединение "точка-сеть" с Azure.

  • У вас должен быть доступ к действующей подписке Azure, которая включена для службы Azure Stack Edge в Azure. Используйте эту подписку, чтобы создать соответствующий ресурс в Azure для управления устройством Azure Stack Mini R.

  • У вас есть доступ к клиенту Windows, который будет использоваться для доступа к устройству Azure Stack Mini R. Этот клиент будет использоваться для программного создания конфигурации в облаке.

    1. Чтобы установить требуемую версию PowerShell на клиенте Windows, выполните следующие команды:

      Install-Module -Name Az -AllowClobber -Scope CurrentUser 
      Import-Module Az.Accounts
      
    2. Чтобы подключиться к учетной записи Azure и подписке, выполните следующие команды:

      Connect-AzAccount 
      Set-AzContext -Subscription "<Your subscription name>"
      

      Укажите имя подписки Azure, которое вы используете на устройстве Azure Stack Edge Mini R, чтобы настроить VPN.

    3. Загрузите скрипт, требуемый для создания конфигурации в облаке. Он выполняет следующие действия:

      • Создайте виртуальную сеть Azure и следующие подсети: GatewaySubnet и AzureFirewallSubnet.
      • Создайте и настройте шлюз Azure VPN.
      • Создайте и настройте локальный сетевой шлюз Azure.
      • Создание и настройка VPN-подключения Azure между VPN-шлюзом Azure и локальным сетевым шлюзом.
      • Создайте брандмауэр Azure и добавьте правила сети и правила приложений.
      • Создайте таблицу маршрутизации Azure и добавьте в нее маршруты.
    4. Создайте группу ресурсов на портале Azure, в которой будут создаваться ресурсы Azure. Перейдите к списку служб в портал Azure, выберите Группа ресурсов, а затем выберите + Добавить. Укажите сведения о подписке и имя группы ресурсов, а затем выберите Создать. В тот момент, когда вы переходите в эту группу ресурсов, она не должна содержать ресурсов.

      Azure resource group

    5. Вам потребуется сертификат с шифрованием Base 64 в формате .cer для устройства Azure Stack Edge Mini R. Этот сертификат необходимо отправить на устройство Azure Stack Edge как pfx с закрытым ключом. Его также необходимо установить в доверенном корневом каталоге хранилища на клиенте, который пытается установить соединение "точка-сеть".

Использование скрипта

Сначала измените файл parameters-p2s.json, указав в нем входные параметры. Затем запустите скрипт, используя измененный файл JSON.

В следующих разделах каждый этап рассматривается более подробно.

Загрузка файла тегов службы

В папке, куда загружен скрипт, уже может содержаться файл ServiceTags.json. В противном случае можно загрузить файл тегов службы.

Загрузите теги службы из Azure в локальный клиент и сохраните их как JSON-файл в той же папке, которая содержит скрипты: https://www.microsoft.com/download/details.aspx?id=56519.

Этот файл будет отправлен в локальный веб-интерфейс позже.

Изменение файла параметров

Первым шагом является изменение файла parameters-p2s.json и сохранение этих изменений.

Для создаваемых ресурсов Azure можно указать следующие имена:

Имя параметра Описание:
virtualNetworks_vnet_name Имя виртуальной сети Azure
azureFirewalls_firewall_name Имя брандмауэра Azure
routeTables_routetable_name Имя таблицы маршрутов Azure
publicIPAddresses_VNGW_public_ip_name Общедоступный IP-адрес шлюза виртуальной сети
virtualNetworkGateways_VNGW_name Имя VPN-шлюза Azure (шлюз виртуальной сети)
publicIPAddresses_firewall_public_ip_name Имя общедоступного IP-адреса для брандмауэра Azure
Расположение Это регион, в котором будет создаваться виртуальная сеть. Выберите тот же регион, который связан с устройством.
RouteTables_routetable_onprem_name Это имя дополнительной таблицы маршрутов, которая помогает брандмауэру перенаправлять пакеты обратно на устройство Azure Stack Edge. Скрипт создает два дополнительных маршрута и связывает default и FirewallSubnet с этой таблицей маршрутов.

Укажите следующие IP-адреса и пространства адресов для создаваемых ресурсов Azure, включая виртуальную сеть и связанные подсети (default, firewall, GatewaySubnet).

Имя параметра Описание:
VnetIPv4AddressSpace Это адресное пространство, связанное с виртуальной сетью. Укажите диапазон IP-адресов виртуальной сети как частный диапазон IP-адресов (https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses).
DefaultSubnetIPv4AddressSpace Это адресное пространство, связанное с подсетью Default для вашей виртуальной сети.
FirewallSubnetIPv4AddressSpace Это адресное пространство, связанное с подсетью Firewall для вашей виртуальной сети.
GatewaySubnetIPv4AddressSpace Это адресное пространство, связанное с GatewaySubnet для вашей виртуальной сети.
GatewaySubnetIPv4bgpPeeringAddress Это IP-адрес, зарезервированный для обмена данными по BGP и использующий адресное пространство, связанное с GatewaySubnet для виртуальной сети.
ClientAddressPool Этот IP-адрес используется для пула адресов в конфигурации "точка-сеть" на портале Azure.
PublicCertData Данные общедоступного сертификата используются VPN-шлюзом для проверки подлинности P2S клиентов, которые к нему подключаются. Чтобы получить данные сертификата, установите корневой сертификат. Убедитесь, что сертификат использует кодировку Base-64 с расширением CER. Откройте этот сертификат и скопируйте текст, указанный между ==BEGIN CERTIFICATE== и ==END CERTIFICATE== одной непрерывной строкой.

Выполнение скрипта

Выполните следующие действия, чтобы использовать измененный parameters-p2s.json, и запустите скрипт для создания ресурсов Azure.

  1. Запустите PowerShell. По умолчанию используется каталог, в котором находится скрипт.

  2. Выполните скрипт.

    .\AzDeployVpn.ps1 -Location <Location> -AzureAppRuleFilePath "appRule.json" -AzureIPRangesFilePath "<Service tag json file>" -ResourceGroupName "<Resource group name>" -AzureDeploymentName "<Deployment name>" -NetworkRuleCollectionName "<Name for collection of network rules>" -Priority 115 -AppRuleCollectionName "<Name for collection of app rules>"

    Примечание.

    В этом выпуске скрипт используется только в регионе "Восточная часть США".

    При выполнении скрипта необходимо указать следующие сведения:

    Параметр Описание
    Местонахождение Это регион, где должны создаваться ресурсы Azure.
    AzureAppRuleFilePath Это путь к файлу для appRule.json.
    AzureIPRangesFilePath Это JSON-файл тега службы, загруженный в предыдущем шаге.
    ResourceGroupName Это имя группы ресурсов, в которой создаются все ресурсы Azure.
    AzureDeploymentName Это имя для развертывания Azure.
    NetworkRuleCollectionName Это имя для коллекции всех правил сети, которые создаются и добавляются в брандмауэр Azure.
    Приоритет Это приоритет, назначенный всем создаваемым правилам сети и приложений.
    AppRuleCollectionName Это имя для коллекции всех правил приложений, которые создаются и добавляются в брандмауэр Azure.

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

    PS C:\Offline docs\AzureVpnConfigurationScripts> .\AzDeployVpn.ps1 -Location eastus -AzureAppRuleFilePath "appRule.json" -AzureIPRangesFilePath ".\ServiceTags_Public_20200203.json" -ResourceGroupName "mytmarg3" -AzureDeploymentName "tmap2stestdeploy1" -NetworkRuleCollectionName "testnrc1" -Priority 115 -AppRuleCollectionName "testarc2"
        validating vpn deployment parameters
        Starting vpn deployment
        C:\Offline docs\AzureVpnConfigurationScripts\parameters-p2s.json
        C:\Offline docs\AzureVpnConfigurationScripts\template-p2s.json
        vpn deployment: tmap2stestdeploy1 started and status: Running
        Waiting for vpn deployment completion....
        ==== CUT ==================== CUT ==============
        Adding route 191.236.0.0/18 for AzureCloud.eastus
        Adding route 191.237.0.0/17 for AzureCloud.eastus
        Adding route 191.238.0.0/18 for AzureCloud.eastus
        Total Routes:294, Existing Routes: 74, New Routes Added: 220
        Additional routes getting added
    

    Важно!

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

    После завершения работы скрипта создается журнал развертывания в той же папке, где находится скрипт.

Проверка ресурсов Azure

После успешного выполнения скрипта убедитесь, что все ресурсы созданы в Azure. Перейдите к созданной группе ресурсов. Отобразятся следующие ресурсы:

Azure resources

Загрузка телефонной книги для профиля VPN

На этом шаге вы загружаете профиль VPN для своего устройства.

  1. На портале Azure перейдите в группу ресурсов и выберите шлюз виртуальной сети, созданный в предыдущем шаге.

    Azure virtual network gateway

  2. Перейдите к Параметры > конфигурации "точка — сеть". Выберите Загрузить VPN-клиент.

    Enable P2S configuration 1

  3. Сохраните архив профиля и распакуйте его на клиенте Windows.

    Enable P2S configuration 2

  4. Перейдите в папку WindowsAmd64 и распакуйте архив .exe: VpnClientSetupAmd64.exe.

    Enable P2S configuration 3

  5. Создайте временный путь. Например:

    C:\NewTemp\vnet\tmp

  6. Запустите PowerShell и перейдите в каталог, в котором находится архив .exe. Чтобы запустить файл .exe, введите:

    .\VpnClientSetupAmd64.exe /Q /C /T:"C:\NewTemp\vnet\tmp"

  7. Временный путь будет содержать новые файлы. Пример выходных данных:

    
    PS C:\windows\system32> cd "C:\Users\Ase\Downloads\vngw5\WindowsAmd64"
    PS C:\Users\Ase\Downloads\vngw5\WindowsAmd64> .\VpnClientSetupAmd64.exe /Q /C /T:"C:\NewTemp\vnet\tmp"
    PS C:\Users\Ase\Downloads\vngw5\WindowsAmd64> cd "C:\NewTemp\vnet"
    PS C:\NewTemp\vnet> ls .\tmp
    
        Directory: C:\NewTemp\vnet\tmp
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----         2/6/2020   6:18 PM            947 8c670077-470b-421a-8dd8-8cedb4f2f08a.cer
    -a----         2/6/2020   6:18 PM            155 8c670077-470b-421a-8dd8-8cedb4f2f08a.cmp
    -a----         2/6/2020   6:18 PM           3564 8c670077-470b-421a-8dd8-8cedb4f2f08a.cms
    -a----         2/6/2020   6:18 PM          11535 8c670077-470b-421a-8dd8-8cedb4f2f08a.inf
    -a----         2/6/2020   6:18 PM           2285 8c670077-470b-421a-8dd8-8cedb4f2f08a.pbk
    -a----         2/6/2020   6:18 PM           5430 azurebox16.ico
    -a----         2/6/2020   6:18 PM           4286 azurebox32.ico
    -a----         2/6/2020   6:18 PM         138934 azurevpnbanner.bmp
    -a----         2/6/2020   6:18 PM          46064 cmroute.dll
    -a----         2/6/2020   6:18 PM            196 routes.txt
    
    PS C:\NewTemp\vnet>
    
  8. Файл PBK представляет собой телефонную книгу для профиля VPN. Он используется в локальном пользовательском интерфейсе.

Настройка VPN на устройстве

Выполните следующие шаги в локальном пользовательском интерфейсе на устройстве Azure Stack Edge.

  1. В локальном пользовательском интерфейсе перейдите на страницу VPN. В разделе "Состояние VPN" выберите Настроить.

    Configure VPN 1

  2. В колонке Настройка VPN выполните следующие действия:

    1. В разделе "Выгрузить файл телефонной книги" выберите файл PBK, созданный в предыдущем шаге.
    2. В разделе "Выгрузить файл конфигурации списка общедоступных IP-адресов" укажите в качестве входных данных JSON-файл, который содержит диапазон IP-адресов центра обработки данных Azure. Этот файл был загружен в предыдущем шаге из: https://www.microsoft.com/download/details.aspx?id=56519.
    3. Выберите eastus в качестве региона и нажмите кнопку Применить.

    Configure VPN 2

  3. В разделе Диапазоны IP-адресов, доступ к которым осуществляется только по VPN укажите диапазон виртуальной сети IPv4, который был выбран для вашей виртуальной сети Azure.

    Configure VPN 3

Проверка подключения клиента

  1. Перейдите к VPN-шлюзу на портале Azure.
  2. Перейдите к Параметры > конфигурации "точка — сеть". В разделе Выделенные IP-адреса должен отобразиться IP-адрес устройства Azure Stack Edge.

Проверка передачи данных по VPN

Чтобы убедиться, что VPN работает, скопируйте данные в общую папку SMB. Выполните действия, описанные в разделе Добавление общей папки на устройстве Azure Stack Edge.

  1. Скопируйте файл, например \data\pictures\waterfall.jpg, в общую папку SMB, подключенную к системе клиента.

  2. Проверка передачи данных по VPN в процессе копирования данных:

    1. Перейдите к VPN-шлюзу на портале Azure.

    2. Перейдите к метрикам мониторинга>.

    3. В области справа выберите Область в качестве VPN-шлюза, Метрика в качестве полосы пропускания шлюза "точка-сеть" и Агрегирование в качестве AVG.

    4. При копировании данных вы увидите увеличение уровня использования полосы пропускания, а после завершения копирования данных потребление полосы пропускания снизится.

      Azure vpn metrics

  3. Убедитесь, что этот файл отображается в вашей учетной записи хранения в облаке.

Отладка проблем

Для устранения ошибок используйте следующие команды:

Get-AzResourceGroupDeployment -DeploymentName $deploymentName -ResourceGroupName $ResourceGroupName

Пример выходных данных приведен ниже.

PS C:\Projects\TZL\VPN\Azure-VpnDeployment> Get-AzResourceGroupDeployment -DeploymentName "tznvpnrg14_deployment" -ResourceGroupName "tznvpnrg14"


DeploymentName          : tznvpnrg14_deployment
ResourceGroupName       : tznvpnrg14
ProvisioningState       : Succeeded
Timestamp               : 1/21/2020 6:23:13 PM
Mode                    : Incremental
TemplateLink            :
Parameters              :
                          Name                                         Type                       Value
                          ===========================================  =========================  ==========
                          virtualNetworks_vnet_name                    String                     tznvpnrg14_vnet
                          azureFirewalls_firewall_name                 String                     tznvpnrg14_firewall
                          routeTables_routetable_name                  String                     tznvpnrg14_routetable
                          publicIPAddresses_VNGW_public_ip_name        String                     tznvpnrg14_vngwpublicip
                          virtualNetworkGateways_VNGW_name             String                     tznvpnrg14_vngw
                          publicIPAddresses_firewall_public_ip_name    String                     tznvpnrg14_fwpip
                          localNetworkGateways_LNGW_name               String                     tznvpnrg14_lngw
                          connections_vngw_lngw_name                   String                     tznvpnrg14_connection
                          location                                     String                     East US
                          vnetIPv4AddressSpace                         String                     172.24.0.0/16
                          defaultSubnetIPv4AddressSpace                String                     172.24.0.0/24
                          firewallSubnetIPv4AddressSpace               String                     172.24.1.0/24
                          gatewaySubnetIPv4AddressSpace                String                     172.24.2.0/24
                          gatewaySubnetIPv4bgpPeeringAddress           String                     172.24.2.254
                          customerNetworkAddressSpace                  String                     10.0.0.0/18
                          customerPublicNetworkAddressSpace            String                     207.68.128.0/24
                          dbeIOTNetworkAddressSpace                    String                     10.139.218.0/24
                          azureVPNsharedKey                            String                     1234567890
                          dbE-Gateway-ipaddress                        String                     207.68.128.113

Outputs                 :
                          Name                     Type                       Value
                          =======================  =========================  ==========
                          virtualNetwork           Object                     {
                            "provisioningState": "Succeeded",
                            "resourceGuid": "dcf673d3-5c73-4764-b077-77125eda1303",
                            "addressSpace": {
                              "addressPrefixes": [
                                "172.24.0.0/16"
                              ]
================= CUT ============================= CUT ===========================
Get-AzResourceGroupDeploymentOperation -ResourceGroupName $ResourceGroupName -DeploymentName $AzureDeploymentName

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

Настройка VPN с помощью локального пользовательского интерфейса на устройстве Azure Stack Edge.