本文內容
關於連線 VNet
為何要建立 VNet 對 VNet 連線?
我應該使用哪些 VNet 對 VNet 步驟?
與相同訂用帳戶中的 VNet 連線
與位於不同訂用帳戶的 VNet 連線
驗證連線
VNet 對 VNet 常見問題集
下一步
顯示其他 4 個
本文協助您使用 VNet 對 VNet 連線類型來連線虛擬網路。 虛擬網路可位於相同或不同的區域,以及來自相同或不同的訂用帳戶。 連線來自不同訂用帳戶的 VNet 時,訂用帳戶不需與相同的租用戶相關聯。
在此練習中,您會建立必要的虛擬網路 (VNet) 和 VPN 閘道。 我們有步驟可連線相同訂用帳戶內的 VNet,以及更複雜的案例步驟和命令,以連線不同訂用帳戶中的 VNet。
建立連線的 Azure CLI 命令 az network vpn-connection 。 如果您要從不同的訂用帳戶連線 VNet,請使用本文中的步驟,或 PowerShell 一文中的步驟。 如果您已經有想要連線的 VNet,而且它們位於相同的訂用帳戶中,您可能會想要改用 Azure 入口網站 步驟,因為流程較不複雜。 請注意,您無法使用 Azure 入口網站從不同的訂用帳戶連線 VNet。
VNet 的連線方法有很多種。 下列各節說明不同的虛擬網路連線方式。
設定 VNet 對 VNet 連線是輕鬆連線 VNet 的好方法。 使用 VNet 對 VNet 連線類型將虛擬網路連線到另一個虛擬網路,類似於建立內部部署位置的站對站 IPsec 連線。 這兩種連線類型都使用 VPN 閘道提供使用 IPsec/IKE 的安全通道,且兩者在通訊時的運作方式相同。 連線類型之間的差異在於區域網路閘道的設定方式。 當您建立 VNet 對 VNet 連線時,會看不到區域網路閘道的位址空間。 系統會自動建立並填入該位址空間。 如果您更新一個 VNet 的位址空間,另一個 VNet 就會自動得知要路由到已更新的位址空間。 建立 VNet 對 VNet 連線通常比在 VNet 之間建立站對站連線更快且更容易,但如果您想要新增另一個連線,因為局域網路網關位址空間無法手動修改,則不會提供相同層級的彈性。
如果您使用複雜的網路設定,您可能偏好使用站對站 步驟 (而不是 VNet 對 VNet 步驟) 來連線 VNet。 當您使用站對站步驟時,您會以手動方式建立及設定區域網路閘道。 每個 VNet 的區域網路閘道都會將其他 VNet 視為本機網站。 這可讓您指定區域網路閘道的其他位址空間,以便路由傳送流量。 如果 VNet 的位址空間變更,您需要手動更新對應的區域網路閘道,才會反映變更。 其不會自動更新。
建議您使用 VNet 對等互連來進行 VNet 連線。 VNet 對等互連不會使用 VPN 閘道,且具有不同的條件約束。 此外,VNet 對等互連價格 與 VNet 對 VNet VPN 閘道價格 的計算方式不同。 如需詳細資訊,請參閱 VNet 對等互連 。
基於下列原因,建議您使用 VNet 對 VNet 連線來進行虛擬網路連線:
跨區域的異地備援和異地目前狀態
您可以使用安全連線設定自己的異地複寫或同步處理,而不用查看網際網路對向端點。
您可以使用 Azure 流量管理員和負載平衡器,利用異地備援跨多個 Azure 區域設定高度可用的工作負載。 其中一個重要的範例就是使用分散在多個 Azure 區域的可用性群組來設定 SQL Always On。
具有隔離或管理界限的區域性多層式應用程式
在相同區域中,您可以因為隔離或管理需求,設定將多層式應用程式與多個虛擬網路連線在一起。
您可以將 VNet 對 VNet 通訊與多站台組態結合。 這樣,便可以建立將跨界連線與虛擬網路間連線相結合的網路拓撲。
在本文中,您會看到兩組不同的 VNet 對 VNet 連線步驟。 一組步驟適用於位於相同訂用帳戶中的 VNet ,一組步驟適用於位於不同訂用帳戶中的 VNet 。
在此練習中,您可以合併組態,或只選擇您需要使用的一個組態。 所有組態都會使用 VNet 對 VNet 連線類型。 網路流量會在彼此直接連線的 VNet 之間流動。
開始之前,請先安裝 CLI 命令的最新版本 (2.0 版或更新版本)。 如需關於安裝 CLI 命令的資訊,請參閱安裝 Azure CLI 。
在下列步驟中,您會建立兩個虛擬網路,以及它們各自的閘道子網路和組態。 接著建立這兩個 VNet 之間的 VPN 連線。 請務必規劃您的網路組態的 IP 位址範圍。 請記住,您必須先確定您的 VNet 範圍或區域網路範圍沒有以任何方式重疊。 在這些範例中,我們不會包含 DNS 伺服器。 如果您想要了解虛擬網路的名稱解析,請參閱名稱解析 。
我們會在範例中使用下列值:
TestVNet1 的值︰
VNet 名稱︰TestVNet1
資源群組︰TestRG1
位置:美國東部
TestVNet1:10.11.0.0/16 和 10.12.0.0/16
FrontEnd:10.11.0.0/24
BackEnd:10.12.0.0/24
GatewaySubnet:10.12.255.0/27
GatewayName:VNet1GW
公用 IP: VNet1GWIP
VPNType:RouteBased
Connection(1to4):VNet1toVNet4
Connection(1to5):VNet1toVNet5 (適用於不同訂用帳戶中的 Vnet)
TestVNet4 的值︰
VNet 名稱︰TestVNet4
TestVNet2:10.41.0.0/16 和 10.42.0.0/16
FrontEnd:10.41.0.0/24
BackEnd:10.42.0.0/24
GatewaySubnet:10.42.255.0/27
資源群組:TestRG4
位置:美國西部
GatewayName:VNet4GW
公用 IP:VNet4GWIP
VPN 類型: RouteBased
連線︰VNet4toVNet1
如果您想要在本機使用 Azure CLI (而不是使用 Azure CloudShell),請使用下列步驟來連線到您的 Azure 訂用帳戶。 如果您使用 CloudShell,請跳至下一節。
使用 az login 命令登入 Azure 訂用帳戶並遵循畫面上的指示。 如需關於登入的詳細資訊,請參閱開始使用 Azure CLI 。
az login
如果您有多個 Azure 訂用帳戶,請列出帳戶的所有訂用帳戶。
az account list --all
指定您要使用的訂用帳戶。
az account set --subscription <replace_with_your_subscription_id>
建立資源群組。
az group create -n TestRG1 -l eastus
使用 az network vnet create 命令,建立 TestVNet1 和 TestVNet1 的子網路。 此範例會建立名為 TestVNet1 的虛擬網路和名為 FrontEnd 的子網路。
az network vnet create \
-n TestVNet1 \
-g TestRG1 \
-l eastus \
--address-prefix 10.11.0.0 /16 \
--subnet-name Frontend \
--subnet-prefix 10.11.0.0 /24
為後端子網路建立其他位址空間。 請注意,在此步驟中,我們會指定稍早建立的位址空間,以及我們想要新增的額外位址空間。 這是因為 az network vnet update 命令會覆寫先前的設定。 使用此命令時,務必指定所有的位址前置詞。
az network vnet update \
-n TestVNet1 \
--address-prefixes 10.11.0.0 /16 10.12.0.0 /16 \
-g TestRG1
建立後端子網路。
az network vnet subnet create \
--vnet-name TestVNet1 \
-n BackEnd \
-g TestRG1 \
--address-prefix 10.12.0.0 /24
建立閘道子網路。 請注意,閘道子網路會命名為 'GatewaySubnet'。 此名稱是必要的。 在此範例中,閘道子網路使用 /27。 雖然您可以建立小至 /29 的閘道子網路,我們建議您選取至少 /28 或 /27,建立包含更多位址的較大子網路。 這將允許足夠的位址,以容納您未來可能需要的其他設定。
az network vnet subnet create \
--vnet-name TestVNet1 \
-n GatewaySubnet \
-g TestRG1 \
--address-prefix 10.12.255.0 /27
VPN 閘道必須具有公用 IP 位址。 公用 IP 位址會配置給您為虛擬網路建立的 VPN 閘道。 使用下列範例,使用 az network public-ip create 命令來要求公用 IP 位址:
az network public-ip create \
-g TestRG1 \
-n VNet1GWIP1 \
--sku Standard \
--allocation-method Static \
--l eastus
使用 az network vnet-gateway create 命令建立 TestVNet1 的虛擬網路閘道。 如果您使用 '--no-wait' 參數執行此命令,您不會看到任何意見反應或輸出。 '--no-wait' 參數允許在背景中建立閘道。 它並不表示 VPN 閘道立即完成建立。 視您使用的閘道 SKU 而定,建立閘道通常可能需要 45 分鐘或更久的時間。
az network vnet-gateway create \
--name VNet1GW \
--public-ip-address VNet1GWIP \
--resource-group TestRG1 \
--vnet TestVNet1 \
--gateway-type Vpn \
--sku VpnGw2 \
--vpn-gateway-generation Generation2 \
--no-wait
建立資源群組。
az group create -n TestRG4 -l westus
建立 TestVNet4。
az network vnet create \
-n TestVNet4 \
-g TestRG4 \
-l westus \
--address-prefix 10.41.0.0 /16 \
--subnet-name Frontend \
--subnet-prefix 10.41.0.0 /24
為 TestVNet4 建立其他子網路。
az network vnet update \
-n TestVNet4 \
--address-prefixes 10.41.0.0 /16 10.42.0.0 /16 \
-g TestRG4 \
az network vnet subnet create \
--vnet-name TestVNet4 \
-n BackEnd \
-g TestRG4 \
--address-prefix 10.42.0.0 /24
建立閘道子網路。
az network vnet subnet create \
--vnet-name TestVNet4 \
-n GatewaySubnet \
-g TestRG4 \
--address-prefix 10.42.255.0 /27
要求公用 IP 位址。
az network public-ip create \
-g TestRG4 \
--n VNet4GWIP \
--sku Standard \
--allocation-method Static \
--l westus
建立 TestVNet4 虛擬網路閘道。
az network vnet-gateway create \
-n VNet4GW \
-l westus \
--public-ip-address VNet4GWIP \
-g TestRG4 \
--vnet TestVNet4 \
--gateway-type Vpn \
--sku VpnGw2 \
--vpn-gateway-generation Generation2 \
--no-wait
您現在有兩個具有 VPN 閘道的 VNet。 下一個步驟是建立虛擬網路閘道之間的 VPN 閘道連線。 如果您使用上述範例,則 VNet 閘道位於不同的資源群組。 當閘道位於不同的資源群組時,您必須在建立連線時,識別並指定每個閘道的資源識別碼。 如果 VNet 位於相同的資源群組,您可以使用第二組指示 ,因為您不需要指定資源識別碼。
從下列命令的輸出取得 VNet1GW 的資源識別碼︰
az network vnet-gateway show -n VNet1GW -g TestRG1
在輸出中,尋找 "id:"
行。 需要引號中的值,才能在下一節中建立連線。 將這些值複製到文字編輯器 (例如 [記事本]),以便您在建立連線時輕鬆地貼上。
範例輸出︰
"activeActive": false,
"bgpSettings": {
"asn": 65515,
"bgpPeeringAddress": "10.12.255.30",
"peerWeight": 0
},
"enableBgp": false,
"etag": "W/\"ecb42bc5-c176-44e1-802f-b0ce2962ac04\"",
"gatewayDefaultSite": null,
"gatewayType": "Vpn",
"id": "/subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW",
"ipConfigurations":
複製引號中 "id":
之後的值。
"id": "/subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"
取得 VNet4GW 的資源識別碼,並將值複製到文字編輯器。
az network vnet-gateway show -n VNet4GW -g TestRG4
建立 TestVNet1 至 TestVNet4 的連線。 在此步驟中,您會從 TestVNet1 建立連線至 TestVNet4。 範例中有一個共用金鑰。 您可以使用自己的值,作為共用金鑰。 但請務必確認該共用金鑰必須適用於這兩個連線。 建立連線可能需要一段時間才能完成。
az network vpn-connection create \
-n VNet1ToVNet4 \
-g TestRG1 \
--vnet-gateway 1 /subscriptions/d6ff83d6- 713d - 41 f6-a 025- 5e b76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW \
-l eastus \
--shared-key "aabbcc" \
--vnet-gateway 2 /subscriptions/d6ff83d6- 713d - 41 f6-a 025- 5e b76334fda9/resourceGroups/TestRG4/providers/Microsoft.Network/virtualNetworkGateways/VNet4GW
建立 TestVNet4 至 TestVNet1 的連線。 此步驟類似先前的步驟,只不過您是建立 TestVNet4 至 TestVNet1 的連線。 請確認共用的金鑰相符。 建立連線需花費數分鐘的時間。
az network vpn-connection create \
-n VNet4ToVNet1 \
-g TestRG4 \
--vnet-gateway 1 /subscriptions/d6ff83d6- 713d - 41 f6-a 025- 5e b76334fda9/resourceGroups/TestRG4/providers/Microsoft.Network/virtualNetworkGateways/VNet4GW \
-l westus \
--shared-key "aabbcc" \
--vnet-gateway 2 /subscriptions/d6ff83d6- 713d - 41 f6-a 025- 5e b76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW
確認您的連線。 請參閱驗證您的連線 。
建立 TestVNet1 至 TestVNet4 的連線。 在此步驟中,您會從 TestVNet1 建立連線至 TestVNet4。 請注意,在範例中的資源群組相同。 您也會看到範例使用一個共用金鑰。 您可以將自己的值使用於共用金鑰,不過,共用金鑰必須符合這兩個連線。 建立連線可能需要一段時間才能完成。
az network vpn-connection create \
-n VNet1ToVNet4 \
-g TestRG1 \
--vnet-gateway 1 VNet1GW \
-l eastus \
--shared-key "eeffgg" \
--vnet-gateway 2 VNet4GW
建立 TestVNet4 至 TestVNet1 的連線。 此步驟類似先前的步驟,只不過您是建立 TestVNet4 至 TestVNet1 的連線。 請確認共用的金鑰相符。 建立連線需花費數分鐘的時間。
az network vpn-connection create \
-n VNet4ToVNet1 \
-g TestRG1 \
--vnet-gateway 1 VNet4GW \
-l eastus \
--shared-key "eeffgg" \
--vnet-gateway 2 VNet1GW
確認您的連線。 請參閱驗證您的連線 。
在此案例中,您會連接 TestVNet1 和 TestVNet5。 VNet 位於不同的訂用帳戶。 訂用帳戶不需與相同的租用戶相關聯。 此設定的步驟會加入其他的 VNet 對 VNet 連線,以便將 TestVNet1 連接到 TestVNet5。
這些指示延續自前幾節中的步驟。 您必須完成步驟 1 和步驟 2 ,以建立並設定 TestVNet1 和 TestVNet1 的 VPN 閘道。 在此設定中,您不需要建立前一節的 TestVNet4 ,雖然您若建立它,它就不與這些步驟發生衝突:來自 TestVNet4 的流量不會路由至 TestVNet5。 完成步驟 1 和步驟 2 後,繼續進行步驟 6。
建立其他連線時,請務必確認新虛擬網路的 IP 位址空間不會與任何其他 VNet 範圍或區域網路閘道範圍重疊。 在這個練習中,您可以對 TestVNet5 使用下列的值:
TestVNet5 的值︰
VNet 名稱︰TestVNet5
資源群組:TestRG5
位置:日本東部
TestVNet5:10.51.0.0/16 和 10.52.0.0/16
FrontEnd:10.51.0.0/24
BackEnd:10.52.0.0/24
GatewaySubnet: 10.52.255.0/27
GatewayName:VNet5GW
公用 IP:VNet5GWIP
VPN 類型: RouteBased
連線︰VNet5toVNet1
ConnectionType:VNet2VNet
在新訂用帳戶 (訂用帳戶 5) 的內容中,必須完成這個步驟。 此部分可能會由不同組織中擁有訂用帳戶的系統管理員執行。 若要切換訂用帳戶,請使用 az account list --all
列出您帳戶可用的訂用帳戶,然後使用 az account set --subscription <subscriptionID>
切換至您想要使用的訂用帳戶。
確定您已連線到訂用帳戶 5,然後建立資源群組。
az group create -n TestRG5 -l japaneast
建立 TestVNet5。
az network vnet create \
-n TestVNet5 \
-g TestRG5 \
--address-prefix 10.51.0.0 /16 \
-l japaneast \
--subnet-name FrontEnd \
--subnet-prefix 10.51.0.0 /24
新增子網路。
az network vnet update \
-n TestVNet5 \
--address-prefixes 10.51.0.0 /16 10.52.0.0 /16 \
-g TestRG5 \
az network vnet subnet create \
--vnet-name TestVNet5 \
-n BackEnd \
-g TestRG5 \
--address-prefix 10.52.0.0 /24
新增閘道子網路。
az network vnet subnet create \
--vnet-name TestVNet5 \
-n GatewaySubnet \
-g TestRG5 \
--address-prefix 10.52.255.0 /27
要求公用 IP 位址。
az network public-ip create \
-g TestRG5 \
--n VNet5GWIP \
--sku Standard \
--allocation-method Static \
--l japaneast
建立 TestVNet5 閘道
az network vnet-gateway create \
-n VNet5GW \
-l japaneast \
--public-ip-address VNet5GWIP \
-g TestRG5 \
--vnet TestVNet5 \
--gateway-type Vpn \
--sku VpnGw2 \
--vpn-gateway-generation Generation2 \
--no-wait
此步驟會分成標示為 [訂用帳戶 1] 和 [訂用帳戶 5] 的兩個 CLI 工作階段,因為閘道位於不同的訂用帳戶。 若要切換訂用帳戶,請使用 az account list --all
列出您帳戶可用的訂用帳戶,然後使用 az account set --subscription <subscriptionID>
切換至您想要使用的訂用帳戶。
[訂用帳戶 1] 登入並連線到訂用帳戶 1。 執行下列命令,從輸出中取得閘道的名稱和識別碼︰
az network vnet-gateway show -n VNet1GW -g TestRG1
複製 id:
的輸出。 透過電子郵件或其他方法,將 VNet 閘道 (VNet1GW) 的識別碼和名稱傳送給訂用帳戶 5 的系統管理員。
範例輸出︰
"id": "/subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"
[訂用帳戶 5] 登入並連線到訂用帳戶 5。 執行下列命令,從輸出中取得閘道的名稱和識別碼︰
az network vnet-gateway show -n VNet5GW -g TestRG5
複製 id:
的輸出。 透過電子郵件或其他方法,將 VNet 閘道 (VNet5GW) 的識別碼和名稱傳送給訂用帳戶 1 的系統管理員。
[訂用帳戶 1] 在此步驟中,您會從 TestVNet1 建立連線至 TestVNet5。 您可以將自己的值使用於共用金鑰,不過,共用金鑰必須符合這兩個連線。 建立連線可能需要一段時間才能完成。 確定您已連接到訂用帳戶 1。
az network vpn-connection create \
-n VNet1ToVNet5 \
-g TestRG1 \
--vnet-gateway 1 /subscriptions/d6ff83d6- 713d - 41 f6-a 025- 5e b76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW \
-l eastus \
--shared-key "eeffgg" \
--vnet-gateway 2 /subscriptions/e7e33b39-fe 28- 4822 -b 65c-a 4db8bbff7cb/resourceGroups/TestRG5/providers/Microsoft.Network/virtualNetworkGateways/VNet5GW
[訂用帳戶 5] 此步驟類似上面的步驟,只不過您是建立 TestVNet5 至 TestVNet1 的連線。 確定共用金鑰相符,而且您會連線至訂用帳戶 5。
az network vpn-connection create \
-n VNet5ToVNet1 \
-g TestRG5 \
--vnet-gateway 1 /subscriptions/e7e33b39-fe 28- 4822 -b 65c-a 4db8bbff7cb/resourceGroups/TestRG5/providers/Microsoft.Network/virtualNetworkGateways/VNet5GW \
-l japaneast \
--shared-key "eeffgg" \
--vnet-gateway 2 /subscriptions/d6ff83d6- 713d - 41 f6-a 025- 5e b76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW
重要
不支援閘道子網上的NSG。 將網路安全性群組與此子網路產生關聯,可能會導致您的虛擬網路閘道 (VPN 與 ExpressRoute 閘道) 無法如預期運作。 如需有關網路安全性群組的詳細資訊,請參閱什麼是網路安全性群組? 。
您可以使用 az network vpn-connection show 命令來確認連線是否成功。 在此範例中,'--name' 是指您想要測試的連線名稱。 當系統在建立連線時,其連線狀態會顯示「連線中」。 連線建立好之後,狀態會變更為 [已連線]。 使用適用於您環境的值修改下列範例。
az network vpn-connection show --name <connection-name> --resource-group <resource-group-name>
請參閱 VPN 閘道常見問題集 ,以了解 VNet 對 VNet 的常見問題。