GSP193

概览
通过 Google Cloud 虚拟私有云 (VPC) 网络对等互连,无论两个 VPC 网络是否属于同一个项目或组织,都可以在它们之间建立专用连接。
通过 VPC 网络对等互连,您可在 Google Cloud 中构建 SaaS(软件即服务)生态系统,从而在一个组织内或在不同的组织之间以非公开的方式提供服务,实现工作负载在私密空间内的通信。
VPC 网络对等互连对于以下组织十分有用:
- 拥有多个网络管理域的组织。
- 希望与其他组织进行对等互连的组织。
如果您的组织中有多个网络管理域,则通过 VPC 网络对等互连,可以在私密空间内的多个不同的 VPC 网络中提供服务。如果您需要向其他组织提供服务,则可以通过 VPC 网络对等互连在私密空间中向这些组织提供。
如果您希望向其他企业提供服务,则能够跨不同组织提供服务这一点非常有用。如果您由于自身的结构或由于合并或收购而拥有多个不同的组织节点,则在您自己的企业内使用该服务也非常有用。
与使用外部 IP 地址或 VPN 连接网络相比,VPC 网络对等互连有多项优势,其中包括:
-
网络延迟时间:专用网络的延迟时间比公共 IP 网络短。
-
网络安全:服务所有者不需要向公共互联网公开其服务,自然也就无需应对相关风险。
-
网络成本:对等连接的网络可以使用内部 IP 进行通信,从而节省 Google Cloud 出站带宽费用。常规网络价格仍然适用于所有流量。
您将执行的操作
- 在两个项目中创建一个自定义网络
- 设置 VPC 网络对等互连会话
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
- “打开 Google Cloud 控制台”按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在“实验详细信息”窗格中找到“用户名”。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在“实验详细信息”窗格中找到“密码”。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
-
点击 Google Cloud 控制台顶部的激活 Cloud Shell
。
-
在弹出的窗口中执行以下操作:
- 继续完成 Cloud Shell 信息窗口中的设置。
- 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
- 点击授权。
输出:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (可选)您可以通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需查看在 Google Cloud 中使用 gcloud
的完整文档,请参阅 gcloud CLI 概览指南。
任务 1. 在两个项目中分别创建一个自定义网络
在同一个组织节点内,一个网络托管的服务可能需要被同一项目中的其他 VPC 网络访问,或者被不同项目中的其他 VPC 网络访问。
此外,一个组织可能希望访问第三方服务所提供的服务。
项目名称在整个 Google Cloud 中是唯一的,所以在设置对等互连时不需要指定组织。Google Cloud 可以根据项目名称推测出组织。
在本实验中,您已预配了 2 个项目,第一个项目是 project-A,第二个项目是 project-B。
-
在每个项目中,点击 + 图标启动一个新的 Cloud Shell。
-
在 project-A 的 Cloud Shell 中,为 project-A 设置项目 ID:
gcloud config set project {{{project_0.project_id | Project ID 1}}}
- 在 project-B 的 Cloud Shell 中,为 project-B 设置项目 ID:
gcloud config set project {{{project_1.project_id | Project ID 2}}}
project-A:
- 返回第一个 Cloud Shell,运行以下命令来创建自定义网络:
gcloud compute networks create network-a --subnet-mode custom
- 运行以下命令在此 VPC 中创建一个子网,并指定区域和 IP 范围:
gcloud compute networks subnets create network-a-subnet --network network-a \
--range 10.0.0.0/16 --region {{{ project_0.default_region | "REGION 1" }}}
- 创建一个虚拟机实例:
gcloud compute instances create vm-a --zone {{{ project_0.default_zone | "ZONE 1" }}} --network network-a --subnet network-a-subnet --machine-type e2-small
- 运行以下命令启用 SSH 和
icmp
,因为在连接测试期间您需要一个安全外壳 (SSH) 与虚拟机进行通信:
gcloud compute firewall-rules create network-a-fw --network network-a --allow tcp:22,icmp
接下来以同样的方式设置 project-B。
点击“检查我的进度”以验证是否完成了以下目标:
在 project-A 中创建自定义网络
project-B:
- 切换到第二个 Cloud Shell 创建自定义网络:
gcloud compute networks create network-b --subnet-mode custom
- 运行以下命令在此 VPC 中创建一个子网,并指定区域和 IP 范围:
gcloud compute networks subnets create network-b-subnet --network network-b \
--range 10.8.0.0/16 --region {{{ project_1.default_region | "REGION 2"}}}
- 创建一个虚拟机实例:
gcloud compute instances create vm-b --zone {{{ project_1.default_zone | "ZONE 2"}}} --network network-b --subnet network-b-subnet --machine-type e2-small
- 运行以下命令启用 SSH 和
icmp
,因为在连接测试期间您需要一个安全外壳 (SSH) 与虚拟机进行通信:
gcloud compute firewall-rules create network-b-fw --network network-b --allow tcp:22,icmp
点击“检查我的进度”以验证是否完成了以下目标:
在 project-B 中创建自定义网络
任务 2. 设置 VPC 网络对等互连会话
设想这样的情况:一个组织需要在 project-A 的 network-A 与 project-B 的 network-B 之间建立 VPC 网络对等互连。为了成功建立 VPC 网络对等互连,network-A 和 network-B 的管理员必须分别配置对等互连关联。
network-A 与 network-B 对等互连:

在应用设置之前,先在控制台中选择正确的项目:点击屏幕顶部项目 ID 旁边的向下箭头,然后选择所需的项目 ID。

project-A
在 Cloud 控制台中,前往“网络”部分并点击左侧菜单中的 VPC 网络 > VPC 网络对等互连,打开 VPC 网络对等互连
页面。打开该页面后,执行以下操作:
- 点击创建连接。
- 点击继续。
- 输入“peer-ab”作为连接这一端的名称。
- 在您的 VPC 网络下,选择您想要对等互连的网络 (network-a)。
- 将对等互连的 VPC 网络单选按钮设置为在另一个项目中。
- 粘贴第二个项目的项目 ID。
{{{ project_1.project_id | "PROJECT ID 2"}}}
- 输入另一个网络 (network-b) 的 VPC 网络名称。
- 点击创建。
此时,对等互连状态为“无效”,因为 project-B 的 network-b 中没有匹配的配置。您应该会看到状态消息“正在等待对等互连网络创建连接
”。
点击“检查我的进度”以验证是否完成了以下目标:
将 network-a 与 network-b 对等互连
将 network-b 与 network-a 对等互连

注意:在控制台中切换到第二个项目。
project-B
- 点击创建连接。
- 点击继续。
- 输入“peer-ba”作为连接这一端的名称。
- 在您的 VPC 网络下,选择您想要对等互连的网络 (network-b)。
- 除非您希望在同一项目内建立对等互连,否则应将对等互连 VPC 网络单选按钮设置为在另一个项目中。
- 指定第一个项目的项目 ID。
{{{ project_0.project_id | "PROJECT ID 1"}}}
- 指定另一个网络 (network-a) 的 VPC 网络名称。
- 点击创建。
在 VPC 网络对等互连中,您现在应该会看到属性列表中列出 peer-ba
。
VPC 网络对等互连的状态变为“有效”,并开始交换路由。一旦对等互连进入“有效”状态,就会建立流量:
- 在对等互连网络中的虚拟机实例之间:全网状连接。
- 从一个网络中的虚拟机实例到对等互连的网络中的内部负载均衡端点。

现在,VPC 对等互连的网络之间将可以看到到对等互连网络 CIDR 前缀的路由。这些路由是为工作状态的对等互连生成的隐式路由。它们没有对应的路由资源。以下命令列出了 project-A 所有 VPC 网络的路由。
gcloud compute routes list --project {{{ project_0.project_id }}}
输出示例:
NAME NETWORK DEST_RANGE NEXT_HOP PRIORITY
default-route-2a865a00fa31d5df network-a 0.0.0.0/0 default-internet-gateway 1000
default-route-8af4732e693eae27 network-a 10.0.0.0/16 1000
peering-route-4732ee69e3ecab41 network-a 10.8.0.0/16 peer-ab 1000
点击“检查我的进度”以验证是否完成了以下目标:
将 network-b 与 network-a 对等互连
任务 3. 测试连接性
在此任务中,您将执行连接测试。
project-A
-
点击导航菜单 > Compute Engine > 虚拟机实例前往虚拟机实例控制台。
-
复制 vm-a
的 INTERNAL_IP。
project-B
- 点击导航菜单 > Compute Engine > 虚拟机实例。
通过 SSH 连接到 vm-b
实例。
- 在
vm-b
的 SSH shell 中,运行以下命令,并将 <INTERNAL_IP_OF_VM_A>
替换为 vm-a 实例的 INTERNAL_IP:
ping -c 5 <INTERNAL_IP_OF_VM_A>
输出示例:
PING 10.8.0.2 (10.8.0.2) 56(84) bytes of data.
64 bytes from 10.8.0.2: icmp_seq=1 ttl=64 time=1.07 ms
64 bytes from 10.8.0.2: icmp_seq=2 ttl=64 time=0.364 ms
64 bytes from 10.8.0.2: icmp_seq=3 ttl=64 time=0.205 ms
64 bytes from 10.8.0.2: icmp_seq=4 ttl=64 time=0.216 ms
64 bytes from 10.8.0.2: icmp_seq=5 ttl=64 time=0.164 ms
--- 10.8.0.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4065ms
rtt min/avg/max/mdev = 0.164/0.404/1.072/0.340 ms
恭喜!
您了解了如何在 Google Cloud 中设置跨项目的 VPC 对等互连。
后续步骤/了解详情
Google Cloud 培训和认证
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2024 年 10 月 23 日
本实验的最后测试时间:2024 年 10 月 23 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。