本教學課程說明如何在 Cloud de Confiance by S3NS 和 Microsoft Azure 之間建立高可用性 (HA) 虛擬私人網路 (VPN) 連線。您可以使用這些高可用性 VPN 服務,在Cloud de Confiance by S3NS 中的虛擬私有雲網路和 Microsoft Azure 虛擬網路閘道之間直接通訊。
本文假設您熟悉虛擬私有雲網路、邊界閘道通訊協定 (BGP)、VPN 和網際網路通訊協定安全性 (IPsec) 通道的基本概念。
Cloud de Confiance 提供高可用性 (HA) VPN 服務,可透過 IPsec VPN 連線,將虛擬私有雲網路連線至 Cloud de Confiance以外的環境,例如 Microsoft Azure。高可用性 VPN 按照 Google 最佳做法設定時,服務可用性服務水準協議 (SLA) 為 99.99%。
架構總覽
下圖顯示本文所述的架構。
圖中顯示的架構包含下列元件:
- Cloud Router:全分散式代管服務,可為 VPC 網路提供使用 BGP 的動態轉送。 Cloud de Confiance
- 高可用性 VPN 閘道:由 Google 管理的 VPN 閘道,在 Cloud de Confiance上執行。每個高可用性 VPN 閘道都是區域性資源,有兩個介面:介面 0 和 1。每個介面都有自己的外部 IP 位址。
- VPN 通道:從 Google Cloud 上的高可用性 VPN 閘道到 Azure 上的對等互連 VPN 閘道的連線,加密流量會通過這些連線。 Cloud de Confiance
- 虛擬網路閘道:在 Azure 雲端服務中定義的兩個私人網路。
每個虛擬網路閘道連線都附有兩個通道,這些通道已預先設定為指向單一客戶閘道,在本例中,該閘道是 Cloud de Confiance中的高可用性 VPN 閘道介面。採用這項設定時,如要達到 99.99% 服務可用性的服務水準協議,至少需要兩個 Cloud VPN 通道。
程序所需的 IP 位址
如要完成本文中的程序,您會在 Cloud de Confiance 和 Azure 中使用各種 IP 位址。建立資源時,系統會自動指派部分 IP 位址。
對於未自動指派的位址,您可以根據可用的 IP 位址和貴機構的需求定義這些 IP 位址。
Cloud de Confiance 資源需要下列 IP 位址:
- 建立虛擬私有雲網路的子網路時,需要使用者定義的 IP 位址範圍。
- 建立高可用性 VPN 閘道後,系統會自動為高可用性 VPN 閘道指派兩個外部 IP 位址。 Cloud de ConfianceGoogle 會為閘道的兩個介面各指派一個 IP 位址。您需要這些介面的 IP 位址,才能在 Azure 中設定本機網路閘道。
在 Cloud de Confiance中建立高可用性 VPN 通道時,每個通道都需要 Cloud Router 的 BGP 介面,以及 Azure 中作用中-作用中虛擬網路閘道 (VPN 閘道) 的 BGP 介面。針對每個通道,在
169.254.21.*和169.254.22.*範圍的 /30 區塊中,決定一對連結本機 BGP 對等互連 IPv4 位址。這些範圍是 Azure APIPA BGP 對等互連 IPv4 位址的有效範圍。 您必須選取四個 IP 位址。您選取的 BGP 對等互連 IPv4 位址,在虛擬私有雲網路的所有 Cloud Router 中,都必須是專屬位址。
Azure 資源需要下列 IP 位址:
- 建立虛擬網路 (VNet) 時,VNet 需要網路的 IP 位址空間,以及網路子網路的 IP 位址空間。您可以使用預設位址空間,或輸入使用者定義的位址空間。
- 建立作用中/作用中虛擬網路閘道 (VPN 閘道) 時,閘道需要子網路位址範圍。您可以選擇使用預設範圍,或輸入使用者定義的範圍。
- 為作用中/作用中 VPN 閘道設定 BGP 時,閘道需要兩個 APIPA BGP 對等互連 IP 位址。如先前所述,Azure APIPA BGP 對等互連 IP 位址的有效範圍為
169.254.21.*和169.254.22.*。 - 建立作用中-作用中 VPN 閘道後,Azure 會自動為每個閘道介面指派外部 IP 位址。您需要這些 IP 位址,才能在 Cloud de Confiance中設定對等互連 VPN 閘道。
定義 IP 位址時,請務必為每個網路使用一組不重複的 IP 位址。
目標
- 建立 Azure 虛擬網路 (VNet) 和主動-主動虛擬網路閘道 (VPN 閘道)。
- 在虛擬私有雲網路、Cloud Router、高可用性 VPN 閘道、對等互連 VPN 閘道,以及兩個具有 BGP 工作階段的高可用性 VPN 通道上,建立必要元件。 Cloud de Confiance
- 在 Azure 中建立兩個本機網路閘道和兩個 VPN 連線。驗證 Cloud Router 設定,並在 Cloud de Confiance中檢查高可用性 VPN 通道的狀態。
- 測試 Cloud de Confiance 上的虛擬私有雲網路與 Azure 上的虛擬網路 (VNet) 之間的 Cloud VPN 連線。
費用
本文中的程序會使用 Cloud de Confiance的計費元件,包括:
如要估算 Cloud de Confiance 元件的費用,請使用 Google Cloud Pricing Calculator。
本文中的程序會使用 Microsoft Azure Cloud 服務的計費元件,包括:
- VPN 閘道
- 區域網路閘道
如要估算 Azure 元件的費用,請使用 Azure Pricing Calculator。
事前準備
-
在 Cloud de Confiance 控制台的專案選擇器頁面中,選取或建立 Cloud de Confiance 專案。
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您需要專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
啟用 Compute Engine API。
啟用 API 時所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。-
在 Cloud de Confiance 控制台中啟用 Cloud Shell。
-
請確認您具備必要的管理員角色,才能設定網路元件:
- 網路管理員:
compute.networkAdmin - 安全管理員:
compute.securityAdmin - Compute 管理員:
compute.admin
如要進一步瞭解這些角色的用途,請參閱「網路相關職務的 IAM 角色」。
- 網路管理員:
在 Azure 上建立 VNet 和主動-主動 VPN 閘道
在 Azure 中,您需要設定下列元件:
- Azure 虛擬網路 (VNet),可讓 Azure 資源與 Google Cloud VPN 通訊。
- 作用中-作用中虛擬網路閘道 (VPN 閘道),可讓閘道虛擬機器 (VM) 的兩個執行個體,與 Google Cloud VPN 建立 VPN 通道。
建立 VNet
Azure 資源可透過 VNet 安全地相互通訊、連上網際網路,以及連線至其他網路 (例如 Cloud VPN)。如要進一步瞭解如何建立 VNet,請參閱 Azure 建立 VNet 的說明文件。
- 登入 Azure 入口網站。
- 在「Search resources, service, and docs (G+/)」(搜尋資源、服務和文件 (G+/)) 方塊中,輸入
virtual network。 - 在「Marketplace」(市集) 結果清單中,選取「Virtual network」(虛擬網路)。
- 在「虛擬網路」頁面中,選取「建立」。
在「建立虛擬網路」頁面的「基本」分頁中,為「專案詳細資料」和「執行個體詳細資料」設定下列 VNet 設定:
- 在「訂閱」方塊中,確認列出的訂閱項目是否正確。如要變更訂閱方案,請從清單中選取訂閱項目。
- 如要指定資源群組,請按一下「建立新群組」,然後輸入名稱,例如
azure‑to‑google‑resgroup做為資源群組名稱。 - 在「Name」(名稱) 方塊中,輸入 VNet 的名稱,例如
azure‑to‑google‑network。 在「Region」(區域) 方塊中,選取虛擬網路的位置。
您選取的位置會決定部署至這個虛擬網路的資源儲存位置。
在「IP Addresses」(IP 位址) 分頁的「IPv4 address space」(IPv4 位址空間) 方塊中,使用 Azure 建立的預設位址空間和子網路。
在「Security」(安全性) 分頁中,將「BastionHost」(堡壘主機)、「DDos Protection Standard」(DDoS 防護標準) 和「Firewall」(防火牆) 的值保留為預設值「Disable」(停用)。
如要驗證 VNet 設定,請選取「Review + create」(檢閱 + 建立)。
設定驗證完成後,請選取「建立」。
建立作用中/作用中 VPN 閘道
下列程序會建立作用中/作用中 VPN 閘道:
- 第一個程序會定義專案和執行個體詳細資料
- 第二個程序會指定閘道的 IP 位址。
此時您只會建立作用中-作用中 VPN 閘道。您必須先建立 Cloud de Confiance 元件,才能在 Azure 中設定必要通道。如要進一步瞭解如何建立作用中-作用中 VPN 閘道,請參閱 Azure 說明文件中的「使用入口網站設定作用中-作用中 VPN 閘道」主題。
定義閘道詳細資料
- 登入 Azure 入口網站。
- 在「Search resources, service, and docs (G+/)」中輸入
virtual network gateway。 - 在搜尋結果的「服務」下方,找出並選取「虛擬網路閘道」。
- 在「虛擬網路閘道」頁面中,選取「建立」。
在「建立虛擬網路閘道」頁面的「基本」分頁中,為「專案詳細資料」和「執行個體詳細資料」區段的選項指定下列值:
- 在「Subscription」(訂閱項目) 清單中,選取要使用的訂閱項目。
- 選用:在「閘道子網路位址範圍」方塊中,輸入子網路的位址範圍。
- 確認「資源群組」顯示的資源群組,與您在這個頁面選取的虛擬網路相符。
- 在「Name」(名稱) 中輸入閘道名稱,例如
azure‑to‑google‑gateway。 - 在「Region」(區域) 部分,選取您建立 VNET 時使用的區域。
- 在「閘道類型」中,選取「VPN」。
在「VPN 類型」中,選取「依據路徑」VPN 類型。
在「SKU」SKU清單中,選取要使用的閘道 SKU。
下拉式選單中列出的 SKU 會因您選取的 VPN 類型而異。
在「Generation」(世代) 清單中,選取要使用的世代。
在「虛擬網路」清單中,選取您先前建立的虛擬網路。
請保留這個頁面,以便執行下一個程序。
定義閘道 IP 位址
在「Create virtual network gateway」(建立虛擬網路閘道) 頁面的「Basics」(基本) 分頁中,按照下列步驟建立作用中-作用中 VPN 閘道使用的外部 IP 位址:
在「Public IP address」(公開 IP 位址) 部分,選取「Create new」(建立新項目)。
Azure 會自動將外部 IP 位址指派給作用中-作用中 VPN 閘道。
在「Public IP address name」(公開 IP 位址名稱) 方塊中,輸入外部 IP 位址執行個體的名稱,例如
azure‑to‑google‑network‑ip1。在「Enable active-active mode」(啟用主動-主動模式) 部分選取「Enabled」(已啟用)。
選用:如果所在區域支援,請設定可用區。 例如,您可以選取「區域備援」。
在「Second Public IP Address」(第二個公開 IP 位址) 部分,選取「Create new」(建立新項目)。
在「公開 IP 位址名稱」方塊中,輸入第二個外部 IP 位址的名稱,例如
azure‑to‑google‑network‑ip2。在「設定 BGP」部分中選取「已啟用」。
如果是自治系統編號 (ASN),請將 ASN 設為允許的有效值。
設定通道的 BGP 工作階段時,請使用這個 ASN 值。Cloud de Confiance請記錄這個值做為
AZURE_ASN,以便參照這個作用中-作用中 VPN 閘道。在「Custom Azure APIPA BGP IP address」(自訂 Azure APIPA BGP IP 位址) 部分,輸入第一個 APIPA BGP IP 位址,並將該值記錄為
AZURE_BGP_IP_0。 Azure APIPA BGP IP 位址的有效範圍為169.254.21.*和169.254.22.*。在「Second Custom Azure APIPA BGP IP address」(第二個自訂 Azure APIPA BGP IP 位址) 中,輸入第二個 APIPA BGP IP 位址,並將該值記錄為
AZURE_BGP_IP_1。在 Cloud de Confiance中設定 BGP 工作階段時,您會使用這些變數。
如要執行驗證,請選取「檢查並建立」。
驗證完成後,選取「建立」即可部署 VPN 閘道。
查看並記錄作用中/作用中 VPN 閘道的外部 IP 位址
您需要 Azure 自動指派給作用中-作用中 VPN 閘道的外部 IP 位址。您可以使用這些 IP 位址,在 Cloud de Confiance中建立對等互連 VPN 閘道資源。
- 在您剛建立的「作用中-作用中」閘道「總覽」頁面中,找出閘道的外部 IP 位址。
- 記下畫面上的 IP 位址:
- 將第一個外部 IP 位址記錄為
AZURE_GW_IP_0。 - 將第二個外部 IP 位址記錄為
AZURE_GW_IP_1。
- 將第一個外部 IP 位址記錄為
本文稍後會將這些 IP 位址稱為 AZURE_GW_IP_0 和 AZURE_GW_IP_1。
建立 Cloud de Confiance 元件
在 Cloud de Confiance上,您需要設定下列元件:
- 虛擬私有雲網路。
- 高可用性 VPN 閘道。
- Cloud Router。
- 對等互連 VPN 閘道。
- 具有 BGP 工作階段的高可用性 VPN 通道。
下列程序假設您已按照「事前準備」一文所述設定 Cloud de Confiance 。如果尚未完成這些步驟,請立即完成。
在 Cloud de Confiance上建立虛擬私有雲網路、子網路、高可用性 VPN 閘道和 Cloud Router
在 Cloud de Confiance中,您會建立虛擬私有雲網路、高可用性 VPN 閘道和 Cloud Router,然後在 Cloud de Confiance中設定防火牆規則。
在 Cloud de Confiance Shell 中,確認您使用的是建立或選取的雲端專案:
gcloud config set project YOUR_PROJECT_ID export PROJECT_ID=`gcloud config list --format="value(core.project)"`
使用您的 Cloud 專案 ID 取代
YOUR_PROJECT_ID。建立包含單一子網路的自訂虛擬私有雲網路:
gcloud compute networks create NETWORK \ --subnet-mode SUBNET_MODE \ --bgp-routing-mode BGP_ROUTING_MODE
更改下列內容:
NETWORK:網路名稱,例如google‑to‑azure‑vpc。SUBNET_MODE:子網路模式設為custom。
BGP_ROUTING_MODE:BGP 路由模式設為global。指令應如下列範例所示:
gcloud compute networks create google-to-azure-vpc \ --subnet-mode custom \ --bgp-routing-mode global
建立一個子網路來代管測試 VM:
gcloud compute networks subnets create SUBNET_NAME \ --network NETWORK \ --region SUBNET_REGION \ --range SUBNET_IP_ADDRESS_RANGE
更改下列內容:
SUBNET_NAME:子網路名稱。SUBNET_REGION:要建立子網路的區域。SUBNET_IP_ADDRESS_RANGE:子網路的 IP 位址範圍。
指令應如下列範例所示:
gcloud compute networks subnets create subnet-central1 \ --network google-to-azure-vpc \ --region us-central1 \ --range 10.1.1.0/24建立高可用性 VPN 閘道:
gcloud compute vpn-gateways create HA_VPN_GATEWAY_NAME \ --network NETWORK \ --region REGION
將
HA_VPN_GATEWAY_NAME替換為高可用性 VPN 閘道的名稱。指令應如下列範例所示:
gcloud compute vpn-gateways create ha-vpn-gw-a \ --network google-to-azure-vpc \ --region us-central1
您建立的閘道應與下列範例輸出內容類似:
Created [https://www.googleapis.com/compute/v1/projects/YOUR_PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a]. NAME INTERFACE0 INTERFACE1 NETWORK REGION ha-vpn-gw-a 203.0.113.1 203.0.113.2 google-to-azure-vpc us-central1
輸出內容會列出自動指派給各個閘道介面 (
INTERFACE0和INTERFACE1) 的外部 IPv4 位址。在 Azure 上設定本機網路閘道時,您需要這些 IP 位址:- 在
HA_VPN_INT_0中記錄INTERFACE0的 IP 位址。 - 在
HA_VPN_INT_1中記錄INTERFACE1的 IP 位址。
- 在
建立 Cloud Router:
gcloud compute routers create ROUTER_NAME \ --region REGION \ --network NETWORK \ --asn GOOGLE_ASN \
更改下列內容:
ROUTER_NAME:Cloud Router 的名稱。REGION:您要建立高可用性 VPN 閘道和通道的區域。GOOGLE_ASN:您要建立的 Cloud Router 私人自治系統編號 (ASN)。這可以是範圍64512-65534或4200000000-4294967294中的任何私人 ASN,但不得在同個區域和網路中用做對等 ASN。
指令應如下列範例所示:
gcloud compute routers create cloud-router \ --region us-central1 \ --network google-to-azure-vpc \ --asn 65534
為 Azure VPN 建立對等互連 VPN 閘道
在本節中,您將建立外部 VPN 閘道資源,向 Cloud de Confiance 提供 Azure 中作用中-作用中 VPN 閘道的相關資訊。您建立單一對等互連 VPN 閘道,使用兩個不同的介面,每個介面都有專屬的外部 IP 位址。
建立具有兩個介面的單一外部對等互連 VPN 閘道:
gcloud compute external-vpn-gateways create AZURE_GW_NAME \ --interfaces 0=AZURE_GW_IP_0,1=AZURE_GW_IP_1
更改下列內容:
AZURE_GW_NAME:Azure 作用中-作用中 VPN 閘道的名稱AZURE_GW_IP_0:對等互連閘道中某個介面的外部 IP 位址AZURE_GW_IP_1:對等互連閘道中另一個介面的外部 IP 位址
您建立的對等互連 VPN 閘道資源應與下列範例類似,其中 AZURE_GW_IP_0 和 AZURE_GW_IP_1 會顯示對等互連閘道介面的實際外部 IP 位址:
gcloud compute external-vpn-gateways create azure-peer-gw \
--interfaces 0=203.0.113.1,1=203.0.113.2
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/peer-gw].
NAME INTERFACE0 INTERFACE1
azure-peer-gw 203.0.113.1 203.0.113.2
建立 VPN 通道
您需要建立兩個 VPN 通道:對等 VPN 閘道的每個介面各一個通道。設定連往 Azure 的 VPN 通道時,請使用 IKEv2 加密通訊協定。
在本節使用的指令中,請替換下列項目:
TUNNEL_NAME_IF0和TUNNEL_NAME_IF1:通道的名稱;如果為通道命名時包含閘道介面名稱,日後有助於識別通道。AZURE_GW_NAME:先前建立的外部對等互連閘道名稱AZURE_GW_INT_NUM_0和AZURE_GW_INT_NUM_1:先前在外部對等互連閘道上設定的介面編號。IKE_VERS:針對 IKEv2 使用2。SHARED_SECRET:預先共用金鑰 (共用密鑰),必須與您在 Azure 中設定 VPN 連線時指定的預先共用金鑰相符。如需相關建議,請參閱「產生高強度的預先共用金鑰」。HA_VPN_GATEWAY_NAME:高可用性 VPN 閘道的名稱。INT_NUM_0:您先前建立的高可用性 VPN 閘道上第一個介面的編號0。INT_NUM_1:您先前建立的高可用性 VPN 閘道上第二個介面的編號1。
請按照下列步驟建立 VPN 通道:
為介面 0 建立 VPN 通道:
gcloud compute vpn-tunnels create TUNNEL_NAME_IF0 \ --peer-external-gateway=AZURE_GW_NAME \ --peer-external-gateway-interface=AZURE_GW_INT_NUM_0 \ --region=REGION \ --ike-version=IKE_VERS \ --shared-secret=SHARED_SECRET \ --router=ROUTER_NAME \ --vpn-gateway=HA_VPN_GATEWAY_NAME \ --interface=INT_NUM_0
指令應如下列範例所示:
gcloud compute vpn-tunnels create azure-tunnel-1 \ --peer-external-gateway azure-peer-gw \ --peer-external-gateway-interface 0 \ --region us-central1 \ --ike-version 2 \ --shared-secret xo2aTKHipD/oE1GAXgj3lMwjBmJXZjqD \ --router cloud-router \ --vpn-gateway ha-vpn-gw-a \ --interface 0
為介面 1 建立 VPN 通道:
gcloud compute vpn-tunnels create TUNNEL_NAME_IF1 \ --peer-external-gateway=AZURE_GW_NAME \ --peer-external-gateway-interface=AZURE_GW_INT_NUM_1 \ --region=REGION \ --ike-version=IKE_VERS \ --shared-secret=SHARED_SECRET \ --router=ROUTER_NAME \ --vpn-gateway=HA_VPN_GATEWAY_NAME \ --interface=INT_NUM_1
指令應如下列範例所示:
gcloud compute vpn-tunnels create azure-tunnel-2 \ --peer-external-gateway azure-peer-gw \ --peer-external-gateway-interface 1 \ --region us-central1 \ --ike-version 2 \ --shared-secret xo2aTKHipD/oE1GAXgj3lMwjBmJXZjqD \ --router cloud-router \ --vpn-gateway ha-vpn-gw-a \ --interface 1
建立 BGP 工作階段
如果是動態轉送,您可以使用 Cloud Router 在 Cloud de Confiance 和 Azure 之間建立 BGP 工作階段。如 Cloud VPN 總覽和 Cloud VPN 網路和通道轉送所述,我們建議盡可能使用動態轉送,而非靜態轉送。
您必須為每個 VPN 通道建立 BGP 工作階段。每個 BGP 工作階段都包含 Cloud Router 的 BGP 介面和 BGP 對等互連。您為剛建立的兩個 VPN 通道各建立一個 BGP 對等互連。
在本節使用的指令中,請替換下列項目:
ROUTER_NAME:您指派給 Cloud Router 的名稱。ROUTER_INTERFACE_NAME_0和ROUTER_INTERFACE_NAME_1:Cloud Router BGP 介面的名稱;建議使用與先前設定的通道名稱相關的名稱。MASK_LENGTH:指定30;相同 Cloud Router 上的每個 BGP 工作階段都必須使用169.254.0.0/16區塊中的專屬/30CIDR。GOOGLE_BGP_IP_0和GOOGLE_BGP_IP_1:您設定的高可用性 VPN 閘道介面 BGP 對等互連 IP 位址;每個通道使用不同的閘道介面。由於 Azure APIPA BGP 對等互連 IP 位址的允許範圍為169.254.21.*和169.254.22.*,因此您必須在這些範圍的/30CIDR 中選取可用的 IP 位址,做為 Cloud Router BGP 對等互連 IP 位址。AZURE_BGP_IP_0和AZURE_BGP_IP_1:您已在 Azure 作用中-作用中 VPN 閘道上設定的 APIPA BGP 對等互連 IP 位址;每個通道使用不同的位址。TUNNEL_NAME_IF0和TUNNEL_NAME_IF1: 與您設定的高可用性 VPN 閘道介面相關聯的通道。AZURE_ASN:您在 Azure 中為作用中-作用中對等互連 VPN 閘道設定的 ASN。BGP_PEER_NAME_1和BGP_PEER_NAME_2,並為每個 BGP 對等互連設定專屬名稱。 例如azure‑bgp‑peer‑1和azure‑bgp‑peer‑2。
如要為 VPN 通道建立 BGP 工作階段,請按照下列步驟操作:
如果是第一個 VPN 通道,請將 BGP 介面新增至 Cloud Router:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name=ROUTER_INTERFACE_NAME_0 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_IF0 \ --ip-address=GOOGLE_BGP_IP_0 \ --region=REGION
指令應如下列範例所示:
gcloud compute routers add-interface cloud-router \ --interface-name azure-tunnel-1-int-0 \ --mask-length 30 \ --vpn-tunnel azure-tunnel-1 \ --ip-address 169.254.21.2 \ --region us-central1
針對第一個 VPN 通道,將 BGP 對等點新增至介面:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name=BGP_PEER_NAME_1 \ --peer-asn=AZURE_ASN \ --interface=ROUTER_INTERFACE_NAME_0 \ --peer-ip-address=AZURE_BGP_IP_0 \ --region=REGION
指令應如下列範例所示:
gcloud compute routers add-bgp-peer cloud-router \ --peer-name azure-bgp-peer-1 \ --peer-asn 65515 \ --interface azure-tunnel-1-int-0 \ --peer-ip-address 169.254.21.1 \ --region us-central1
為第二個 VPN 通道在 Cloud Router 中新增 BGP 介面:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name=ROUTER_INTERFACE_NAME_1 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_IF1 \ --ip-address=GOOGLE_BGP_IP_1 \ --region=REGION
指令應如下列範例所示:
gcloud compute routers add-interface cloud-router \ --interface-name azure-tunnel-2-int-1 \ --mask-length 30 \ --vpn-tunnel azure-tunnel-2 \ --ip-address 169.254.22.2 \ --region us-central1
針對第二個 VPN 通道,將 BGP 對等點新增至該介面:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name=BGP_PEER_NAME_2 \ --peer-asn=AZURE_ASN \ --interface=ROUTER_INTERFACE_NAME_1 \ --peer-ip-address=AZURE_BGP_IP_1 \ --region=REGION
指令應如下列範例所示:
gcloud compute routers add-bgp-peer cloud-router \ --peer-name azure-bgp-peer-2 \ --peer-asn 65515 \ --interface azure-tunnel-2-int-1 \ --peer-ip-address 169.254.22.1 \ --region us-central1
在 Azure 中建立本機網路閘道和 VPN 連線
建立及設定 Cloud de Confiance 元件後,請返回 Azure 環境,完成與 Azure 的連線 Cloud de Confiance 。如要完成這項連線,請在 Azure 中建立下列元件:
- 代表 Azure 中 Google Cloud VPN 的兩個本機網路閘道。
- 兩個 VPN 連線,對應您在 Cloud de Confiance中設定的兩個高可用性 VPN 通道。
建立兩個本機網路閘道
本機網路閘道是代表 Azure 中 Google Cloud VPN 的特定物件。建立本機網路閘道時,請指定下列資訊:
- 本機網路閘道的名稱。
- 連線中要使用的高可用性 VPN 介面 IP 位址。
- 要建立連線的 Google Cloud Router IP 位址。
- 透過 VPN 閘道傳送至 Cloud Router 的 IP 位址前置字元。您指定的位址前置字元是位於 Cloud VPN 的前置字元。如果 Cloud 虛擬私人網路有變更,或是需要變更 Cloud Router 的外部 IP 位址,您稍後可以更新這些值。
您需要建立兩個本機網路閘道:一個閘道連線至第一個高可用性 VPN 通道介面 Cloud de Confiance ,另一個閘道則連線至第二個高可用性 VPN 通道介面。
詳情請參閱 Azure 說明文件中的「在 Azure 入口網站中建立站對站 VPN 連線」教學課程,並參閱「建立本機網路閘道」一節。
如要建立第一個本機網路閘道,請按照下列步驟操作:
- 登入 Azure 入口網站。
- 在「Search resources, service, and docs (G+/)」中,輸入「local network gateway」。
- 在「Marketplace」下方的搜尋結果中,找出並選取「local network gateway」。
- 點選「建立」。
在「建立本機網路閘道」頁面的「基本」分頁中,為本機網路閘道指定下列值:
- 在「訂閱」清單中,確認顯示的訂閱項目是否正確。
- 在「資源群組」清單中,選取您在本文件稍早為 VNet 建立的資源群組。
- 在「Region」(區域),選取與 VNet 相同的所在位置。
- 在「Name」部分輸入本機網路閘道的名稱,例如
azure-to-google-locgateway1。 - 在「Endpoint」(端點) 中選取「IP address」(IP 位址)。
- 在「IP address」(IP 位址) 方塊中,輸入高可用性 VPN 的
INTERFACE0IP 位址 (也就是輸入HA_VPN_INT_0)。 在「位址空間」部分,輸入這個本機網路代表的網路位址範圍。
您可以新增多個位址空間範圍。請確保您在此指定的範圍,不會與要連線的其他網路範圍重疊。
在「進階」分頁中,設定 BGP 設定,如下所示:
- 在「設定 BGP 設定」部分,選取「是」。
- 在「自治系統編號 (ASN)」中,輸入 Cloud Router 的 ASN (也就是輸入
GOOGLE_ASN)。 - 在「BGP peer IP address」(BGP 對等互連 IP 位址) 中,輸入通道 1 中 Cloud Router 的 BGP IP 位址 (也就是輸入
GOOGLE_BGP_IP_0)。
如要驗證本機網路閘道設定,請按一下頁面底部的「檢查並建立」。
驗證通過後,按一下「建立」,即可建立本機網路閘道。
如要建立第二個本機網路閘道,請按照下列步驟操作:
- 在 Azure 入口網站的「搜尋資源、服務和文件 (G+/)」中,輸入
local network gateway。 - 在「Marketplace」下方的搜尋結果中,找出並選取「local network gateway」。
在「建立本機網路閘道」頁面的「基本」分頁中,為本機網路閘道指定下列值:
- 在「訂閱」清單中,確認顯示的訂閱項目正確無誤。
- 在「資源群組」清單中,選取與您在本文件稍早為 VNet 建立的資源群組相同的資源群組。
- 在「區域」部分,選取與 VNet 相同的區域。
- 在「Name」部分輸入本機網路閘道的名稱,例如
azure-to-google-locgateway2。 - 在「Endpoint」(端點) 中選取「IP address」(IP 位址)。
- 在「IP address」方塊中,輸入高可用性 VPN 的
INTERFACE1IP 位址 (也就是輸入HA_VPN_INT_1)。 - 在「位址空間」部分,輸入這個區域網路代表的網路位址範圍。
您可以新增多個位址空間範圍。請確保您在此指定的範圍,不會與要連線的其他網路範圍重疊。
在「進階」分頁中,設定 BGP 設定,如下所示:
- 在「設定 BGP 設定」部分,選取「是」。
- 在「自治系統編號 (ASN)」中,輸入 Cloud Router 的 ASN (也就是輸入
GOOGLE_ASN)。 - 在「BGP peer IP address」(BGP 對等互連 IP 位址) 中,輸入通道 1 中 Cloud Router 的 BGP IP 位址 (也就是輸入
GOOGLE_BGP_IP_1)。
如要驗證本機網路閘道設定,請按一下頁面底部的「檢查並建立」。
驗證通過後,按一下「建立」,即可建立本機網路閘道。
建立兩個 VPN 連線
如要在 Azure 中建立 VPN 連線,您需要預先共用金鑰 (SHARED_SECRET),也就是在 Cloud de Confiance上設定高可用性 VPN 通道時設定的金鑰。
- 在 Azure 入口網站中,找出您在「建立作用中-作用中 VPN 閘道」中建立的作用中-作用中 VPN 閘道。
- 選取「連線」。
- 在「連結」頁面頂端,選取「+新增」。
- 在「新增連線」頁面中,為第一個連線指定下列值:
- 在「Name」(名稱) 部分輸入連線名稱,例如
azure-vnet-to-google1。 - 在「連線類型」部分,選取「站對站 (IPsec)」。
- 針對「Local network gateway」(本機網路閘道),指定您建立的第一個本機網路閘道,例如
azure-to-google-locgateway1。 - 如果是共用金鑰 (PSK),請指定您為第一個高可用性 VPN 通道設定的共用金鑰。
- 選取「啟用 BGP」。
- 在「IKE Protocol」(IKE 通訊協定) 中選取「IKEv2」。
- 按一下 [確定]。
- 在「Connections」(連線) 頁面中,選取「+Add」(新增),新增第二個連線並設定下列值:
- 在「Name」(名稱) 部分輸入連線名稱,例如
azure-vnet-to-google2。 - 在「連線類型」部分,選取「站對站 (IPsec)」。
- 在「Local network gateway」(區域網路閘道) 部分,指定您建立的第二個區域網路閘道,例如
azure-to-google-locgateway2。 - 如果是共用金鑰 (PSK),請指定為第二個高可用性 VPN 通道設定的共用金鑰。
- 選取「啟用 BGP」。
- 在「IKE Protocol」(IKE 通訊協定) 中選取「IKEv2」。
- 按一下 [確定]。
- 在「Name」(名稱) 部分輸入連線名稱,例如
- 在「Connections」(連線) 頁面上,確認兩個連線的狀態都顯示為「Connected」(已連線)。
驗證設定
在 Cloud de Confiance中,您可以先檢查 (列出) Cloud Router 設定,然後檢查高可用性 VPN 通道的狀態,藉此驗證高可用性 VPN 設定。
在 Cloud Shell 中,列出 Cloud Router 選擇的 BGP 對等互連 IP 位址:
gcloud compute routers get-status ROUTER_NAME \ --region=REGION \ --format='flattened(result.bgpPeerStatus[].name, result.bgpPeerStatus[].ipAddress, result.bgpPeerStatus[].peerIpAddress)'
指令應如下列範例所示:
gcloud compute routers get-status cloud-router \ --region us-central1 \ --format='flattened(result.bgpPeerStatus[].name,result.bgpPeerStatus[].ipAddress,result.bgpPeerStatus[].peerIpAddress)'管理兩個高可用性 VPN 通道 (索引
0和索引1) 的預期 Cloud Router 輸出應如以下範例所示:result.bgpPeerStatus[0].ipAddress: 169.254.21.2 result.bgpPeerStatus[0].name: azure-bgp-peer-1 result.bgpPeerStatus[0].peerIpAddress: 169.254.21.1 result.bgpPeerStatus[1].ipAddress: 169.254.22.2 result.bgpPeerStatus[1].name: azure-bgp-peer-2 result.bgpPeerStatus[1].peerIpAddress: 169.254.22.1
在 Cloud Shell 中,查看第一個高可用性 VPN 通道的狀態:
gcloud compute vpn-tunnels describe TUNNEL_NAME_IF0 \ --region=REGION
更改下列內容:
TUNNEL_NAME_IF0:與您設定的第一個高可用性 VPN 閘道介面相關聯的通道。REGION:部署高可用性 VPN 閘道的區域。
指令應如下列範例所示:
gcloud compute vpn-tunnels describe azure-tunnel-1 -–region=us-central1
通道的預期輸出內容應如下列範例所示:
creationTimestamp: '2022-09-28T17:13:21.592-07:00' description: '' detailedStatus: Tunnel is up and running. id: '278561789474069966' ikeVersion: 2 kind: compute#vpnTunnel localTrafficSelector: - 0.0.0.0/0 name: azure-tunnel-1 peerExternalGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/global/externalVpnGateways/azure-peer-gw peerExternalGatewayInterface: 0 peerIp: 203.0.113.1 region: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1 remoteTrafficSelector: - 0.0.0.0/0 router: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/routers/cloud-router selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnTunnels/azure-tunnel-1 sharedSecret: '*************' sharedSecretHash: ALDZGgSMUxj8KFahMoG_L0Fz9paz status: ESTABLISHED vpnGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnGateways/ha-vpn-gw-a vpnGatewayInterface: 0
在 Cloud Shell 中,查看第二個高可用性 VPN 通道的狀態:
gcloud compute vpn-tunnels describe TUNNEL_NAME_IF1 \ --region=REGION
更改下列內容:
TUNNEL_NAME_IF1:與您設定的第二個高可用性 VPN 閘道介面相關聯的通道。REGION:部署高可用性 VPN 閘道的區域。
指令應如下列範例所示:
gcloud compute vpn-tunnels describe azure-tunnel-2 --region=us-central1
通道的預期輸出內容應如下列範例所示:
creationTimestamp: '2022-09-28T17:13:21.592-07:00' description: '' detailedStatus: Tunnel is up and running. id: '5665972275117479944' ikeVersion: 2 kind: compute#vpnTunnel localTrafficSelector: - 0.0.0.0/0 name: azure-tunnel-2 peerExternalGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/global/externalVpnGateways/azure-peer-gw peerExternalGatewayInterface: 1 peerIp: 203.0.113.2 region: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1 remoteTrafficSelector: - 0.0.0.0/0 router: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/routers/cloud-router selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnTunnels/azure-tunnel-2 sharedSecret: '*************' sharedSecretHash: ALDZGgSMUxj8KFahMoG_L0Fz9ddd
測試連線能力
如要測試高可用性 VPN 連線,您必須先在通道的兩端建立 VM。
接著,請確認您在 Cloud de Confiance 中定義的防火牆規則允許來自 Azure 網路子網路的輸入 ICMP 流量。設定 VM 和防火牆規則後,您可以使用 ping 測試連線,並使用 iperf 測試頻寬。
在通道兩端各建立測試 VM,測試 Ping 要求。
您也必須設定 Azure 網路防火牆,允許來自虛擬私有雲所用子網路前置字元的傳入流量。
在 Cloud de Confiance上,設定防火牆規則,允許來自 Azure VPN 的傳入 ICMP 流量:
gcloud compute firewall-rules create RULE_NAME \ --network NETWORK \ --direction ingress \ --action allow \ --source-ranges AZURE_VNET_RANGE \ --rules icmp \
將
AZURE_VNET_RANGE替換為指派給 Azure VNet 的 IP 位址範圍。指令應如下列範例所示:
gcloud compute firewall-rules create allow-azure-icmp \ --network google-to-azure-vpc \ --direction ingress \ --action allow \ --source-ranges 10.0.0.0/16 \ --rules icmp
使用 ping 指令測試連線。
使用 iperf 測量測試機之間的頻寬。
清除所用資源
刪除您在本教學課程中建立的 Cloud de Confiance 和 Azure 資源。
刪除 Cloud de Confiance by S3NS 專案
如要避免系統向您的 Cloud de Confiance 帳戶收取本教學課程中所用資源的相關費用,請刪除專案:
- 前往 Cloud de Confiance 控制台的「Manage resources」(管理資源) 頁面。
- 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
- 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。
刪除 Azure 資源群組
刪除建立 VNet 時建立的 Azure 管理員資源群組。在本教學課程中,範例資源群組的名稱為 azure-to-google-resgroup。
詳情請參閱「Azure Resource Manager 資源群組和資源刪除作業」。
後續步驟
- 進一步瞭解 Google Cloud VPN。
- 進一步瞭解虛擬私有雲設計的最佳做法與參考架構。