正在加载…
未找到任何结果。

在 Google Cloud 控制台中运用您的技能

09

设置 Google Cloud 网络

访问 700 多个实验和课程

测试虚拟机之间的网络延迟时间

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

GSP161

Google Cloud 自学实验的徽标

概览

有了虚拟专用网 (VPN),您的虚拟机 (VM) 和子网便不再受地理位置的限制!支持多区域和多可用区的 VPN,可以为业务遍布全球的组织提供具备高可用性、可伸缩性和安全性的网络解决方案。本实验主要测试网络连接和速度,旨在演示以下方面:

  • 当某个区域或可用区出现服务故障或中断时,流量可无缝路由至无故障的其他区域或可用区,以确保连接持续性。
  • 如果端点位置靠近用户所在区域,网络路径会缩短,以减少延迟并提升整体性能。
  • 多区域 VPN 可以根据网络状况和用户位置来智能路由流量,以确保使用最快、最高效的路径。

在本实验中,您将使用 gcloud CLI 向现有网络添加虚拟机,然后测试各虚拟机之间的连接性和延迟时间。

前提条件

虽然并非必需,但要了解如何创建网络并应用防火墙规则,建议先完成创建自定义网络并应用防火墙规则实验。本实验假定您已了解这些概念。

学习内容

  • 将虚拟机添加到现有 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”图标

如果您连接成功,即表示您已通过身份验证,且当前项目会被设为您的 PROJECT_ID 环境变量所指的项目。输出内容中有一行说明了此会话的 PROJECT_ID

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

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

  2. 现在,输出的内容应如下所示:

输出:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出

[core] project = <project_ID>

输出示例

[core] project = qwiklabs-gcp-44776a13dea667a6 Note: For full documentation of gcloud, in Google Cloud, refer to the gcloud CLI overview guide.

设置区域和可用区

某些 Compute Engine 资源位于区域和可用区内。区域是指某个地理位置,您可以在其中运行自己的资源。每个区域包含一个或多个可用区。

在 Cloud Shell 中运行以下 gcloud 命令,设置实验的默认区域和可用区:

gcloud config set compute/zone "{{{project_0.default_zone | Zone}}}" export ZONE=$(gcloud config get compute/zone) gcloud config set compute/region "{{{project_0.default_region | Region}}}" export REGION=$(gcloud config get compute/region)

点击左侧菜单中的 VPC 网络查看您的整个网络。taw-custom-network 有三个子网且应用了防火墙规则。

查看网络和子网的设置。

接下来,我们将在每个子网中创建一个虚拟机,并确保您能连接到这些虚拟机。

任务 1. 连接虚拟机并检查延迟时间

在此任务中,您将在每个可用区中创建一个虚拟机。每个虚拟机都将使用防火墙规则允许网络流量通过所需的网络标记。

  1. 运行以下命令,在 subnet- 子网中创建一个名为 us-test-01 的实例:
gcloud compute instances create us-test-01 \ --subnet subnet-{{{project_0.default_region | Region}}} \ --zone {{{project_0.default_zone | ZONE}}} \ --machine-type e2-standard-2 \ --tags ssh,http,rules

务必记下外部 IP,稍后我们会在实验中用到它。

输出:

Created [https://www.googleapis.com/compute/v1/projects/cloud-network-module-101/zones/{{{project_0.default_zone | ZONE}}}/instances/us-test-01]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS us-test-01 {{{project_0.default_zone | ZONE}}} e2-standard-2 10.0.0.2 104.198.230.22 RUNNING
  1. 接下来,在相关子网中创建 us-test-02us-test-03 虚拟机:
gcloud compute instances create us-test-02 \ --subnet subnet-{{{project_0.default_region_2 | REGION}}} \ --zone {{{project_0.default_zone_2 | ZONE}}} \ --machine-type e2-standard-2 \ --tags ssh,http,rules gcloud compute instances create us-test-03 \ --subnet subnet-{{{project_0.default_region_3 | REGION}}} \ --zone {{{project_0.default_zone_3 | ZONE}}} \ --machine-type e2-standard-2 \ --tags ssh,http,rules

点击检查我的进度,验证已完成以下目标:

在指定可用区内创建三个实例,用于 traceroute 和性能测试目的。

验证您可以连接到所创建的虚拟机

接下来,进行一些练习来测试是否可以连接到您创建的虚拟机。使用 ping 来测试主机的可达性,并测量从来源主机向目标计算机发送消息的往返时间。

  1. 返回控制台并找到 Compute Engine

  2. 点击 us-test-01 实例对应的 SSH 按钮。这将在新窗口中打开与该实例的 SSH 连接。

  3. us-test-01 的 SSH 窗口中,输入以下命令,对 us-test-02 使用 ICMP(互联网控制消息协议)回显(在命令中添加该虚拟机的外部 IP 地址):

ping -c 3 <us-test-02-external-ip-address>

您可以在 Compute Engine 浏览器标签页的“外部 IP”字段下找到虚拟机的外部 IP。

注意:您的 IP 地址与图片所示不同。
  1. 运行以下命令,对 us-test-03 使用 ICMP 回显(在命令中添加该虚拟机的外部 IP 地址):
ping -c 3 <us-test-03 的外部 IP 地址>

输出示例

PING 35.187.149.67 (35.187.149.67) 56(84) bytes of data. 64 bytes from 35.187.149.67: icmp_seq=1 ttl=76 time=152 ms 64 bytes from 35.187.149.67: icmp_seq=2 ttl=76 time=152 ms 64 bytes from 35.187.149.67: icmp_seq=3 ttl=76 time=152 ms
  1. 接下来,验证 us-test-02us-test-03 实例也能通过 SSH 连接到其他实例。尝试对 us-test-01 使用 ICMP 回显。

使用 ping 测量延迟时间

延迟时间是指数据包在来源和目标之间往返所需的时间,通常以毫秒 (ms) 来衡量。

  • 使用 ping 来测量这些区域之间的延迟时间 - 请打开 us-test-01 的 SSH 窗口并运行以下命令:
ping -c 3 us-test-02.{{{project_0.default_zone_2 | ZONE}}}

命令输出

PING us-test-02.{{{project_0.default_zone_2 | ZONE}}}.c.cloud-network-module-101.internal (10.2.0.2) 56(84) bytes of data. 64 bytes from us-test-02.{{{project_0.default_zone_2 | ZONE}}}.c.cloud-network-module-101.internal (10.2.0.2): icmp_seq=1 ttl=64 time=105 ms 64 bytes from us-test-02.{{{project_0.default_zone_2 | ZONE}}}.c.cloud-network-module-101.internal (10.2.0.2): icmp_seq=2 ttl=64 time=104 ms 64 bytes from us-test-02.{{{project_0.default_zone_2 | ZONE}}}.c.cloud-network-module-101.internal (10.2.0.2): icmp_seq=3 ttl=64 time=104 ms

返回的延迟时间是往返时间 (RTT),即数据包从 us-test-01 传输到 us-test-02 所需的时间。

为测试连接性,ping 会使用 ICMP 回显请求和回显回复消息

注意:要留意的事项

各区域之间的延迟时间是多少?从“us-test-02”到“us-test-03”的连接有什么特别之处?
注意:内部 DNS:如何向虚拟机实例提供 DNS?

每个实例都有一个元数据服务器,此服务器也用作该实例的 DNS 解析器。DNS 查找是按实例名称执行的。元数据服务器本身会存储本地网络的所有 DNS 信息,并查询 Google 的公共 DNS 服务器以获取本地网络之外的任何地址。

实例的内部完全限定域名 (FQDN) 的格式为 hostName.[ZONE].c.[PROJECT_ID].internal。

您始终可以使用此 FQDN 从一个实例连接到另一实例。如果您只想使用“主机名”等信息连接到实例,则需从 Compute Engine 随附的内部 DNS 解析器获取相应信息。

任务 2. Traceroute 和性能测试

Traceroute 是一款用于跟踪两台主机之间的路径的工具。Traceroute 是初步识别多种不同网络问题的好帮手。支持工程师或网络工程师在诊断网络问题时经常会使用 traceroute。

注意:功能

Traceroute 可显示主机之间的所有第 3 层(路由层)跃点。此功能通过向远程目的地发送多个数据包并增加 TTL(存留时间)值(从 1 开始)来实现。TTL 字段是 IP 数据包中的一个字段,通过每个路由器时都会减 1。如果 TTL 达到 0,数据包将被丢弃,并向发送方返回一条 ICMP 消息“已超出 TTL”。此方法用于防止路由循环;数据包不会无限循环下去,因为 TTL 字段最终会递减到 0。默认情况下,操作系统会将 TTL 值设置为较大的值(64、128、255 等),因此只有在异常情况下,TTL 值才会达到 0。

Traceroute 首先发送 TTL 值为 1 的数据包,然后发送 TTL 值为 2 的数据包,以此类推,使得这些数据包在路径中的第一个/第二个(以此类推)路由器处过期。这样,它便能获取返回的 ICMP TTL 超出消息的来源 IP/主机,以显示中间跃点的名称/IP。当 TTL 足够大时,数据包会到达目的地,而目的地也会作出响应。

发送的数据包类型取决于具体的实现。在 Linux 上,UDP 数据包会发送到更高的未使用端口。因此,最终目的地会返回“ICMP 端口无法访问”来作出响应。Windows 和 mtr 工具默认使用 ICMP 回显请求(例如 ping),因此最终目的地会返回 ICMP 回显回复。

尝试在一个虚拟机上设置 traceroute,看看它是如何工作的。

  1. 在此步骤中,请使用 us-test-01us-test-02 虚拟机,并通过 SSH 连接到这两个虚拟机。

  2. us-test-01 的 SSH 窗口中安装以下性能工具:

sudo apt-get update sudo apt-get -y install traceroute mtr tcpdump iperf whois host dnsutils siege
  1. 接下来,将 traceroutewww.icann.org 一起使用,看看会是什么效果:
traceroute www.icann.org

在输出结果中,每一行代表一个跃点。

  • 第一列:显示跃点数量。
  • 第二列:显示跃点的 IP 地址(或在可用的情况下显示主机名)。
  • 其余列:显示发送到该跃点的其他数据包的 RTT。
  1. 现在,更换目标和来源再试一下:

    • 同一区域或其他区域中的虚拟机(eu1-vm、asia1-vm、w2-vm)
    • www.wikipedia.org
    • www.adcash.com
    • bad.horse(如果增加 TTL 最大值,效果会更好,因此请使用 traceroute -m 255 bad.horse
    • 您能想到的任何其他目标或来源
  2. 要停止 traceroute,请在 SSH 窗口中按 Ctrl+c 并返回命令行。

注意:要留意的事项

您从不同的 traceroute 中发现了什么?
Traceroute 和性能测试。

任务 3. 使用 iperf 测试性能

iperf 可用于测量网络吞吐量和延迟时间。使用 iperf 测试两台主机之间的性能时,需要将一台主机配置为 iperf 服务器以接受连接。

注意:以下命令会在各区域之间传输千兆字节的流量,这需要支付互联网出站流量费用。使用这些命令时请注意这一点。如果您未使用列入许可名单的项目,或者不在免费试用期,可以跳过本部分,或者仅重点浏览一下。(费用预计不到 1 美元。)
  1. 通过 SSH 连接到 us-test-02 并安装性能工具:
sudo apt-get update sudo apt-get -y install traceroute mtr tcpdump iperf whois host dnsutils siege
  1. 通过 SSH 连接到 us-test-01 并运行以下命令:
iperf -s #run in server mode
  1. 通过 SSH 连接到 us-test-02 并运行此 iperf
iperf -c us-test-01.{{{project_0.default_zone | ZONE}}} #run in client mode

您将看到类似于以下内容的输出:

Client connecting to eu-vm, TCP port 5001 TCP window size: 45.0 KByte (default) [ 3] local 10.20.0.2 port 35923 connected with 10.30.0.2 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 298 MBytes 249 Mbits/sec
  1. us-test-01 上,完成后按 Ctrl + C 退出服务器端。

区域内的虚拟机之间

接下来,在与 us-test-01 不同的可用区中部署另一个实例 (us-test-04)。您会发现,在一个区域内,出站流量带宽上限限制为每个核心 2 Gbps

  1. 在 Cloud Shell 中,创建 us-test-04
gcloud compute instances create us-test-04 \ --subnet subnet-{{{project_0.default_region | REGION}}} \ --zone {{{project_0.default_zone | ZONE}}} \ --tags ssh,http
  1. 通过 SSH 连接到 us-test-04 并安装性能工具,如下所示:
sudo apt-get update sudo apt-get -y install traceroute mtr tcpdump iperf whois host dnsutils siege

区域之间所能达到的最大带宽要低得多,主要是由于存在 TCP 窗口大小和单一流性能限制。您可以使用其他参数(例如 UDP)增加主机之间的带宽。

  1. 通过 SSH 连接到 us-test-02 并运行以下命令:
iperf -s -u #iperf server side
  1. 通过 SSH 连接到 us-test-01 并运行以下命令:
iperf -c us-test-02.{{{project_0.default_zone_2 | ZONE}}} -u -b 2G #iperf client side - send 2 Gbits/s

这样应该能提高欧盟和美国之间的速度。您可以通过并行运行大量 TCP iperf 来进一步提高速度。我们来测试一下。

  1. us-test-01 的 SSH 窗口中,运行以下命令:
iperf -s
  1. us-test-02 的 SSH 窗口中,运行以下命令:
iperf -c us-test-01.{{{project_0.default_zone | ZONE}}} -P 20

该组合带宽应该非常接近可实现的最大带宽。

点击检查我的进度,验证已完成以下目标:

测试性能。
  1. 测试更多的组合。如果您笔记本电脑的操作系统为 Linux,您也可以在笔记本电脑上进行测试。(您还可以尝试 iperf3,它适用于许多操作系统,但这不在本实验的讨论范围内。)

如您所见,要达到最大带宽,仅运行单个 TCP 流(例如文件复制)是不够的,您需要并行运行多个 TCP 会话。原因在于 TCP 参数(例如窗口大小)和功能(例如缓慢启动)。

有关此主题以及所有其他 TCP/IP 主题的详细信息,请参阅 TCP/IP 图解

bbcp 等工具允许您通过并行传输和可配置的窗口大小,来尽快复制文件。

结束实验

完成实验后,请点击结束实验。您使用的账号和资源会从实验平台中移除。

系统会提示您为实验体验评分。请选择相应的评分星级,输入评论,然后点击提交

星级的含义如下:

  • 1 颗星 = 非常不满意
  • 2 颗星 = 不满意
  • 3 颗星 = 一般
  • 4 颗星 = 满意
  • 5 颗星 = 非常满意

如果您不想提供反馈,可以关闭该对话框。

如果要留言反馈、提出建议或做出更正,请使用支持标签页。

恭喜

您学习了如何使用 gcloud 在现有网络上构建虚拟机,并使用各种工具来测试网络的连接性和延迟时间。

Google Cloud 培训和认证

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

上次更新手册的时间:2024 年 8 月 23 日

上次测试实验的时间:2024 年 8 月 23 日

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

上一步 下一步

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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