使用 PowerShell 建立 VPN 閘道
本文可協助您使用 PowerShell 建立 Azure VPN 閘道。 建立與內部部署網路的 VPN 連線時,會使用 VPN 閘道。 您也可以使用 VPN 閘道來連線至 VNet。 如需本文中某些設定的詳細資訊,請參閱建立 VPN 閘道 - 入口網站。
VPN 閘道是連線結構的一部份,可協助您安全地存取虛擬網路內的資源。
- 圖表左側會顯示您使用本文步驟所建立的虛擬網路和 VPN 閘道。
- 您稍後可以新增不同連線類型,如圖表右側所示。 例如,您可以建立站對站和點對站連線。 若要檢視您可以組建的不同設計結構,請參閱 VPN 閘道設計。
本文中的步驟會使用第 2 代 VpnGw2AZ SKU 來建立虛擬網路、子網路、閘道子網路和路由型、區域備援主動-主動 VPN 閘道 (虛擬網路閘道)。 如果您想要改用基本 SKU 建立 VPN 閘道,請參閱建立基本 SKU VPN 閘道。 閘道建立完成之後,接著就可以建立連線。
主動-主動閘道與主動-待命閘道的差別在於:
- 主動-主動閘道有兩個閘道 IP 設定和兩個公用 IP 位址。
- 主動-主動閘道已啟用主動-主動設定。
- 虛擬網路閘道 SKU 不能是基本或標準類型。
如需主動-主動閘道的詳細資訊,請參閱高可用性跨單位和 VNet 對 VNet 連線能力。 如需可用性區域和區域備援閘道的詳細資訊,請參閱什麼是可用性區域?
開始之前
這些步驟需要 Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
使用 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 模組。
建立資源群組
使用 New-AzResourceGroup 來建立 Azure 資源群組。 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 如果您在本機執行 PowerShell,請以提高的權限開啟 PowerShell 主控台,並使用 Connect-AzAccount
命令連線至 Azure。
New-AzResourceGroup -Name TestRG1 -Location EastUS
建立虛擬網路
使用 New-AzVirtualNetwork 建立虛擬網路。 下列範例會在 EastUS 位置中建立名為 VNet1 的虛擬網路:
$virtualnetwork = New-AzVirtualNetwork `
-ResourceGroupName TestRG1 `
-Location EastUS `
-Name VNet1 `
-AddressPrefix 10.1.0.0/16
使用 New-AzVirtualNetworkSubnetConfig Cmdlet 來建立子網路設定。
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name Frontend `
-AddressPrefix 10.1.0.0/24 `
-VirtualNetwork $virtualnetwork
使用 Set-AzVirtualNetwork Cmdlet 來設定虛擬網路的子網路設定。
$virtualnetwork | Set-AzVirtualNetwork
新增閘道子網路
閘道子網路包含虛擬網路閘道服務所使用的保留 IP 位址。 請使用下列範例來新增閘道子網路:
設定虛擬網路的變數。
$vnet = Get-AzVirtualNetwork -ResourceGroupName TestRG1 -Name VNet1
使用 Add-AzVirtualNetworkSubnetConfig Cmdlet 來建立閘道子網路。
Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27 -VirtualNetwork $vnet
使用 Set-AzVirtualNetwork Cmdlet 來設定虛擬網路的子網路設定。
$vnet | Set-AzVirtualNetwork
要求公用 IP 位址
每個 VPN 閘道必須具有已配置的公用 IP 位址。 當您建立與 VPN 閘道的連線時,這就是您指定的 IP 位址。 在此練習中,我們會建立主動-主動區域備援 VPN 閘道環境。 這表示需要兩個標準公用 IP 位址,每個閘道各一個,我們也必須指定區域設定。 此範例會指定區域備援設定,因為它指定所有 3 個區域。
使用下列範例來為每個閘道要求公用 IP 位址。 配置方法必須是靜態。
$gw1pip1 = New-AzPublicIpAddress -Name "VNet1GWpip1" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard -Zone 1,2,3
$gw1pip2 = New-AzPublicIpAddress -Name "VNet1GWpip2" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard -Zone 1,2,3
建立閘道 IP 位址設定
閘道器組態定義要使用的子網路和公用 IP 位址。 使用下列範例來建立閘道設定。
$vnet = Get-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1
$subnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
$gwipconfig1 = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $gw1pip1.Id
$gwipconfig2 = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig2 -SubnetId $subnet.Id -PublicIpAddressId $gw1pip2.Id
建立 VPN 閘道
建立閘道通常可能需要 45 分鐘或更久,視選取的閘道 SKU 而定。 建立閘道之後,便可以在您的虛擬網路與另一個虛擬網路之間建立連線。 或是在您的虛擬網路與內部部署位置之間建立連線。
請使用 New-AzVirtualNetworkGateway Cmdlet 來建立 VPN 閘道。 請注意,在範例中,會參考兩個公用 IP 位址,並將閘道設定為主動-主動。 在此範例中,我們會新增選用的 -Debug
參數。
New-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1 `
-Location "East US" -IpConfigurations $gwipconfig1,$gwipconfig2 -GatewayType "Vpn" -VpnType RouteBased `
-GatewaySku VpnGw2AZ -VpnGatewayGeneration Generation2 -EnableActiveActiveFeature -Debug
檢視 VPN 閘道
您可以使用 Get-AzVirtualNetworkGateway Cmdlet 來檢視 VPN 閘道。
Get-AzVirtualNetworkGateway -Name Vnet1GW -ResourceGroup TestRG1
檢視公用 IP 位址
若要檢視 VPN 閘道的公用 IP 位址,請使用 Get-AzPublicIpAddress Cmdlet。 範例:
Get-AzPublicIpAddress -Name VNet1GWpip1 -ResourceGroupName TestRG1
清除資源
當您不再需要先前建立的資源時,請使用 Remove-AzResourceGroup 命令刪除資源群組。 這會刪除資源群組及其包含的所有資源。
Remove-AzResourceGroup -Name TestRG1
下一步
閘道建立完成之後,您便可在您的虛擬網路與另一個虛擬網路之間建立連線。 或是在您的虛擬網路與內部部署位置之間建立連線。