arrow_back

构建高吞吐量 VPN

登录 加入
访问 700 多个实验和课程

构建高吞吐量 VPN

实验 1 小时 universal_currency_alt 7 个积分 show_chart 高级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP062

Google Cloud 自学实验的徽标

概览

本实操实验介绍了如何创建高吞吐量的安全 VPN 并测试其速度。

在 Google Cloud 与其他云端或本地系统之间进行安全通信是一个常见的关键需求。Google Cloud 可帮助您轻松创建安全的互联网安全协议 (IPsec) 虚拟专用网 (VPN) 来实现此目标。如果单个隧道不足以提供所需的吞吐量,Google Cloud 可跨多个隧道顺畅分配流量来提供额外的带宽。

目标

在本实验中,您需要完成以下操作:

  • 创建 VPN

    • 创建一个名为 cloud 的虚拟私有云 (VPC) 来模拟您的 Google Cloud 网络,以及一个名为 on-prem(本地)的 VPC 来模拟外部网络。
    • cloud VPC 创建 VPN 网关、转发规则和地址。
    • 为新 VPN 建立隧道,并通过隧道路由流量。
    • on-prem VPC 重复上述 VPN 创建过程,创建第二个 VPN。
  • 测试 VPN

    • 使用 Compute Engine 创建虚拟机 (VM) 以进行吞吐量负载测试。
    • 使用 iperf 测试单个 VPN 的吞吐速度。

前提条件

为充分提升学习效果,建议您先完成以下内容:

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 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 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 创建云 VPC

在本部分中,您将执行以下操作:

  • 创建 VPC 以模拟您的云生产网络。
  • 允许常见类型的流量流过 VPC。
  • 创建用于部署主机的子网。
  1. 在 Cloud Shell 中,运行以下命令,创建与您的 Google Cloud 项目关联的自定义 VPC,并将其命名为 cloud
gcloud compute networks create cloud --subnet-mode custom

此 VPC 允许您使用非默认 IP 地址,但不包含任何默认防火墙规则。

  1. 运行以下命令启用 SSHicmp,因为在连接测试期间您需要一个安全外壳 (SSH) 与虚拟机进行通信:
gcloud compute firewall-rules create cloud-fw --network cloud --allow tcp:22,tcp:5001,udp:5001,icmp
  1. 运行以下命令在此 VPC 中创建一个子网,并指定区域和 IP 范围:
gcloud compute networks subnets create cloud-east --network cloud \ --range 10.0.1.0/24 --region {{{project_0.default_region_2 | REGION2}}}

在此方案中,您将使用 10.0.1.0/24 区域。

任务 2. 创建本地 VPC

在本部分中,您将为 on-prem VPC 或任何要连接到 cloud 的网络创建模拟环境。实际上,您已经拥有了所需的资源,但是为了创建隧道并验证配置,请按照下列步骤操作:

  1. 在 Cloud Shell 中,运行以下命令,创建与您的项目关联的自定义子网 VPC,并将其命名为 on-prem
gcloud compute networks create on-prem --subnet-mode custom
  1. 运行以下命令,为 on-prem VPC 中的主机启用 SSHicmp,因为在负载测试期间您需要使用安全外壳来与虚拟机通信:
gcloud compute firewall-rules create on-prem-fw --network on-prem --allow tcp:22,tcp:5001,udp:5001,icmp
  1. 使用以下命令指定区域的子网前缀:
gcloud compute networks subnets create on-prem-central \ --network on-prem --range 192.168.1.0/24 --region {{{project_0.default_region |REGION}}} 注意:本示例会将 `192.168.1.0/24` 分配给 区域。 创建两个带有子网和防火墙规则的自定义 VPC。

任务 3. 创建 VPN 网关

每个环境都需要 VPN 网关才能进行安全的外部通信。请按照以下步骤为您的 cloud VPC 和 on-prem VPC 创建初始网关:

  1. 在 Cloud Shell 中,在 on-prem VPC 和 区域中创建名为 on-prem-gw1 的 VPN 网关:
gcloud compute target-vpn-gateways create on-prem-gw1 --network on-prem --region {{{project_0.default_region |REGION}}}
  1. cloud VPC 和 区域中创建一个名为 cloud-gw1 的 VPN 网关:
gcloud compute target-vpn-gateways create cloud-gw1 --network cloud --region {{{project_0.default_region_2 | REGION2}}}

任务 4. 在本地和 Google Cloud 网络之间创建一个基于路由的 VPN 隧道

每个 VPN 网关都需要一个静态的外部 IP 地址,以便外部系统与 VPC 通信。然后,在 cloud VPC 和 on-prem VPC 上创建 IP 地址和路由。

  1. 在 Cloud Shell 中,为 cloud-gw1 VPN 网关分配 IP:
gcloud compute addresses create cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
  1. on-prem-gw1 VPN 网关分配 IP:
gcloud compute addresses create on-prem-gw1 --region {{{project_0.default_region |REGION}}}
  1. 保存网关地址,方便在后续的命令中使用。

首先,对于 cloud-gw1 网关:

cloud_gw1_ip=$(gcloud compute addresses describe cloud-gw1 \ --region {{{project_0.default_region_2 | REGION2}}} --format='value(address)')

其次,对于 on-prem-gw1 网关:

on_prem_gw_ip=$(gcloud compute addresses describe on-prem-gw1 \ --region {{{project_0.default_region |REGION}}} --format='value(address)')
  1. cloud VPC 上为 IPsec 创建转发规则。您需要创建双向的转发规则。

转发来自 cloud-gw1 的封装安全载荷 (ESP) 协议:

gcloud compute forwarding-rules create cloud-1-fr-esp --ip-protocol ESP \ --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}

转发来自 cloud-gw1 的 UDP:500 流量:

gcloud compute forwarding-rules create cloud-1-fr-udp500 --ip-protocol UDP \ --ports 500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}

转发来自 cloud-gw1 的 UDP:4500 流量:

gcloud compute forwarding-rules create cloud-fr-1-udp4500 --ip-protocol UDP \ --ports 4500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
  1. 使用相同的方法,为 on-prem VPC 的 IPsec 隧道创建防火墙转发规则。此步骤允许 IPsec 隧道穿过防火墙:

转发来自 on-prem-gw1 的 ESP 协议:

gcloud compute forwarding-rules create on-prem-fr-esp --ip-protocol ESP \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}

转发 UDP:500 流量,用于从 on-prem-gw1 建立 IPsec 隧道:

gcloud compute forwarding-rules create on-prem-fr-udp500 --ip-protocol UDP --ports 500 \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}

转发 UDP:4500 流量,用于传输来自 on-prem-gw1 的加密流量:

gcloud compute forwarding-rules create on-prem-fr-udp4500 --ip-protocol UDP --ports 4500 \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}} 创建两个 VPN 网关和必要的转发规则。

通常,您需要生成一个密钥,以便在下一步中创建并验证 on-prem-tunnel1 隧道和 cloud-tunnel1 隧道。如需详细了解如何创建和安全存储密钥,请参阅 Secret Manager 概念概览指南。在本例中,只需使用字符串“sharedsecret”。

为本地网络创建隧道 on-prem-tunnel1,为云端网络创建隧道 cloud-tunnel1。每个网络都必须有一个 VPN 网关,并且密钥必须匹配。在以下两个命令中,您需要在生产场景中将 [MY_SECRET] 替换为您生成的密钥。在本例中,请将其替换为“sharedsecret”

  1. 创建从 on-premcloud 的 VPN 隧道:
gcloud compute vpn-tunnels create on-prem-tunnel1 --peer-address $cloud_gw1_ip \ --target-vpn-gateway on-prem-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \ --remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region |REGION}}}
  1. 创建从 cloud 到 on-prem 的 VPN 隧道:
gcloud compute vpn-tunnels create cloud-tunnel1 --peer-address $on_prem_gw_ip \ --target-vpn-gateway cloud-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \ --remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region_2 | REGION2}}}

现在您已经创建了网关并建立了隧道,接着您需要添加从子网通过两个隧道的路由。

  1. 通过隧道将来自 on-prem VPC 的流量路由到 cloud 10.0.1.0/24 范围:
gcloud compute routes create on-prem-route1 --destination-range 10.0.1.0/24 \ --network on-prem --next-hop-vpn-tunnel on-prem-tunnel1 \ --next-hop-vpn-tunnel-region {{{project_0.default_region |REGION}}}
  1. 通过隧道将来自 cloud VPC 的流量路由到 on-prem 192.168.1.0/24 范围:
gcloud compute routes create cloud-route1 --destination-range 192.168.1.0/24 \ --network cloud --next-hop-vpn-tunnel cloud-tunnel1 --next-hop-vpn-tunnel-region {{{project_0.default_region_2 | REGION2}}} 创建两个 VPN 隧道。

任务 5. 测试 VPN 吞吐量

此时,您已在本地 VPC 和云 VPC 之间建立了安全通道。如需测试吞吐量,可以使用 iperf,这是一种用于网络负载测试的开源工具。为了进行测试,您需要在每个环境中部署一个虚拟机,一个用于发送流量,另一个用于接收流量。接下来,您将创建这些虚拟机。

单 VPN 负载测试

为 cloud VPC 创建一个名为 cloud-loadtest 的虚拟机。此示例使用 Debian Linux 映像作为操作系统。

注意:如果您现在已有项目,可省略此步骤并使用现有资源。虚拟机的带宽为 2 Gbps * vCPU,因此您最少需要 4 个 vCPU。
  1. 运行以下命令:
gcloud compute instances create "cloud-loadtest" --zone {{{project_0.default_zone_2 |ZONE2}}} \ --machine-type "e2-standard-4" --subnet "cloud-east" \ --image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \ --boot-disk-type "pd-standard" --boot-disk-device-name "cloud-loadtest"
  1. on-prem VPC 创建名为 on-prem-loadtest 的虚拟机。此示例使用与 cloud VPC 中相同的 Debian 映像。如果您已有资源,请忽略此步骤。

运行以下命令:

gcloud compute instances create "on-prem-loadtest" --zone {{{project_0.default_zone |ZONE}}} \ --machine-type "e2-standard-4" --subnet "on-prem-central" \ --image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \ --boot-disk-type "pd-standard" --boot-disk-device-name "on-prem-loadtest"
  1. 使用控制台或命令行通过 SSH 连接到每个虚拟机,并使用以下命令行安装 iperf
sudo apt-get install iperf
  1. on-prem-loadtest 虚拟机上,运行以下命令:
iperf -s -i 5

您已在虚拟机上创建了一个每 5 秒报告其状态一次的 iperf 服务器。

  1. cloud-loadtest 虚拟机上,运行以下命令:
iperf -c 192.168.1.2 -P 20 -x C

此命令会创建一个包含 20 个流的 iperf 客户端,它将在 10 秒的测试后报告吞吐量值。

创建两个虚拟机并通过 SSH 安装 iperf。

排查可能遇到的问题

注意:实验步骤不包括该部分。
  1. 在为本地网络创建隧道时,如果忘记将 [MY_SECRET] 替换为“sharedsecret”,

您可以使用以下命令删除创建的 VPN 隧道:

gcloud compute vpn-tunnels delete [tunnel-name] --region [region]
  • 将 [tunnel-name] 替换为隧道的名称。
  • 将 [region] 替换为创建隧道时指定的区域。
  1. 如果您在“单 VPN 负载测试”部分遇到问题:
  • 确保您在两个虚拟机上都安装了 iperf。

  • 如果出现“连接遭拒”错误,请验证以下内容:

    • 已为创建的网络添加防火墙规则 (tcp:5001)
    • 服务器是否在 on-prem-loadtest 上正常运行
    • 是否尝试通过 cloud-loadtest 连接到服务器
  1. 如果需要查看在控制台中创建的转发规则:
  • 导航菜单中,前往“网络”部分。
  • 点击 Network Connectivity > VPN
  • 点击 Cloud VPN 网关,查看 Cloud VPN 网关详情页面。

恭喜!

在本实验中,您在两个模拟网络(云 VPC 和本地 VPC)之间构建了高吞吐量 VPN。您学习了如何创建自定义 VPC、配置 VPN 网关、建立安全的 IPsec 隧道,以及通过这些隧道路由流量。最后,您使用 iperf 测试了 VPN 的吞吐量,以验证其性能。

后续步骤

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

本手册的最后更新时间:2025 年 3 月 30 日

本实验的最后测试时间:2025 年 2 月 25 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。