將 VPN 閘道連線至多個內部部署原則式 VPN 裝置

本文將協助您運用 S2S VPN 連線上的自訂 IPsec/IKE 原則,設定以 Azure 路由為基礎的 VPN 閘道連線至多個內部部署以原則為基礎的 VPN 裝置。 本文中的步驟會使用 Azure PowerShell。

關於以原則為基礎的 VPN 閘道和以路由為基礎的 VPN 閘道

原則式 VPN 裝置與以路由為基礎的 VPN 裝置,其差異在於如何於連線上設定 IPsec 流量選取器:

  • 以原則為基礎的 VPN 裝置使用這兩個網路的前置詞組合,定義如何透過 IPsec 通道來加密/解密流量。 它通常內建在執行封包篩選的防火牆裝置上。 IPsec 通道加密和解密會新增至封包篩選和處理引擎。
  • 以路由為基礎的 VPN 裝置使用任何對任何 (萬用字元) 流量選取器,並讓路由/轉接資料表將流量導向到不同 IPsec 通道。 它通常內建在路由器平台上,其中,每個 IPsec 通道都會建模為網路介面或 VTI (虛擬通道介面)。

下列各圖反白顯示兩個模型:

以原則為基礎的 VPN 範例

Diagram of policy-based VPN.

以路由為基礎的 VPN 範例

Diagram of route-based VPN for multiple sites.

以原則為基礎的 VPN 的 Azure 支援

Azure 目前支援兩種 VPN 閘道模式:以路由為基礎的 VPN 閘道和以原則為基礎的 VPN 閘道。 它們內建在不同內部平台上,因而導致不同的規格。 如需閘道、輸送量和連線的詳細資訊,請參閱關於 VPN 閘道設定

閘道 VPN 類型 閘道 SKU 支援的 IKE 版本
以原則為基礎的閘道 基本 IKEv1
路由式閘道 基本 IKEv2
路由式閘道 VpnGw1、VpnGw2、VpnGw3、VpnGw4、VpnGw5 IKEv1 和 IKEv2
路由式閘道 VpnGw1AZ、VpnGw2AZ、VpnGw3AZ、VpnGw4AZ、VpnGw5AZ IKEv1 和 IKEv2

之前,您在使用原則型 VPN 時,只能使用原則型 VPN 閘道基本 SKU,而且只能連線到 1 個內部部署 VPN/防火牆裝置。 現在,您可以利用自訂 IPsec/IKE 原則,使用路由型 VPN 閘道連線到多個原則型 VPN/防火牆裝置。 若要使用路由型 VPN 閘道建立原則型 VPN 連線,請將路由型 VPN 閘道設定為使用前置詞型流量選取器與「PolicyBasedTrafficSelectors」選項。

考量

  • 若要啟用這個連線,內部部署以原則為基礎的 VPN 裝置必須支援 IKEv2 連線至以 Azure 路由為基礎的 VPN 閘道。 確認您的 VPN 裝置規格。

  • 使用這種機制透過以原則為基礎的 VPN 裝置所連線的內部部署網路,只能連線至 Azure 虛擬網路;其無法透過相同的 Azure VPN 閘道轉換到其他內部部署網路或虛擬網路

  • 設定選項是自訂 IPsec/IKE 連線原則的一部分。 如果您啟用以原則為基礎的流量選取器選項,則必須指定完整原則 (IPsec/IKE 加密及完整性演算法、金鑰長度和 SA 存留期)。

下圖顯示透過 VPN 閘道的轉換路由為何不適用於以原則為基礎的選項:

Diagram of policy-based transit.

如圖所示,Azure VPN 閘道會有從虛擬網路到每個內部部署網路前置詞的流量選取器,但不是跨連線前置詞。 例如,內部部署網站 2、網站 3 和網站 4 分別可以與 VNet1 通訊,但無法透過 Azure VPN 閘道彼此連線。 此圖顯示此設定下不適用於 Azure VPN 閘道的跨連線流量選取器。

工作流程

本文中的指示遵循設定 S2S 或 VNet 對 VNet 連線的 IPsec/IKE 原則中所述的相同範例,以建立 S2S VPN 連線。 如下圖所示:

Diagram shows an image of site-to-site with traffic selectors.

若要啟用連線,請使用下列工作流程:

  1. 建立跨單位連線的虛擬網路、VPN 閘道和區域網路閘道。
  2. 建立 IPsec/IKE 原則。
  3. 如果您建立 S2S 或 VNet 對 VNet 連線,並在連線上啟用原則式流量選取器,請套用該原則。
  4. 如果已經建立連線,您可以套用原則,或將其更新為現有連線。

啟用原則式流量選取器

本節說明如何在連線上啟用原則式流量選取器。 請確定您已完成設定 IPsec/IKE 原則文章的第 3 部分。 本文中的步驟會使用相同的參數。

建立虛擬網路、VPN 閘道和區域網路閘道

  1. 連線至您的訂用帳戶。 如果您是在本機電腦上執行 PowerShell,請使用 Connect-AzAccount Cmdlet 登入。 或者,改為在瀏覽器中使用 Azure Cloud Shell。

  2. 宣告變數。 針對此練習,我們使用下列變數:

    $Sub1          = "<YourSubscriptionName>"
    $RG1           = "TestPolicyRG1"
    $Location1     = "East US 2"
    $VNetName1     = "TestVNet1"
    $FESubName1    = "FrontEnd"
    $BESubName1    = "Backend"
    $GWSubName1    = "GatewaySubnet"
    $VNetPrefix11  = "10.11.0.0/16"
    $VNetPrefix12  = "10.12.0.0/16"
    $FESubPrefix1  = "10.11.0.0/24"
    $BESubPrefix1  = "10.12.0.0/24"
    $GWSubPrefix1  = "10.12.255.0/27"
    $DNS1          = "8.8.8.8"
    $GWName1       = "VNet1GW"
    $GW1IPName1    = "VNet1GWIP1"
    $GW1IPconf1    = "gw1ipconf1"
    $Connection16  = "VNet1toSite6"
    $LNGName6      = "Site6"
    $LNGPrefix61   = "10.61.0.0/16"
    $LNGPrefix62   = "10.62.0.0/16"
    $LNGIP6        = "131.107.72.22"
    
  3. 建立資源群組。

    New-AzResourceGroup -Name $RG1 -Location $Location1
    
  4. 使用下列範例來建立有三個子網路的虛擬網路 TestVNet1 和 VPN 閘道。 如果您想要替代值,請務必將閘道子網路命名為 'GatewaySubnet'。 如果您將其命名為其他名稱,閘道建立會失敗。

    $fesub1 = New-AzVirtualNetworkSubnetConfig -Name $FESubName1 -AddressPrefix $FESubPrefix1
    $besub1 = New-AzVirtualNetworkSubnetConfig -Name $BESubName1 -AddressPrefix $BESubPrefix1
    $gwsub1 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName1 -AddressPrefix $GWSubPrefix1
    
    New-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1 -Location $Location1 -AddressPrefix $VNetPrefix11,$VNetPrefix12 -Subnet $fesub1,$besub1,$gwsub1
    
    $gw1pip1    = New-AzPublicIpAddress -Name $GW1IPName1 -ResourceGroupName $RG1 -Location $Location1 -AllocationMethod Dynamic
    $vnet1      = Get-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1
    $subnet1    = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet1
    $gw1ipconf1 = New-AzVirtualNetworkGatewayIpConfig -Name $GW1IPconf1 -Subnet $subnet1 -PublicIpAddress $gw1pip1
    
    New-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1 -Location $Location1 -IpConfigurations $gw1ipconf1 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1
    
    New-AzLocalNetworkGateway -Name $LNGName6 -ResourceGroupName $RG1 -Location $Location1 -GatewayIpAddress $LNGIP6 -AddressPrefix $LNGPrefix61,$LNGPrefix62
    

使用 IPsec/IKE 原則建立 S2S VPN 連線

  1. 建立 IPsec/IKE 原則。

    重要

    您需要建立 IPsec/IKE 原則,才能在連線上啟用 "UsePolicyBasedTrafficSelectors" 選項。

    下列範例會使用這些演算法和參數來建立 IPsec/IKE 原則:

    • IKEv2:AES256、SHA384、DHGroup24
    • IPsec:AES256、SHA256、PFS 無、SA 存留期 14400 秒和 102400000 KB
    $ipsecpolicy6 = New-AzIpsecPolicy -IkeEncryption AES256 -IkeIntegrity SHA384 -DhGroup DHGroup24 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup None -SALifeTimeSeconds 14400 -SADataSizeKilobytes 102400000
    
  2. 使用原則式流量選取器和 IPsec/IKE 原則建立 S2S VPN 連線,並套用在上一個步驟中建立的 IPsec/IKE 原則。 請注意,使用額外參數 "-UsePolicyBasedTrafficSelectors $True" 可在連線上啟用原則式流量選取器。

    $vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1  -ResourceGroupName $RG1
    $lng6 = Get-AzLocalNetworkGateway  -Name $LNGName6 -ResourceGroupName $RG1
    
    New-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -LocalNetworkGateway2 $lng6 -Location $Location1 -ConnectionType IPsec -UsePolicyBasedTrafficSelectors $True -IpsecPolicies $ipsecpolicy6 -SharedKey 'AzureA1b2C3'
    
  3. 完成步驟後,S2S VPN 連線將會使用所定義的 IPsec/IKE 原則,並在連線上啟用以原則為基礎的流量選取器。 您可以重複相同的步驟,以從相同的 Azure VPN 閘道將更多的連線新增至其他內部部署以原則為基礎的 VPN 裝置。

若要更新原則式流量選取器

本節將示範如何更新現有 S2S VPN 連線的以原則為基礎的流量選取器選項。

  1. 取得連線資源。

    $RG1          = "TestPolicyRG1"
    $Connection16 = "VNet1toSite6"
    $connection6  = Get-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1
    
  2. 檢視原則式流量選取器選項 下行將說明是否將以原則為基礎的流量選取器用於連線:

    $connection6.UsePolicyBasedTrafficSelectors
    

    如果該行傳回 "True",則已在連線上設定以原則為基礎的流量選取器;否則,它會傳回 "False"。

  3. 取得連線資源之後,您可以啟用或停用連線上的原則式流量選取器。

    • 若要啟用

      下列範例會啟用以原則為基礎的流量選取器選項,但 IPsec/IKE 原則保留不變:

      $RG1          = "TestPolicyRG1"
      $Connection16 = "VNet1toSite6"
      $connection6  = Get-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1
      
      Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection6 -UsePolicyBasedTrafficSelectors $True
      
    • 若要停用

      下列範例會停用以原則為基礎的流量選取器選項,但 IPsec/IKE 原則保留不變:

      $RG1          = "TestPolicyRG1"
      $Connection16 = "VNet1toSite6"
      $connection6  = Get-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1
      
      Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection6 -UsePolicyBasedTrafficSelectors $False
      

下一步

一旦完成您的連接,就可以將虛擬機器加入您的虛擬網路。 請參閱 建立網站的虛擬機器 以取得相關步驟。

如需自訂 IPsec/IKE 原則的詳細資訊,也請檢閱設定 S2S VPN 或 VNet 對 VNet 連線的 IPsec/IKE 原則