本教程介绍如何使用 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
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)'
- 创建 Google Cloud 资源,例如虚拟私有云 (VPC) 网络、高可用性 VPN 网关和隧道以及 Cloud Router 路由器。
- 创建 Hub。
- 为第一个和第二个分支办公室定义 Spoke。每个 Spoke 都应使用 VPN 隧道作为其底层资源。
- 验证配置。
- 将动态路由模式设置为
global的 VPC 网络。 - 在离
Office1最近的区域中的子网、高可用性 VPN 网关、Cloud Router 路由器,以及将网关接口连接到Office1的隧道 - 在离
Office2最近的区域中的子网、高可用性 VPN 网关、Cloud Router 路由器,以及将网关接口连接到Office2的隧道 - 如需创建 VPC 网络,请参阅创建网络。 由于此配置使用不同区域的多个 Spoke,因此请将网络的动态路由模式设置为
global。 - 如需创建子网,请参阅添加子网。
- 如要创建高可用性 VPN 网关、隧道和 Cloud Router,请参阅创建连接到对等 VPN 网关的高可用性 VPN 网关。
在 Google Cloud 控制台中,前往 Network Connectivity Center 页面。
在项目下拉菜单中,选择一个项目(在示例图中,项目为
my-project)。输入 Hub 名称(本例中为
my-hub)。输入可选说明。
验证项目 ID。如果项目 ID 不正确,请使用屏幕顶部的下拉菜单选择其他项目。
点击继续。
如需将
Office1添加到 Hub,请继续为 Office 1 创建 Spoke。HUB_NAME:新 Hub 的名称(在本例中为my-hub)DESCRIPTION:用于描述该 Hub 的可选文本KEY:可选标签文本的键值对中的键VALUE:可选标签文本的键值对中的值PROJECT_ID:包含新 Hub 的项目的 ID,例如my-projectHUB_NAME:新 Hub 的名称,例如my-hubDESCRIPTION:用于描述该 Hub 的可选文本KEY:可选标签文本的键值对中的键VALUE:可选标签文本的键值对中的值- 在新 spoke 表单中,将 Spoke 类型字段设置为 VPN 隧道。
- 输入 Spoke 名称,在本例中为
office-1-spoke。 - (可选)输入 Spoke 的说明。
- 选择 spoke 的区域;在示例图中,spoke 位于
us-west1。 - 在站点到站点数据传输下,选择开启。
- 选择相应的 VPC 网络;在示例图中,spoke 位于
network-a。 - 选择 VPN 隧道。如果适用,点击添加隧道以添加其他 VPN 隧道字段。示例图中使用了两个隧道:
vpn-tunnel1-office1和vpn-tunnel2-office1。添加完隧道后,点击完成。 - 点击创建。
SPOKE_NAME:Spoke 的名称(在本例中为office-1-spoke)HUB_NAME:您要向其挂接 Spoke 的 Hub 的名称(在本例中为my-hub)DESCRIPTION:描述该 spoke 的可选文本TUNNEL_NAME:第一个高可用性 VPN 隧道的名称,在本例中为vpn-tunnel1-office1TUNNEL_NAME_2:冗余隧道的名称,在本例中为vpn-tunnel2-office1;包含第二个隧道时,请勿在英文逗号与第二个隧道的名称之间使用空格REGION:spoe 所在的 Google Cloud 区域,在本例中为us-west1KEY:可选标签文本的键值对中的键VALUE:可选标签文本的键值对中的值PROJECT_ID:您的项目的 IDREGION:您希望 spoke 所在的 Google Cloud 区域,在本例中为us-west1SPOKE_NAME:Spoke 的名称HUB_NAME:您要将 Spoke 连接到的 Hub 的名称KEY:可选标签文本的键值对中的键VALUE:可选标签文本的键值对中的值TUNNEL_NAME:第一个高可用性 VPN 隧道的名称,在本例中为vpn-tunnel1-office1TUNNEL_NAME_2:冗余隧道的名称,在本例中为vpn-tunnel2-office1;包含第二个隧道时,请勿在英文逗号与第二个隧道的名称之间使用空格转到 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。添加完隧道后,点击完成。点击创建。
SPOKE_NAME:Spoke 的名称(在本例中为office-2-spoke)HUB_NAME:您要向其挂接 Spoke 的 Hub 的名称(在本例中为my-hub)DESCRIPTION:描述该 spoke 的可选文本TUNNEL_NAME:第一个高可用性 VPN 隧道的名称,在本例中为vpn-tunnel1-office2TUNNEL_NAME_2:冗余隧道的名称,在本例中为vpn-tunnel2-office2;包含第二个隧道时,请勿在英文逗号与第二个隧道的名称之间使用空格REGION:spoe 所在的 Google Cloud 区域,在本例中为us-east1KEY:可选标签文本的键值对中的键VALUE:可选标签文本的键值对中的值如需将
Office2添加到 Hub,请继续为 Office 2 创建 Spoke。PROJECT_ID:您的项目的 IDREGION:您希望 spoke 所在的 Google Cloud 区域,在本例中为us-east1SPOKE_NAME:Spoke 的名称HUB_NAME:您要将 Spoke 连接到的 Hub 的名称KEY:可选标签文本的键值对中的键VALUE:可选标签文本的键值对中的值TUNNEL_NAME:第一个高可用性 VPN 隧道的名称,在本例中为vpn-tunnel1-office2TUNNEL_NAME_2:冗余隧道的名称,在本例中为vpn-tunnel2-office2;包含第二个隧道时,请勿在英文逗号与第二个隧道的名称之间使用空格- 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.
转到 Network Connectivity Center 页面。
在项目下拉菜单中,选择一个项目(在示例图中,项目为
my-project)。点击 Spoke 标签页。
查看项目的 Spoke 名称列表。
选中要删除的 Spoke 旁边的复选框(在本例中为
office-1-spoke和office-2-spoke)。点击删除 Spoke。
在确认对话框中点击删除。
SPOKE_NAME:要删除的 Spoke 的名称(在本例中为office-1-spoke和office-2-spoke)REGION:spoke 所在的 Google Cloud 区域PROJECT_ID:包含 Spoke 的项目的 ID(在示例图中,项目为my-project)REGION:spoke 所在的 Google Cloud 区域SPOKE_NAME:要删除的 Spoke 的名称(在本例中为office-1-spoke和office-2-spoke)在 Google Cloud 控制台中,前往 Network Connectivity Center 页面。
在项目下拉菜单中,选择一个项目(在示例图中,项目为
my-project)。点击删除 Hub。
在确认对话框中,点击删除以删除 Hub。
HUB_NAME:要删除的 Hub 的名称(在本示例中为my-hub)。PROJECT_ID:包含 Hub 的项目的 ID(在示例图中,项目为my-project)PROJECT_ID:包含 Hub 的项目的 ID(在示例图中,项目为my-project)HUB_NAME:要删除的 Hub 的名称- 如需查看示例拓扑,请参阅站点到站点数据传输的示例拓扑。
- 如需详细了解 Network Connectivity Center 如何实现全网状连接,请参阅使用站点到站点数据传输进行路由交换。
- 如需了解高可用性要求,请参阅 spoke 资源的高可用性要求。
- 如要创建 Hub 和 Spoke,请参阅使用 Hub 和 Spoke。
- 如要查找 Network Connectivity Center 问题的解决方案,请参阅问题排查。
标识资源的惯例
使用 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 资源
本教程假定您已经创建了以下Google Cloud 资源:
如果您需要创建这些资源,请参阅以下文档:
确定现有 Google Cloud 资源或创建新资源后,请继续下一部分。
创建 hub
首先,您需要创建一个 Hub。稍后,您将 Spoke 连接到此 Hub。
控制台
gcloud
如需创建 Hub,请使用 gcloud network-connectivity hubs create 命令。
gcloud network-connectivity hubs create HUB_NAME \
--description="DESCRIPTION" \
--labels="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"
}
}
替换以下值:
如需将 Office1 添加到 Hub,请继续为 Office 1 创建 Spoke。
为 Office 1 创建 Spoke
为 Office1 创建 spoke。使用两个高可用性 VPN 隧道作为 Spoke 的底层资源。每个隧道都应源自距离办公室最近的区域中的高可用性 VPN 网关。在示例图中,这些隧道表示为 vpn-tunnel1-office1 和 vpn-tunnel2-office1。
控制台
从创建 Hub 继续执行以下步骤。它们介绍了如何在指定 Hub 名称和说明后立即创建 Spoke。
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
替换以下值:
如需将 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
}
}
替换以下值:
为 Office 2 创建 Spoke
为 Office2 创建 spoke。使用两个高可用性 VPN 隧道作为 Spoke 的底层资源。每个隧道都应源自距离办公室最近的区域中的高可用性 VPN 网关。在示例图中,这些隧道表示为 vpn-tunnel1-office2 和 vpn-tunnel2-office2。
控制台
如需创建第二个 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
替换以下值:
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
}
}
替换以下值:
验证配置
配置 Hub 及其 spoke 后,您应该能将流量从某个办公室的虚拟机 (VM) 实例传递到另一个办公室的虚拟机实例。为此,每个虚拟机都必须有权访问其区域中的 VPN 隧道。
清理配置
按照以下各部分中的步骤操作来清理示例配置。为避免继续计费,请删除您先前创建的资源。
删除项目
如果要删除自己创建的项目,请按以下步骤操作。 或者,您可以保留项目并删除个别资源,如以下几个部分所述。
同时删除这两个 spoke
您必须先删除所有 Spoke,然后才能删除 Hub。
控制台
gcloud
如需删除 spoke,请使用 gcloud network-connectivity spokes delete 命令。使用该命令两次,一次删除 office-1-spoke,另一次删除 office-2-spoke。
gcloud network-connectivity spokes delete SPOKE_NAME \
--region=REGION
替换以下值:
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
替换以下值:
删除 hub
删除 Spoke 后,您便可以删除 Hub。
控制台
gcloud
如需删除 Hub,请使用 gcloud network-connectivity hubs delete 命令。
gcloud network-connectivity hubs delete HUB_NAME /
--project=PROJECT_ID
替换以下值:
API
如需删除 Hub,请使用 networkconnectivity.hubs.delete 方法。
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/hubs/HUB_NAME
替换以下值: