本教程介绍如何使用 Network Connectivity Center Hub 和 Cloud VPN Spoke 设置两个分支办公室之间的数据传输。
如需详细了解如何创建 Hub 和 Spoke,请参阅使用 Hub 和 Spoke。
准备工作
在开始之前,请查看以下部分。
创建或选择项目
为了更轻松地配置 Network Connectivity Center,请先确定有效项目。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
如果您使用的是 Google Cloud CLI,请使用
gcloud config set
命令设置项目 ID。gcloud config set project PROJECT_ID
将
PROJECT_ID
替换为您的唯一项目 ID。此页面上的 gcloud CLI 说明假定您已设置项目 ID。
如需确认您正确设置了项目 ID,请使用
gcloud config list
命令。gcloud config list --format='text(core.project)'
标识资源的惯例
使用 gcloud CLI 或 API 引用资源时,请使用下表中所述的惯例。
会展 | 支持 | 备注 | 示例 |
---|---|---|---|
完整 URI | 所有资源 | 使用其中一种方法来引用路由器设备实例。 |
"https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" |
相对资源名称 | 所有资源 | "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" |
|
名称 | 区域和全球资源 | 将此方法用于 hub、spoke、VPN 隧道和 VLAN 连接。 | "HUB_NAME" |
示例拓扑
下图介绍了本教程中使用的示例资源。
配置数据传输连接
如要设置数据传输连接,请按以下步骤操作:
- 创建 Google Cloud 资源,例如 Virtual Private Cloud (VPC) 网络、高可用性 VPN 网关和隧道以及 Cloud Router 路由器。
- 创建 Hub。
- 为第一个和第二个分支办公室定义 Spoke。每个 Spoke 都应使用 VPN 隧道作为其底层资源。
- 验证配置。
创建 Google Cloud 资源
本教程假定您已经创建了以下 Google Cloud 资源:
- 将动态路由模式设置为
global
的 VPC 网络。 - 在离
Office1
最近的区域中的子网、高可用性 VPN 网关、Cloud Router 路由器,以及将网关接口连接到Office1
的隧道 - 在离
Office2
最近的区域中的子网、高可用性 VPN 网关、Cloud Router 路由器,以及将网关接口连接到Office2
的隧道
如果您需要创建这些资源,请参阅以下文档:
- 如需创建 VPC 网络,请参阅创建网络。 由于此配置使用不同区域的多个 Spoke,因此请将网络的动态路由模式设置为
global
。 - 如需创建子网,请参阅添加子网。
- 如要创建高可用性 VPN 网关、隧道和 Cloud Router,请参阅创建连接到对等 VPN 网关的高可用性 VPN 网关。
确定现有 Google Cloud 资源或创建新资源后,请继续下一部分。
创建 hub
首先,您需要创建一个 Hub。稍后,您将 Spoke 连接到此 Hub。
控制台
在 Google Cloud 控制台中,转到 Network Connectivity Center 页面。
在项目下拉菜单中,选择一个项目(在示例图中,项目为
my-project
)。输入 Hub 名称(本例中为
my-hub
)。输入可选说明。
验证项目 ID。如果项目 ID 不正确,请使用屏幕顶部的下拉菜单选择其他项目。
点击继续。
如需将
Office1
添加到 Hub,请继续为 Office 1 创建 Spoke。
gcloud
如需创建 Hub,请使用 gcloud network-connectivity hubs create
命令。
gcloud network-connectivity hubs create HUB_NAME \ --description="DESCRIPTION" \ --labels="KEY"="VALUE"
替换以下值:
HUB_NAME
:新 Hub 的名称(在本例中为my-hub
)DESCRIPTION
:用于描述该 Hub 的可选文本KEY
:可选标签文本的键值对中的键VALUE
:可选标签文本的键值对中的值
如需将 Office1
添加到 Hub,请继续为 Office 1 创建 Spoke。
API
如要创建 Hub,请使用 networkconnectivity.hubs.create
方法。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/hubs { "name":"HUB_NAME", "description":"DESCRIPTION", "labels": { "KEY": "VALUE" } }
替换以下值:
PROJECT_ID
:包含新 Hub 的项目的 ID,例如my-project
HUB_NAME
:新 Hub 的名称,例如my-hub
DESCRIPTION
:用于描述该 Hub 的可选文本KEY
:可选标签文本的键值对中的键VALUE
:可选标签文本的键值对中的值
如需将 Office1
添加到 Hub,请继续为 Office 1 创建 Spoke。
为 Office 1 创建 Spoke
为 Office1
创建 spoke。使用两个高可用性 VPN 隧道作为 Spoke 的底层资源。每个隧道都应源自距离办公室最近的区域中的高可用性 VPN 网关。在示例图中,这些隧道表示为 vpn-tunnel1-office1
和 vpn-tunnel2-office1
。
控制台
从创建 Hub 继续执行以下步骤。它们介绍了如何在指定 Hub 名称和说明后立即创建 Spoke。
- 在新 spoke 表单中,将 Spoke 类型字段设置为 VPN 隧道。
- 输入 Spoke 名称,在本例中为
office-1-spoke
。 - (可选)输入 Spoke 的说明。
- 选择 spoke 的区域;在示例图中,spoke 位于
us-west1
。 - 在站点到站点数据传输下,选择开启。
- 选择相应的 VPC 网络;在示例图中,spoke 位于
network-a
。 - 选择 VPN 隧道。如果适用,点击添加隧道以添加其他 VPN 隧道字段。示例图中使用了两个隧道:
vpn-tunnel1-office1
和vpn-tunnel2-office1
。添加完隧道后,点击完成。 - 点击创建。
Network Connectivity Center 页面会更新,以显示您创建的 Spoke 的详细信息。如需将 Office2
添加到 Hub,请继续为 Office 2 创建 Spoke。
gcloud
如需创建 Spoke,请使用 gcloud network-connectivity spokes linked-vpn-tunnels create
命令。
gcloud network-connectivity spokes linked-vpn-tunnels create SPOKE_NAME \ --hub=HUB_NAME \ --description="DESCRIPTION" \ --vpn-tunnels=TUNNEL_NAME,TUNNEL_NAME_2 \ --region=REGION \ --labels="KEY"="VALUE" \ --site-to-site-data-transfer
替换以下值:
SPOKE_NAME
:Spoke 的名称(在本例中为office-1-spoke
)HUB_NAME
:您要向其挂接 Spoke 的 Hub 的名称(在本例中为my-hub
)DESCRIPTION
:描述该 spoke 的可选文本TUNNEL_NAME
:第一个高可用性 VPN 隧道的名称,在本例中为vpn-tunnel1-office1
TUNNEL_NAME_2
:冗余隧道的名称,在本例中为vpn-tunnel2-office1
;包含第二个隧道时,请勿在英文逗号与第二个隧道的名称之间使用空格REGION
:spoke 所在的 Google Cloud 区域,在本例中为us-west1
KEY
:可选标签文本的键值对中的键VALUE
:可选标签文本的键值对中的值
如需将 Office2
添加到 Hub,请继续为 Office 2 创建 Spoke。
API
如需创建 Spoke,请使用 networkconnectivity.spokes.create
方法。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/spokes/SPOKE_NAME { "hub": "HUB_NAME", "labels": {"KEY": "VALUE"}, "linkedVpnTunnels": { "uris: [ "TUNNEL_NAME", "TUNNEL_NAME_2" ], "siteToSiteDataTransfer": true } }
替换以下值:
PROJECT_ID
:您的项目的 IDREGION
:您希望 Spoke 所在的 Google Cloud 区域,在本例中为us-west1
SPOKE_NAME
:Spoke 的名称HUB_NAME
:您要将 Spoke 连接到的 Hub 的名称KEY
:可选标签文本的键值对中的键VALUE
:可选标签文本的键值对中的值TUNNEL_NAME
:第一个高可用性 VPN 隧道的名称,在本例中为vpn-tunnel1-office1
TUNNEL_NAME_2
:冗余隧道的名称,在本例中为vpn-tunnel2-office1
;包含第二个隧道时,请勿在英文逗号与第二个隧道的名称之间使用空格
为 Office 2 创建 Spoke
为 Office2
创建 spoke。使用两个高可用性 VPN 隧道作为 Spoke 的底层资源。每个隧道都应源自距离办公室最近的区域中的高可用性 VPN 网关。在示例图中,这些隧道表示为 vpn-tunnel1-office2
和 vpn-tunnel2-office2
。
控制台
如需创建第二个 Spoke,请执行以下操作:
转到 Network Connectivity Center 页面。
在项目下拉菜单中,选择一个项目(在示例图中,项目为
my-project
)。点击 Spoke 标签页。
点击添加 Spoke 以打开添加 Spoke 页面。
在新 spoke 表单中,将 Spoke 类型字段设置为 VPN 隧道。
输入 Spoke 名称,在本例中为
office-2-spoke
。(可选)输入 Spoke 的说明。
选择 spoke 的区域;在示例图中,spoke 位于
us-east1
。在站点到站点数据传输下,选择开启。
验证 VPC 网络字段是否设置为与上次创建的 spoke 相同的网络,在示例图中为
network-a
。选择 VPN 隧道。如果适用,点击添加隧道以添加其他 VPN 隧道字段。示例图中使用了两个隧道:
vpn-tunnel1-office2
和vpn-tunnel2-office2
。添加完隧道后,点击完成。点击创建。
gcloud
如需创建 Spoke,请使用 gcloud network-connectivity spokes linked-vpn-tunnels create
命令。
gcloud network-connectivity spokes linked-vpn-tunnels create SPOKE_NAME \ --hub=HUB_NAME \ --description="DESCRIPTION" \ --vpn-tunnels=TUNNEL_NAME,TUNNEL_NAME_2 \ --region=REGION \ --labels="KEY"="VALUE" \ --site-to-site-data-transfer
替换以下值:
SPOKE_NAME
:Spoke 的名称(在本例中为office-2-spoke
)HUB_NAME
:您要向其挂接 Spoke 的 Hub 的名称(在本例中为my-hub
)DESCRIPTION
:描述该 spoke 的可选文本TUNNEL_NAME
:第一个高可用性 VPN 隧道的名称,在本例中为vpn-tunnel1-office2
TUNNEL_NAME_2
:冗余隧道的名称,在本例中为vpn-tunnel2-office2
;包含第二个隧道时,请勿在英文逗号与第二个隧道的名称之间使用空格REGION
:Spoke 所在的 Google Cloud 区域,在本例中为us-east1
KEY
:可选标签文本的键值对中的键VALUE
:可选标签文本的键值对中的值如需将
Office2
添加到 Hub,请继续为 Office 2 创建 Spoke。
API
如需创建 Spoke,请使用 networkconnectivity.spokes.create
方法。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/spokes/SPOKE_NAME { "hub": "HUB_NAME", "labels": {"KEY": "VALUE"}, "linkedVpnTunnels": { "uris": [ "TUNNEL_NAME", "TUNNEL_NAME_2" ], "siteToSiteDataTransfer": true } }
替换以下值:
PROJECT_ID
:您的项目的 IDREGION
:您希望 Spoke 所在的 Google Cloud 区域,在本例中为us-east1
SPOKE_NAME
:Spoke 的名称HUB_NAME
:您要将 Spoke 连接到的 Hub 的名称KEY
:可选标签文本的键值对中的键VALUE
:可选标签文本的键值对中的值TUNNEL_NAME
:第一个高可用性 VPN 隧道的名称,在本例中为vpn-tunnel1-office2
TUNNEL_NAME_2
:冗余隧道的名称,在本例中为vpn-tunnel2-office2
;包含第二个隧道时,请勿在英文逗号与第二个隧道的名称之间使用空格
验证配置
配置 Hub 及其 spoke 后,您应该能将流量从某个办公室的虚拟机 (VM) 实例传递到另一个办公室的虚拟机实例。为此,每个虚拟机都必须有权访问其区域中的 VPN 隧道。
清理配置
按照以下各部分中的步骤操作来清理示例配置。为避免继续计费,请删除您先前创建的资源。
删除项目
如果要删除自己创建的项目,请按以下步骤操作。 或者,您可以保留项目并删除个别资源,如以下几个部分所述。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
同时删除这两个 spoke
您必须先删除所有 Spoke,然后才能删除 Hub。
控制台
转到 Network Connectivity Center 页面。
在项目下拉菜单中,选择一个项目(在示例图中,项目为
my-project
)。点击 Spoke 标签页。
查看项目的 Spoke 名称列表。
选中要删除的 Spoke 旁边的复选框(在本例中为
office-1-spoke
和office-2-spoke
)。点击
删除 Spoke。在确认对话框中点击删除。
gcloud
如需删除 spoke,请使用 gcloud network-connectivity spokes delete
命令。使用该命令两次,一次删除 office-1-spoke
,另一次删除 office-2-spoke
。
gcloud network-connectivity spokes delete SPOKE_NAME \ --region=REGION
替换以下值:
SPOKE_NAME
:要删除的 Spoke 的名称(在本例中为office-1-spoke
和office-2-spoke
)REGION
:Spoke 所在的 Google Cloud 区域
API
如需删除 spoke,请使用 networkconnectivity.spokes.delete
方法。使用此方法两次,一次删除 office-1-spoke
,另一次删除 office-2-spoke
。
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/spokes/SPOKE_NAME
替换以下值:
PROJECT_ID
:包含 Spoke 的项目的 ID(在示例图中,项目为my-project
)REGION
:Spoke 所在的 Google Cloud 区域SPOKE_NAME
:要删除的 Spoke 的名称(在本例中为office-1-spoke
和office-2-spoke
)
删除 hub
删除 Spoke 后,您便可以删除 Hub。
控制台
在 Google Cloud 控制台中,转到 Network Connectivity Center 页面。
在项目下拉菜单中,选择一个项目(在示例图中,项目为
my-project
)。点击
删除 Hub。在确认对话框中,点击删除以删除 Hub。
gcloud
如需删除 Hub,请使用 gcloud network-connectivity hubs delete
命令。
gcloud network-connectivity hubs delete HUB_NAME / --project=PROJECT_ID
替换以下值:
HUB_NAME
:要删除的 Hub 的名称(在本示例中为my-hub
)。PROJECT_ID
:包含 Hub 的项目的 ID(在示例图中,项目为my-project
)
API
如需删除 Hub,请使用 networkconnectivity.hubs.delete
方法。
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/hubs/HUB_NAME
替换以下值:
PROJECT_ID
:包含 Hub 的项目的 ID(在示例图中,项目为my-project
)HUB_NAME
:要删除的 Hub 的名称
删除 VPC 网络和子网
后续步骤
- 如需查看示例拓扑,请参阅站点到站点数据传输的示例拓扑。
- 如需详细了解 Network Connectivity Center 如何实现全网状连接,请参阅使用站点到站点数据传输进行路由交换。
- 如需了解高可用性要求,请参阅 spoke 资源的高可用性要求。
- 如要创建 Hub 和 Spoke,请参阅使用 Hub 和 Spoke。
- 如要查找 Network Connectivity Center 问题的解决方案,请参阅问题排查。