建立站對站 VPN 連線 - 共用金鑰驗證 - Azure CLI
本文說明如何使用 Azure CLI 建立從內部部署網路到虛擬網路的站對站 VPN 網關聯機。 您也可以從下列清單中選取不同的選項,使用不同的部署工具來建立此組態:
站對站 VPN 閘道連線可用來透過 IPsec/IKE (IKEv1 或 IKEv2) VPN 通道,將內部部署網路連線到 Azure 虛擬網路。 此類型的連線需要位於內部部署的 VPN 裝置,且您已對該裝置指派對外開放的公用 IP 位址。 如需 VPN 閘道的詳細資訊,請參閱關於 VPN 閘道。
開始之前
開始設定之前,請確認您的環境符合下列準則:
- 您有具有作用中訂用帳戶的 Azure 帳戶。 如果您沒有,可以免費建立一個。
- 如果您不熟悉位於內部部署網路設定的 IP 位址範圍,您需要與能夠提供那些詳細資料的人協調。 當您建立此組態時,您必須指定 IP 位址範圍的首碼,以供 Azure 路由傳送至您的內部部署位置。 內部部署網路的子網路皆不得與您所要連線的虛擬網路子網路重疊。
- VPN 裝置:
- 確定您有相容的 VPN 裝置以及能夠對其進行設定的人員。 如需相容 VPN 裝置和裝置設定的詳細資訊,請參閱關於 VPN 裝置。
- 確認您的 VPN 裝置是否支援主動-主動模式閘道。 本文會建立主動-主動模式 VPN 閘道,建議進行高可用性連線。 主動-主動模式會指定這兩個閘道 VM 實例都處於作用中狀態。 此模式需要兩個公用IP位址,每個閘道 VM 實例各一個。 您可設定 VPN 裝置,以連線到每個閘道 VM 執行個體的 IP 位址。
如果您的 VPN 裝置不支援此模式,請勿為您的閘道啟用此模式。 如需詳細資訊,請參閱針對跨單位和 VNet 對 VNet 連線設計高可用性連線和關於主動-主動模式 VPN 閘道。
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本文需要 2.0 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
連線至您的訂用帳戶
如果您選擇在本機執行 CLI,請連線到您的訂用帳戶。 如果您在瀏覽器中使用 Azure Cloud Shell,則無須連線到您的訂用帳戶。 不過,您可能想要在連線之後確認您使用的是正確的訂用帳戶。
使用 az login 命令登入 Azure 訂用帳戶並遵循畫面上的指示。 如需關於登入的詳細資訊,請參閱開始使用 Azure CLI。
az login
如果您有多個 Azure 訂用帳戶,請列出帳戶的所有訂用帳戶。
az account list --all
指定您要使用的訂用帳戶。
az account set --subscription <replace_with_your_subscription_id>
建立資源群組
下列範例會在「eastus」位置建立名為「TestRG1」的資源群組。 如果您已在想要建立虛擬網路的區域中有資源群組,您可以改用該群組。
az group create --name TestRG1 --location eastus
建立虛擬網路
如果您還沒有虛擬網路,請使用 az network vnet create 命令建立一個。 在建立虛擬網路時,請確定您指定的位址空間沒有與您在內部部署網路上所擁有的任何位址空間重疊。
注意
為了讓此虛擬網路連線到內部部署位置,您必須與內部部署網路管理員協調,以找出您可以特別用於此虛擬網路的IP位址範圍。 如果 VPN 連線的兩端存在重複的位址範圍,流量就不會如預期的方式進行路由。 此外,如果您想要將此虛擬網路連線到另一個虛擬網路,位址空間無法與其他虛擬網路重疊。 因此,請謹慎規劃您的網路組態。
下列範例會建立名為 'VNet1' 的虛擬網路和 'Subnet1' 的子網路。
az network vnet create --name VNet1 --resource-group TestRG1 --address-prefix 10.1.0.0/16 --location eastus --subnet-name Subnet1 --subnet-prefix 10.1.0.0/24
建立閘道子網路
虛擬網路閘道會使用稱為閘道子網路的特定子網路。 閘道子網路是您設定虛擬網路時,所指定虛擬網路 IP 位址範圍的一部分。 其包含虛擬網路閘道資源和服務所使用的 IP 位址。 子網路必須命名為 'GatewaySubnet' 才可供 Azure 部署閘道資源。 您無法指定不同的子網路來作為閘道資源的部署目的地。 如果您沒有名為 'GatewaySubnet' 的子網路,當您建立 VPN 閘道時,它將會失敗。
當您建立閘道子網路時,您可指定子網路包含的 IP 位址數目。 所需的 IP 位址數目取決於您想要建立的 VPN 閘道組態。 有些組態需要的 IP 位址比其他組態多。 我們建議您建立使用 /27 或/28 的閘道子網路。
如果您看到錯誤指出位址空間與子網路重疊,或子網路未包含在虛擬網路的位址空間內,請檢查您的 VNet 位址範圍。 您為虛擬網路所建立的位址範圍中可能沒有足夠的可用 IP 位址。 例如,如果您的預設子網路包含整個位址範圍,則沒有剩餘任何 IP 位址可供建立其他子網路。 您可以調整現有位址空間內的子網路以釋出 IP 位址,也可以指定其他位址範圍並於該處建立閘道子網路。
使用 az network vnet subnet create 命令建立子網路閘道。
az network vnet subnet create --address-prefix 10.1.255.0/27 --name GatewaySubnet --resource-group TestRG1 --vnet-name VNet1
重要
不支援閘道子網路上的網路安全性群組 (NSG)。 將網路安全性群組與此子網路產生關聯,可能會導致您的虛擬網路閘道 (VPN 與 ExpressRoute 閘道) 無法如預期運作。 如需有關網路安全性群組的詳細資訊,請參閱什麼是網路安全性群組?
建立區域網路閘道
區域網路閘道通常是指您的內部部署位置。 請將站台命名為可供 Azure 參考的名稱,然後指定您想要與其建立連線的內部部署 VPN 裝置 IP 位址。 也請指定 IP 位址首碼,以供系統透過 VPN 閘道路由至 VPN 裝置。 您指定的位址首碼是位於內部部署網路上的首碼。 如果您的內部部署網路有所變更,您可以輕鬆地更新首碼。
使用下列值:
- --gateway-ip-address 是內部部署 VPN 裝置的 IP 位址。
- --local-address-prefixes 是內部部署位址空間。
使用 az network local-gateway create 命令新增具有多個位址首碼的區域網路閘道:
az network local-gateway create --gateway-ip-address 203.0.133.8 --name Site1 --resource-group TestRG1 --local-address-prefixes 192.168.1.0/24 192.168.3.0/24
要求公用 IP 位址
VPN 閘道必須具有公用 IP 位址。 如果您想要建立主動-主動閘道(建議使用),您必須要求兩個公用IP位址。 如需主動-主動閘道組態的詳細資訊,請參閱您先要求IP位址資源,然後在建立虛擬網路網關時參考它。 建立 VPN 閘道時,IP 位址會指派給資源。 公用 IP 位址只會在刪除或重新建立閘道時變更。 它不會因為重新調整、重設或 VPN 閘道的其他內部維護/升級而變更。 如果您想要使用基本閘道 SKU 建立 VPN 閘道,請使用下列值--allocation-method Dynamic --sku Basic
要求公用 IP 位址。
使用 az network public-ip create 命令來要求公用 IP 位址。
az network public-ip create --name VNet1GWpip1 --resource-group TestRG1 --allocation-method Static --sku Standard --version IPv4 --zone 1 2 3
若要建立主動-主動網關(建議),請要求第二個公用IP位址:
az network public-ip create --name VNet1GWpip2 --resource-group TestRG1 --allocation-method Static --sku Standard --version IPv4 --zone 1 2 3
建立 VPN 閘道
建立虛擬網路 VPN 閘道。 建立閘道通常可能需要 45 分鐘或更久,視選取的閘道 SKU 而定。
使用下列值:
- 站對站設定的 --gateway-type 是 Vpn。 閘道器類型永遠是您實作設定的特定類型。 如需詳細資訊,請參閱閘道類型。
- --vpn-type 為 RouteBased。
- 選取您想要使用的閘道 SKU。 某些 SKU 有組態限制。 如需詳細資訊,請參閱閘道 SKU。
使用 az network vnet-gateway create 命令建立 VPN 閘道。 如果您使用 '--no-wait' 參數執行此命令,您不會看到任何意見反應或輸出。 此參數允許在背景中建立閘道。 視 SKU 而定,建立閘道需要 45 分鐘以上的時間。
主動-主動模式閘道
az network vnet-gateway create --name VNet1GW --public-ip-addresses VNet1GWpip1 VNet1GWpip2 --resource-group TestRG1 --vnet VNet1 --gateway-type Vpn --vpn-type RouteBased --sku VpnGw2AZ --vpn-gateway-generation Generation2 --no-wait
主動待命模式閘道
az network vnet-gateway create --name VNet1GW --public-ip-addresses VNet1GWpip1 --resource-group TestRG1 --vnet VNet1 --gateway-type Vpn --vpn-type RouteBased --sku VpnGw2AZ --vpn-gateway-generation Generation2 --no-wait
設定 VPN 裝置
內部部署網路的站對站連線需要 VPN 裝置。 在此步驟中,設定 VPN 裝置。 設定 VPN 裝置時,您需要下列值:
共用金鑰:此共用金鑰與您建立站對站 VPN 連線時所指定的金鑰相同。 在我們的範例中,我們使用簡單的共用金鑰。 我們建議您產生更複雜的金鑰以供使用。
虛擬網路閘道執行個體的公用 IP 位址:取得每個 VM 執行個體的 IP 位址。 如果您的閘道處於主動-主動模式,則每個閘道 VM 執行個體都會有 IP 位址。 務必使用這兩個 IP 位址來設定裝置,每個作用中閘道 VM 各有一個。 主動-待命模式閘道只有一個 IP 位址。
注意
針對具有主動-主動模式 VPN 閘道的 S2S 連線,確定已為每個閘道 VM 執行個體建立通道。 如果您只建立一個閘道 VM 執行個體的通道,連線會在維護期間關閉。 如果您的 VPN 裝置不支援此設定,請改為針對主動-待命模式設定您的閘道。
若要尋找虛擬網路閘道的公用 IP 位址,請使用 az network public-ip list 命令。 為方便閱讀,系統會將輸出格式化為以資料表格式顯示公用 IP 的清單。
az network public-ip list --resource-group TestRG1 --output table
根據您所擁有的 VPN 裝置,您或許可以下載 VPN 裝置設定指令碼。 如需詳細資訊,請參閱下載 VPN 裝置組態指令碼。
下列連結提供詳細設定資訊:
如需相容 VPN 裝置的相關資訊,請參閱關於 VPN 裝置。
設定 VPN 裝置之前,請先檢查是否有任何已知的裝置相容性問題。
如需裝置組態設定的連結,請參閱已經驗證的 VPN 裝置。 我們會盡最大努力提供裝置設定連結,但最好向裝置製造商洽詢最新的設定資訊。
此清單會顯示我們測試的版本。 如果 VPN 裝置的作業系統版本不在清單中,仍然可能相容。 請洽詢您的裝置製造商。
如需 VPN 裝置設定的基本資訊,請參閱合作夥伴 VPN 裝置設定概觀。
如需編輯裝置組態範例的相關資訊,請參閱編輯範例。
如需密碼編譯需求,請參閱關於密碼編譯需求和 Azure VPN 閘道。
如需關於完成設定所需參數的資訊,請參閱預設 IPsec/IKE 參數。 此資訊包含 IKE 版本、Diffie-Hellman (DH) 群組、驗證方法、加密和雜湊演算法、安全性關聯 (SA) 存留期、完整轉寄密碼 (PFS) 和失效對等偵測 (DPD)。
如需 IPsec/IKE 原則設定步驟,請參閱設定 S2S VPN 和 VNet 對 VNet 的自訂 IPsec/IKE 連線原則。
若要連接多個原則式 VPN 裝置,請參閱將 VPN 閘道連線至多個內部部署原則式 VPN 裝置。
建立 VPN 連線
您會在虛擬網路閘道與內部部署 VPN 裝置之間建立站對站 VPN 連線。 請特別注意共用金鑰值,此值必須符合您的 VPN 裝置所設定的共用金鑰值。
使用 az network vpn-connection create 命令建立連線。 如果您要建立高可用性網關組態,例如主動-主動模式,請建立其他連線。
az network vpn-connection create --name VNet1toSite1 --resource-group TestRG1 --vnet-gateway1 VNet1GW -l eastus --shared-key abc123 --local-gateway2 Site1
過一會兒,連接將會建立。
驗證 VPN 連線
您可以使用 az network vpn-connection show 命令來確認連線是否成功。 在此範例中,'--name' 是指您想要測試的連線名稱。 當系統在建立連線時,其連線狀態會顯示「連線中」。 連線建立好之後,狀態會變更為 [已連線]。 使用適用於您環境的值修改下列範例。
az network vpn-connection show --name <connection-name> --resource-group <resource-group-name>
如果您想要使用其他方法來確認您的連線,請參閱確認 VPN 閘道連線。
常見工作
本節包含使用站對站組態時很實用的常見命令。 如需 CLI 網路命令的完整清單,請參閱 Azure CLI - 網路。
檢視區域網路閘道
若要檢視區域網路閘道清單,請使用 az network local-gateway list 命令。
az network local-gateway list --resource-group TestRG1
修改區域網路閘道 IP 位址首碼 - 沒有網路閘道連線
如果您沒有閘道連線,而且想要新增或移除 IP 位址首碼,您會使用與您用於建立區域網路閘道的相同命令 az network local-gateway create。 您也可以使用此命令來更新 VPN 裝置的閘道 IP 位址。 若要覆寫目前的設定,請使用現有的區域網路閘道名稱。 如果您使用不同的名稱,您會建立新的區域網路閘道,而不是覆寫現有閘道。
每次進行變更時,您都必須指定完整的首碼清單,而不只是指定您想要變更的首碼。 僅指定我們想要保留的首碼。 在此案例中為 10.0.0.0/24 和 20.0.0.0/24
az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 -g TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24
修改區域網路閘道 IP 位址首碼 - 現有閘道連線
如果您有閘道連線,而且想要新增或移除 IP 位址首碼,您可以使用 az network local-gateway update 更新首碼。 這會導致您 VPN 連線的停機時間。 修改 IP 位址首碼時,您不需要刪除 VPN 閘道。
每次進行變更時,您都必須指定完整的首碼清單,而不只是指定您想要變更的首碼。 在此範例中,10.0.0.0/24 和 20.0.0.0/24 已存在。 我們會新增首碼 30.0.0.0/24 和 40.0.0.0/24,並且在更新時指定全部 4 個首碼。
az network local-gateway update --local-address-prefixes 10.0.0.0/24 20.0.0.0/24 30.0.0.0/24 40.0.0.0/24 --name VNet1toSite2 -g TestRG1
修改區域網路閘道 'gatewayIpAddress'
如果您想要連線的 VPN 裝置已變更其公用 IP 位址,您需要修改區域網路閘道,以反映該變更。 您可變更閘道 IP 位址,而不需移除現有的 VPN 閘道連線 (如果有的話)。 若要修改閘道 IP 位址,使用 az network local-gateway update 命令以您自己的值取代 'Site2' 和 'TestRG1'。
az network local-gateway update --gateway-ip-address 23.99.222.170 --name Site2 --resource-group TestRG1
確認輸出中的 IP 位址正確無誤︰
"gatewayIpAddress": "23.99.222.170",
確認共用金鑰值
請確認共用金鑰值和您用於 VPN 裝置組態的值相同。 如果不同,請使用裝置的值再次執行連線,或是以傳回的值將裝置更新。 這兩個值必須相符。 若要檢視共用金鑰,請使用 az network vpn-connection-list。
az network vpn-connection shared-key show --connection-name VNet1toSite2 --resource-group TestRG1
若要檢視 VPN 閘道公用 IP 位址:
若要尋找虛擬網路閘道的公用 IP 位址,請使用 az network public-ip list 命令。 為了方便閱讀,系統會將此範例的輸出格式化為以資料表格式顯示公用 IP 的清單。
az network public-ip list --resource-group TestRG1 --output table
下一步
- 如需 BGP 的相關資訊,請參閱 BGP 概觀和如何設定 BGP。
- 如需強制通道的相關資訊,請參閱關於強制通道。
- 如需高可用性主動-主動連線的相關信息,請參閱 高可用性跨單位和 VNet 對 VNet 連線能力。
- 如需 Azure CLI 網路命令的清單,請參閱 Azure CLI。
- 如需使用 Azure Resource Manager 範本建立站對站 VPN 連線的詳細資訊,請參閱 建立站對站 VPN 連線。
- 如需使用 Azure Resource Manager 範本建立 VNet 對 VNet VPN 連線的詳細資訊,請參閱 部署 HBase 異地復寫。