[toc] 本篇內容將透過Azure Portal來建立site-to-site VPN連線,並且搭配Hub-Spoke網路架構。 >[Azure Hub-spoke network topology 架構參考](https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/hybrid-networking/hub-spoke?tabs=cli)   ## 1/ 建立Hub Vnet * 建立Hub虛擬網路,新建一個資源群組存放此次建立S2S VPN的相關資源。  ``` 假設Cloud Hub Vnet網段為: 10.20.0.0/24 Cloud Hub Subnet網段為: 10.20.0.192/26 - GatewaySubnet (For VPN Gateway) ``` * ==**虛擬網路IPv4位址空間**== : 輸入**10.20.0.0/24**。 * ==**新增子網路**== : 新增`GatewaySubnet` - **10.20.0.192/26**。  ## 2/ 建立VPN Gateway * ==**命名**== VPN Gateway。 * ==**閘道類型**==:選擇VPN。 * ==**SKU**==:選擇VpnGw1。 > 建立虛擬網路閘道時,根據工作負載、輸送量、功能和SLA的類型,選取符合需求的 SKU。[查看 Gateway SKUs](https://docs.microsoft.com/zh-tw/azure/vpn-gateway/vpn-gateway-about-vpn-gateway-settings#gwsku) * ==**虛擬網路**==:選擇剛才建立的Vnet (`NetworkLab-Hub-vnet`)。 * ==**子網路**== 會自動帶入剛才建立的`GatewaySubnet` * 為VPN Gateway建立一個新的 ==**公用IP位址**==。 * 填完相對應資訊後點選建立。  :::warning :warning: **注意 !** * 建立VPN Gateway通常可能需要**40分鐘左右或者更久**,視選取的**Gateway SKU**而定。 * 等待的同時我們可以先去建立Local Network Gateway。 ::: ## 3/ 建立Local Network Gateway * 上方Search bar搜尋**區域網路閘道**或**Local Network Gateway**。  * 在建立Local Network Gateway的時候需要地端的一些資訊,例如:地端VPN設備的對外IP、地端要連線上雲端的IP網段。 :::warning :warning: **注意 !** * 地端的網段不能和雲端的網段重疊。 * [建立VPN連線必要條件。](https://docs.microsoft.com/zh-tw/azure/vpn-gateway/tutorial-site-to-site-portal#prerequisites) ::: ``` 假設地端VPN設備對外IP為: 20.123.124.125 地端IP網段為: 10.10.0.0/24 10.10.1.0/24 ``` * ==**IP位址**==:填入地端VPN設備對外IP。 * ==**位址空間**==:填入地端要連上雲端的IP網段。  ## 4/ 設定地端VPN設備 * 設定地端 VPN 設備時,需要下列值: * ==**共用金鑰Pre-Shared Key**==:在建立S2S VPN Connection的時候也需要相同的共用金鑰。 * ==**Cloud VPN Gateway的Public IP**==。  * >:memo: [**已經驗證的 VPN 裝置及裝置設定指南**](https://learn.microsoft.com/zh-tw/azure/vpn-gateway/vpn-gateway-about-vpn-devices#devicetable) ## 5/ 建立Connection * 上方Search Bar搜尋**連接**。  * 基本 * ==**連接類型**== 選擇 ==**站對站(IPSec)**==。  * 設定 * ==**虛擬網路閘道**== 選擇剛才建立的Virtual Network Gateway。 * ==**區域網路閘道**== 選擇剛才建立的Local Network Gateway。 * ==**共用金鑰(PSK)**== 輸入在地端VPN設備設定的Pre-shared key。 * 其餘選項使用預設即可。  * Connection建立完後,若地端VPN設備沒有同步設定完成,則Connection狀態會顯示 ==**未連接**==, ==**連入資料**== 和 ==**連出資料**== 都會是0B。  * 地端VPN設備有同步設定成功的話,Connection狀態會顯示 ==**已連接**== ,且 ==**連入資料**== 和 ==**連出資料**== 過一段時間會開始有流量顯示。  :::info :memo: **測試連線** * Connection設定成功後,可以建立一台VM去Ping地端的機器是否可以Ping通,來驗證我們建立的S2S VPN服務是否正常。 ::: ## 6/ 建立S2S VPN所需創立的資源 * 可以在 ==**資源群組**== 中看到我們建立S2S VPN所需的資源有哪些。  - [x] **==VNet、Subnet==** - [x] **==VPN Gateway==** - [x] **==VPN Gateway Public IP==** - [x] **==Local Network Gateway==** - [x] **==Connection==** :::info :bulb: **提醒** * 如果只是嘗試建立S2S VPN的話,測試完畢後,記得將資源群組刪除,才不會有額外的費用產生。 ::: ## 7/ 建立Spoke Vnet * 建立Spoke虛擬網路  ``` 假設Cloud Spoke01 Vnet網段為: 10.20.1.0/24 Cloud Spoke01 Subnet網段為: 10.20.1.0/26 - app01-snet ``` * ==**虛擬網路IPv4位址空間**== : 輸入**10.20.1.0/24**。 * ==**新增子網路**== : 新增`app01-snet` - **10.20.1.0/26**。  ## 8/ 建立對等互連 - Peering 1. 點選剛才建立的Hub Vnet (`NetworkLab-Hub-vnet`) 2. 點選對等互連 - Peering  3. 此虛擬網路 * ==**命名**== 對等互連Peering名稱 * **==虛擬網路閘道或路由伺服器==**:若要使Spoke01 Vnet也能夠使用Hub Vnet的Virtual Network Gateway的話(地端流量可以通到Spoke01 Vnet),記得勾選 **==使用此虛擬網路的閘道或路由伺服器==** > 這裡的"使用此虛擬網路的閘道或路由伺服器"指的是Hub Vnet的Virtual Network Gateway  4. 遠端虛擬網路 * ==**命名**== 對等互連Peering名稱 * **==虛擬網路閘道或路由伺服器==**:若要使Spoke01 Vnet也能夠使用Hub Vnet的Virtual Network Gateway的話(地端流量可以通到Spoke01 Vnet),記得勾選 **==使用遠端虛擬網路的閘道或路由伺服器==** > 這裡的"使用遠端虛擬網路的閘道或路由伺服器"指的也是Hub Vnet的Virtual Network Gateway  :::info :memo: **測試連線** * 新增對等互連Peering後,可以在Spoke01 Vnet建立一台VM去Ping地端的機器是否可以Ping通,來驗證我們剛才建立的Peering是否正確。 ::: ## Reference * [在Azure入口網站中建立站對站VPN連線](https://docs.microsoft.com/zh-tw/azure/vpn-gateway/tutorial-site-to-site-portal) * [使用Azure入口網站建立和管理VPN閘道](https://docs.microsoft.com/zh-tw/azure/vpn-gateway/tutorial-create-gateway-portal) * [Azure Hub-Spoke Network Topology](https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/hybrid-networking/hub-spoke?tabs=cli) * [虛擬網路對等互連](https://learn.microsoft.com/zh-tw/azure/virtual-network/virtual-network-peering-overview)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up