使用預設網站進行站對站連線的強制通道

本文中的步驟可協助您藉由指定預設網站來設定站對站 (S2S) IPsec 連線的強制通道。 如需強制通道設定方法的相關資訊,包括透過 BGP 設定強制通道,請參閱關於 VPN 閘道的強制通道

根據預設,來自 VM 的網際網路繫結流量會直接傳送至網際網路。 如果您想要強制所有網際網路繫結流量透過 VPN 閘道到內部部署網站進行檢查和稽核,您可以藉由設定 強制通道來執行此動作。 設定強制通道之後,如有需要,您可以使用自訂的使用者定義路由 (UDR) 將網際網路繫結流量直接路由傳送至指定子網路的網際網路。

Diagram shows split tunneling.

下列步驟可協助您藉由指定預設網站來設定強制通道案例。 您可以選擇使用自訂 UDR,藉由指定將來自前端子網路的網際網路繫結流量直接傳送至網際網路,而不是路由傳送至內部部署網站。

  • 您建立的 VNet 有三個子網路:前端、中層和後端,包含四個跨單位連線:DefaultSiteHQ 和三個分支。
  • 您可以使用 PowerShell 指定 VPN 閘道的預設網站,以強制所有網際網路流量回到內部部署位置。 無法使用 Azure 入口網站來設定預設網站。
  • 前端子網路已指派 UDR,以略過 VPN 閘道將網際網路流量直接傳送至網際網路。 其他流量通常會路由傳送。
  • 由於已指定預設網站,中層和後端子網路會繼續將網際網路流量透過 VPN 閘道強制傳送回內部部署網站。

建立 VNet 和子網路

首先,建立測試環境。 您可以使用 Azure Cloud Shell,也可以在本機執行 PowerShell。 如需詳細資訊,請參閱 如何安裝及設定 Azure PowerShell

注意

您可能會看到指出「此 Cmdlet 的輸出物件類型將會在未來版本中修改」的警告。 這是預期的行為,您可以放心地忽略這些警告。

  1. 使用 New-AzResourceGroup 來建立資源群組。

    New-AzResourceGroup -Name "TestRG1" -Location "EastUS"
    
  2. 使用 New-AzVirtualNetwork 建立虛擬網路。

    $vnet = New-AzVirtualNetwork `
    -ResourceGroupName "TestRG1" `
    -Location "EastUS" `
    -Name "VNet1" `
    -AddressPrefix 10.1.0.0/16
    
  3. 使用 New-AzVirtualNetworkSubnetConfig 建立子網路。 建立前端、中層和後端子網路和閘道子網路(必須命名為 GatewaySubnet)。

    $subnetConfigFrontend = Add-AzVirtualNetworkSubnetConfig `
      -Name Frontend `
      -AddressPrefix 10.1.0.0/24 `
      -VirtualNetwork $vnet
    
    $subnetConfigMid-tier = Add-AzVirtualNetworkSubnetConfig `
      -Name Mid-tier `
      -AddressPrefix 10.1.1.0/24 `
      -VirtualNetwork $vnet
    
    $subnetConfigBackend = Add-AzVirtualNetworkSubnetConfig `
      -Name Backend `
      -AddressPrefix 10.1.2.0/24 `
      -VirtualNetwork $vnet
    
    $subnetConfigGW = Add-AzVirtualNetworkSubnetConfig `
      -Name GatewaySubnet `
      -AddressPrefix 10.1.200.0/27 `
      -VirtualNetwork $vnet
    
  4. 使用 Set-AzVirtualNetwork 來將子網路設定寫入虛擬網路,這樣會在虛擬網路中建立子網路:

    $vnet | Set-AzVirtualNetwork
    

建立區域網路閘道

在本節中,使用 New-AzLocalNetworkGateway 建立網站的區域網路閘道。 建立每個區域網路閘道時,每個命令之間會有短暫的停頓。 在此範例中,-GatewayIpAddress 值是預留位置。 若要建立連線,您稍後必須將這些值取代為個別內部部署 VPN 裝置的公用 IP 位址。

$lng1 = New-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.111" -AddressPrefix "192.168.1.0/24"
$lng2 = New-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.112" -AddressPrefix "192.168.2.0/24"
$lng3 = New-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.113" -AddressPrefix "192.168.3.0/24"
$lng4 = New-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.114" -AddressPrefix "192.168.4.0/24"

建立 VPN 閘道

在本節中,您會要求公用 IP 位址,並建立與公用 IP 位址物件相關聯的 VPN 閘道。 當您將內部部署或外部 VPN 裝置連線到用於跨單位連線的 VPN 閘道時,會使用公用 IP 位址。

  1. 使用 New-AzPublicIpAddress 要求 VPN 閘道的公用 IP 位址。

    $gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
    
  2. 使用 New-AzVirtualNetworkGatewayIpConfig建立閘道 IP 位址設定。 當您建立 VPN 閘道時,會參考此設定。

    $vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1"
    $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
    $gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $gwsubnet.Id -PublicIpAddressId $gwpip.Id
    
  3. 使用 New-AzVirtualNetworkGateway 建立具有「VPN」閘道類型的虛擬網路閘道。 視您選取的閘道 SKU 而定,建立閘道可能需要 45 分鐘以上的時間。

    在此範例中,我們使用 VpnGw2 第 2 代 SKU。 如果您看到有關 GatewaySKU 值的 ValidateSet 錯誤,請確認您已安裝最新版的 PowerShell Cmdlet。 最新版本包含最新閘道 SKU 已經過驗證的新值。

    New-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1" -Location "EastUS" -IpConfigurations $gwipconfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku VpnGw2 -VpnGatewayGeneration "Generation2"
    

設定強制通道 - 預設網站

將預設網站指派給虛擬網路閘道,以設定強制通道。 如果您未指定預設網站,網際網路流量不會強制通過 VPN 閘道,而是會直接通過所有子網路進入網際網路(依預設)。

若要指派閘道的預設網站,您可以使用 -GatewayDefaultSite 參數。 請務必正確指派此參數。

  1. 首先,宣告指定預設網站之虛擬網路閘道資訊和區域網路閘道的變數,在此案例中為 DefaultSiteHQ。

    $LocalGateway = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1"
    $VirtualGateway = Get-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    
  2. 接下來,使用 Set-AzVirtualNetworkGatewayDefaultSite 設定虛擬網路閘道預設網站。

    Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway
    

此時,所有網際網路繫結流量現在都設定為透過強制通道至 DefaultSiteHQ。 內部部署 VPN 裝置必須使用 0.0.0.0/0 設定為流量選取器。

  • 如果您只想要設定強制通道,而不是將網際網路流量直接路由傳送至特定子網路的網際網路,您可以跳至本文的建立連線一節,以建立連線。
  • 如果您想要將特定子網路將網際網路繫結流量直接傳送至網際網路,請繼續進行下一節來設定自訂 UDR 並指派路由。

路由傳送特定子網路的網際網路繫結流量

作為一個選項,如果您希望將網際網路繫結流量直接傳送至特定子網路(而非內部部署網路)的網際網路,請使用下列步驟。 這些步驟適用於經由指定「預設網站」、或透過 BGP 設定的強制通道。

建立路由表和路由

如要指定網際網路繫結流量應直接流向網際網路,請建立所需的路由表和路由。 您稍後會將路由表指派給前端子網路。

  1. 使用 New-AzRouteTable 建立路由表。

    $routeTable1 = New-AzRouteTable `
    -Name 'RouteTable1' `
    -ResourceGroupName "TestRG1" `
    -location "EastUS"
    
  2. 使用下列 Cmdlet 建立路由:GetAzRouteTableAdd-AzRouteConfig,和 Set-AzRouteConfig。 在 RouteTable1 中建立下一個躍點類型「Internet」的路由。 此路由稍後會指派給前端子網路。

    Get-AzRouteTable `
       -ResourceGroupName "TestRG1" `
       -Name "RouteTable1" `
       | Add-AzRouteConfig `
       -Name "ToInternet" `
       -AddressPrefix 0.0.0.0/0 `
       -NextHopType "Internet" `
       | Set-AzRouteTable
    

指派路由

在本節中,您會使用下列 PowerShell 命令將路由表和路由指派給 Frontend 子網路:GetAzRouteTableSet-AzRouteConfig,以及 Set-AzVirtualNetwork

  1. 將前端子網路指派給 RouteTable1,路由「ToInternet」指定為0.0.0.0/0,下一個躍點為網際網路。

    $vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1"
    $routeTable1 = Get-AzRouteTable `
       -ResourceGroupName "TestRG1" `
       -Name "RouteTable1" 
    Set-AzVirtualNetworkSubnetConfig `
       -VirtualNetwork $vnet `
       -Name 'Frontend' `
       -AddressPrefix 10.1.0.0/24 `
       -RouteTable $routeTable1 | `
    Set-AzVirtualNetwork
    

建立 S2S VPN 連線

使用 New-AzVirtualNetworkGatewayConnection 來建立 S2S 連線。

  1. 宣告變數。

    $gateway = Get-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    $lng1 = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1" 
    $lng2 = Get-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "TestRG1" 
    $lng3 = Get-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "TestRG1" 
    $lng4 = Get-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "TestRG1"
    
  2. 建立連線。

    New-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng1 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection2" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng2 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection3" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng3 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection4" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng4 -ConnectionType IPsec -SharedKey "preSharedKey"
    
  3. 若要檢視連線,請使用下列範例。 修改任何必要的值,以指定您想要檢視的連接。

    Get-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "TestRG1"
    

下一步

如需 VPN 閘道的詳細資訊,請參閱 VPN 閘道常見問題