共用方式為


透過 Azure PowerShell 在 Azure Stack Edge Mini R 裝置上設定 VPN

VPN 選項會針對從 Azure Stack Edge Mini R 或 Azure Stack Edge Pro R 裝置到 Azure 的 TLS 資料移動提供第二層加密。 您可以透過 Azure 入口網站或透過 Azure PowerShell,在 Azure Stack Edge Mini R 裝置上設定 VPN。

本文說明在 Azure Stack Edge Mini R 裝置上使用 Azure PowerShell 指令碼,於雲端中建立組態之設定點對站 (P2S) VPN 所需步驟。 Azure Stack Edge 裝置上的設定是透過本機 UI 完成。

關於 VPN 設定

點對站 (P2S) VPN 閘道連線可讓您從個別用戶端電腦或是您的 Azure Stack Edge Mini R 裝置,建立到您虛擬網路的安全連線。 您可以從用戶端電腦或裝置啟動 P2S 連線。 在此案例中,P2S 連線會使用 IKEv2 VPN,此為標準型的 IPsec VPN 解決方案。

典型的工作流程包含下列步驟:

  1. 設定必要條件。
  2. 在 Azure 上設定必要的資源。
    1. 建立並設定虛擬網路與必要的子網路。
    2. 建立並設定 Azure VPN 閘道 (虛擬網路閘道)。
    3. 設定 Azure 防火牆並新增網路與應用程式規則。
    4. 建立 Azure 路由表並新增路由。
    5. 在 VPN 閘道中啟用點對站。
      1. 新增用戶端位址集區。
      2. 設定通道類型。
      3. 設定驗證類型。
      4. 建立憑證。
      5. 上傳憑證。
    6. 下載電話簿。
  3. 在裝置的本機 Web UI 中設定 VPN。
    1. 提供電話簿。
    2. 提供服務標籤 (json) 檔案。

下列各節會提供這些步驟的相關詳細資料。

設定先決條件

  • 根據 安裝 Azure Stack Edge Mini R 裝置中的說明,您應該能夠存取已安裝的 Azure Stack Edge Mini R 裝置。 此裝置將會建立與 Azure 的 P2S 連線。

  • 您應該能夠存取已在 Azure 中為 Azure Stack Edge 服務啟用之有效 Azure 訂用帳戶。 使用此訂用帳戶於 Azure 中建立對應的資源,以管理您的 Azure Stack Edge Mini R 裝置。

  • 您可以存取您將用來存取 Azure Stack Edge Mini R 裝置的 Windows 用戶端。 您將使用此用戶端,並以程式設計方式於雲端中建立組態。

    1. 若要在 Windows 用戶端上安裝必要的 PowerShell 版本,請執行下列命令:

      Install-Module -Name Az -AllowClobber -Scope CurrentUser 
      Import-Module Az.Accounts
      
    2. 若要連線到您的 Azure 帳戶與訂用帳戶,執行下列命令:

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

      提供您用來搭配 Azure Stack Edge Mini R 裝置並設定 VPN 的 Azure 訂用帳戶名稱。

    3. 下載 在雲端中建立設定所需的指令碼。 此指令碼會:

      • 建立 Azure 虛擬網路和下列子網路:GatewaySubnet 和 AzureFirewallSubnet
      • 建立與設定 Azure VPN 閘道。
      • 建立並設定 Azure 本地區域網路閘道。
      • 建立並設定 Azure VPN 閘道與區域網路閘道之間的 Azure VPN 連線。
      • 建立 Azure 防火牆,並新增網路規則與應用程式規則。
      • 建立 Azure 路由表,並在其中新增路由。
    4. 在您想要建立 Azure 資源的Azure 入口網站中,建立資源群組。 移至 Azure 入口網站中的服務清單,選取 [資源群組],然後選取 [+ 新增]。 提供訂用帳戶資訊和資源群組的名稱,然後選取 [建立]。 如果您移至此資源群組,則此時在該群組下不應有任何資源。

      Azure resource group

    5. 您必須有 Azure Stack Edge Mini R 裝置 .cer 格式的 Base 64 編碼憑證。 此憑證應該以 pfx 私密金鑰的形式上傳至您的 Azure Stack Edge 裝置。 此憑證也必須安裝在嘗試建立 P2S 連線之用戶端上,其存放區的受根信任目錄中。

使用指令碼

首先,您將 parameters-p2s.json 檔案修改成您的輸入參數。 接下來,您會使用修改過的 json 檔案來執行指令碼。

下列各節會詳細討論這些步驟。

下載服務標籤檔案

您可能已經在下載指令碼的資料夾中有 ServiceTags.json 檔案。 如果沒有,您可以下載服務標籤檔案。

將服務標籤從 Azure 下載到您的本機用戶端,並以 json 檔案儲存在包含下列指令碼的相同資料夾中:https://www.microsoft.com/download/details.aspx?id=56519

此檔案會在稍後步驟中,於本機的 Web UI 中上傳。

修改參數檔案

第一個步驟是修改 parameters-p2s.json 檔案並儲存變更。

針對您所建立的 Azure 資源,您將提供下列名稱:

參數名稱 描述
virtualNetworks_vnet_name Microsoft Azure 虛擬網路名稱
azureFirewalls_firewall_name Azure 防火牆名稱
routeTables_routetable_name Azure 路由表名稱
publicIPAddresses_VNGW_public_ip_name 虛擬網路閘道的公用 IP 位址名稱
virtualNetworkGateways_VNGW_name Azure VPN 閘道 (虛擬網路閘道) 名稱
publicIPAddresses_firewall_public_ip_name Azure 防火牆的公用 IP 位址名稱
location 這是您要在建立虛擬網路的區域。 選取與您裝置相關聯的相同區域。
RouteTables_routetable_onprem_name 這是其他路由表的名稱,可協助防火牆將封包路由回 Azure Stack Edge 裝置。 此指令碼會建立兩個額外的路由,並將 defaultFirewallSubnet 與此路由表產生關聯。

為建立的 Azure 資源提供下列 IP 位址和位址空間,包含虛擬網路和相關聯的子網路 (預設防火牆GatewaySubnet)。

參數名稱 描述
VnetIPv4AddressSpace 這是與您的虛擬網路相關聯的位址空間。 提供 Vnet IP 範圍作為私人 IP 範圍 (https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses)。
DefaultSubnetIPv4AddressSpace 這是與虛擬網路子網路 Default 相關聯的位址空間。
FirewallSubnetIPv4AddressSpace 這是與虛擬網路子網路 Firewall 相關聯的位址空間。
GatewaySubnetIPv4AddressSpace 這是與虛擬網路 GatewaySubnet 相關聯的位址空間。
GatewaySubnetIPv4bgpPeeringAddress 這是保留給 BGP 通訊的 IP 位址,且是根據與虛擬網路相關聯的 GatewaySubnet 位址空間。
ClientAddressPool 此 IP 位址會用於 Azure 入口網站的 P2S 組態中的位址集區。
PublicCertData VPN 閘道會使用公用憑證資料來驗證與其連線的 P2S 用戶端。 若要取得憑證資料,請安裝根憑證。 請確定憑證是以 .cer 延伸檔名編碼的 Base-64。 開啟此憑證,並在連續的一行中複製 ==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>"

    注意

    在此版本中,指令碼僅適用於美國東部位置。

    執行指令碼時,您必須輸入下列資訊:

    參數 描述
    Location 這是必須建立 Azure 資源的區域。
    AzureAppRuleFilePath 這是 appRule.json 的檔案路徑。
    AzureIPRangesFilePath 這是您在先前步驟中下載的服務標籤 json 檔案。
    resourceGroupName 這是已建立所有 Azure 資源的資源群組名稱。
    AzureDeploymentName 這是 Azure 部署的名稱。
    NetworkRuleCollectionN ame 這是已建立並新增至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 資料夾,然後擷取 .exeVpnClientSetupAmd64.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 設定檔的電話簿。 您會在本機 UI 中使用此功能。

裝置上的 VPN 設定

在您的 Azure Stack Edge 裝置的本機 UI 上遵循這些步驟。

  1. 在本機 UI 中,移至 VPN 頁面。 在 [VPN 狀態] 底下,選取 [設定]

    Configure VPN 1

  2. 設定 VPN 刀鋒視窗中︰

    1. 在上傳電話簿檔案中,指向您於先前步驟中建立的 .pbk 檔案。
    2. 在 [上傳公用 IP 清單組態檔] 中,提供 Azure 資料中心 IP 範圍 JSON 檔案,並將其作為輸入。 您已在先前的步驟中下載此檔案:https://www.microsoft.com/download/details.aspx?id=56519
    3. 選取 [eastus] 作為區域,然後選取 [套用]

    Configure VPN 2

  3. 在 [僅使用 VPN 存取的 IP 位址範圍] 區段中,輸入您為 Azure 虛擬網路所選擇的 Vnet IPv4 範圍。

    Configure VPN 3

確認用戶端連線

  1. 在Azure 入口網站中,移至 VPN 閘道。
  2. 移至 [設定] [點對站設定]>。 在 [已配置的 IP 位址] 底下,應該會顯示您的 Azure Stack Edge 裝置的 IP 位址。

透過 VPN 驗證資料傳輸

若要確認 VPN 是否為正常運作,請將資料複製到 SMB 共用。 請遵循在 Azure Stack Edge 裝置上的 新增共用 中的步驟。

  1. 例如,將如 \data\pictures\waterfall.jpg的檔案複製到您於用戶端系統上掛接的 SMB 共用。

  2. 若要驗證資料是否於複製時通過 VPN:

    1. 移至 Azure 入口網站中的 VPN 閘道。

    2. 移至 [監視] [計量]>

    3. 在右窗格中,選擇 [範圍] 作為您的 VPN 閘道、 [計量] 為閘道 P2S 頻寬,而 [匯總] 則作為平均。

    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

下一步

透過您 Azure Stack Edge 裝置上的本機 UI 設定 VPN