共用方式為


建立站對站 VPN 連線 - Azure PowerShell

本文說明如何使用PowerShell建立從內部部署網路到虛擬網路 (VNet) 的站對站 VPN 網關聯機。

站對站 VPN 閘道連線可用來透過 IPsec/IKE (IKEv1 或 IKEv2) VPN 通道,將內部部署網路連線到 Azure 虛擬網路。 此類型的連線需要位於內部部署的 VPN 裝置,且您已對該裝置指派對外開放的公用 IP 位址。 本文中的步驟會使用共用密鑰,建立 VPN 閘道與內部部署 VPN 裝置之間的連線。 如需 VPN 閘道的詳細資訊,請參閱關於 VPN 閘道

圖表顯示站對站 VPN 閘道跨單位連線。

開始之前

開始設定之前,請確認您的環境符合下列準則:

  • 確認您有正常運作的路由式 VPN 閘道。 若要建立 VPN 閘道,請參閱 建立 VPN 閘道

  • 如果您不熟悉位於內部部署網路設定的 IP 位址範圍,您需要與能夠提供那些詳細資料的人協調。 當您建立此組態時,您必須指定 IP 位址範圍的首碼,以供 Azure 路由傳送至您的內部部署位置。 內部部署網路的子網路皆不得與您所要連線的虛擬網路子網路重疊。

  • VPN 裝置:

    • 確定您有相容的 VPN 裝置以及能夠對其進行設定的人員。 如需相容 VPN 裝置和裝置設定的詳細資訊,請參閱關於 VPN 裝置
    • 判斷您的 VPN 裝置是否支援主動-主動模式閘道。 本文會建立主動-主動模式 VPN 閘道,建議進行高可用性連線。 主動-主動模式會指定這兩個閘道 VM 實例都處於作用中狀態。 此模式需要兩個公用IP位址,每個閘道 VM 實例各一個。 您可設定 VPN 裝置,以連線到每個閘道 VM 執行個體的 IP 位址。
      如果您的 VPN 裝置不支援此模式,請勿為您的閘道啟用此模式。 如需詳細資訊,請參閱針對跨單位和 VNet 對 VNet 連線設計高可用性連線關於主動-主動模式 VPN 閘道

Azure PowerShell

本文使用 PowerShell Cmdlet。 若要執行 Cmdlet,您可以使用 Azure Cloud Shell。 Cloud Shell 是免費的互動式殼層,可讓您用來執行本文中的步驟。 它具有預先安裝和設定的共用 Azure 工具,可與您的帳戶搭配使用。

若要開啟 Cloud Shell,只要選取程式碼區塊右上角的 [開啟 Cloudshell] 即可。 您也可以移至 https://shell.azure.com/powershell,在個別的瀏覽器索引標籤上開啟 Cloud Shell。 選取 [複製] 以複製程式碼區塊、將它們貼上到 Cloud Shell 中,然後選取 Enter 鍵以執行它們。

您也可以在本機電腦上安裝並執行 Azure PowerShell Cmdlet。 PowerShell Cmdlet 會經常更新。 如果您尚未安裝最新版本,指示中指定的值可能會失敗。 若要尋找電腦上安裝的 Azure PowerShell 版本,請使用 Get-Module -ListAvailable Az Cmdlet。 若要安裝或更新,請參閱安裝 Azure PowerShell 模組

建立區域網路閘道

區域網路閘道 (LNG) 通常是指您的內部部署位置。 它與虛擬網路閘道不同。 請將站台命名為可供 Azure 參考的名稱,然後指定您想要與其建立連線的內部部署 VPN 裝置 IP 位址。 也請指定 IP 位址首碼,供系統透過 VPN 閘道路由至 VPN 裝置。 您指定的位址首碼是位於內部部署網路上的首碼。 如果您的內部部署網路有所變更,您可以輕鬆地更新首碼。

選取下列其中一個範例。 範例中使用的值為:

  • GatewayIPAddress 是內部部署 VPN 裝置的IP位址,而不是您的 Azure VPN 閘道。
  • AddressPrefix 是您的內部部署位址空間。

單一位址首碼範例

New-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1 `
-Location 'East US' -GatewayIpAddress '[IP address of your on-premises VPN device]' -AddressPrefix '10.0.0.0/24'

多個位址首碼範例

New-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1 `
-Location 'East US' -GatewayIpAddress '[IP address of your on-premises VPN device]' -AddressPrefix @('10.3.0.0/16','10.0.0.0/24')

設定 VPN 裝置

內部部署網路的站對站連線需要 VPN 裝置。 在此步驟中,設定 VPN 裝置。 設定 VPN 裝置時,您需要下列項目:

  • 共用金鑰:此共用金鑰與您建立站對站 VPN 連線時所指定的金鑰相同。 在我們的範例中,我們使用簡單的共用金鑰。 我們建議您產生更複雜的金鑰以供使用。

  • 虛擬網路閘道執行個體的公用 IP 位址:取得每個 VM 執行個體的 IP 位址。 如果您的閘道處於主動-主動模式,則每個閘道 VM 執行個體都會有 IP 位址。 務必使用這兩個 IP 位址來設定裝置,每個作用中閘道 VM 各有一個。 主動-待命模式閘道只有一個 IP 位址。 在此範例中,VNet1GWpip1 是公用IP位址資源的名稱。

    Get-AzPublicIpAddress -Name VNet1GWpip1 -ResourceGroupName TestRG1
    

根據您所擁有的 VPN 裝置,您或許可以下載 VPN 裝置設定指令碼。 如需詳細資訊,請參閱下載 VPN 裝置組態指令碼

下列連結提供詳細設定資訊:

建立 VPN 連線

您會在虛擬網路閘道與內部部署 VPN 裝置之間建立站對站 VPN 連線。 如果您使用主動-主動模式閘道 (建議),則每個閘道 VM 執行個體都有個別的 IP 位址。 若要正確設定高可用性連線,您必須在每個 VM 執行個體與 VPN 裝置之間建立通道。 這兩個通道都屬於相同的連線。

共用的金鑰必須符合您用於 VPN 裝置設定的值。 請注意,網站間的「-ConnectionType」為 IPsec

  1. 設定變數。

    $gateway1 = Get-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1
    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. 建立連線。

    New-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1 `
    -Location 'East US' -VirtualNetworkGateway1 $gateway1 -LocalNetworkGateway2 $local `
    -ConnectionType IPsec -SharedKey 'abc123'
    

驗證 VPN 連線

VPN 連線有幾種不同的驗證方式。

您可以使用 'Get-AzVirtualNetworkGatewayConnection' Cmdlet,並在搭配或不搭配 '-Debug' 的情況下驗證連線是否成功。

  1. 請使用下列 Cmdlet 範例,並將值設定為與您狀況相符的值。 出現提示時,請選取 [A] 以執行 [全部]。 在範例中,'-Name' 是指您想要測試之連線的名稱。

    Get-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1
    
  2. 完成 Cmdlet 之後,請檢視值。 在下列範例中,連接狀態會顯示為 [已連接],且您可以看見輸入和輸出位元組。

    "connectionStatus": "Connected",
    "ingressBytesTransferred": 33509044,
    "egressBytesTransferred": 4142431
    

修改區域網路閘道的 IP 位址首碼

如果您要路由傳送到內部部署位置的 IP 位址首碼變更,您可以修改區域網路閘道。 使用這些範例時,請將值修改為符合您的環境。

若要新增更多地址前置字碼:

  1. 設定 LocalNetworkGateway 的變數。

    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. 修改首碼。 您指定的值會覆寫先前的值。

    Set-AzLocalNetworkGateway -LocalNetworkGateway $local `
    -AddressPrefix @('10.101.0.0/24','10.101.1.0/24','10.101.2.0/24')
    

若要移除位址首碼:

省略您不再需要的首碼。 在此範例中,我們不再需要前置詞 10.101.2.0/24,因此我們會更新局域網路網關並排除該前置詞。

  1. 設定 LocalNetworkGateway 的變數。

    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. 使用更新的首碼設定閘道。

    Set-AzLocalNetworkGateway -LocalNetworkGateway $local `
    -AddressPrefix @('10.101.0.0/24','10.101.1.0/24')
    

修改區域網路閘道的閘道 IP 位址

如果您變更 VPN 裝置的公用 IP 位址,則必須使用更新的 IP 位址來修改局域網路網關。 修改此值時,您也可以同時修改位址首碼。 修改時,請務必使用局域網路閘道的現有名稱。 如果您使用不同的名稱,您可以建立新的區域網路閘道,而不是覆寫現有的閘道資訊。

New-AzLocalNetworkGateway -Name Site1 `
-Location "East US" -AddressPrefix @('10.101.0.0/24','10.101.1.0/24') `
-GatewayIpAddress "5.4.3.2" -ResourceGroupName TestRG1

刪除閘道連線

如果您不知道連線的名稱,可以使用 'Get-AzVirtualNetworkGatewayConnection' Cmdlet 來尋找。

Remove-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 `
-ResourceGroupName TestRG1

下一步

  • 一旦完成您的連接,就可以將虛擬機器加入您的虛擬網路。 如需詳細資訊,請參閱虛擬機器
  • 如需 BGP 的相關資訊,請參閱 BGP 概觀如何設定 BGP
  • 如需使用 Azure Resource Manager 範本建立站對站 VPN 連線的相關資訊,請參閱建立站對站 VPN 連線 (部分機器翻譯)。
  • 如需使用 Azure Resource Manager 範本建立 vnet 對 vnet VPN 連線的相關資訊,請參閱部署 HB 異地複寫