创建并验证巨型帧 MTU 网络

本页面将指导您创建虚拟私有云 (VPC) 网络和一对虚拟机以进行测试。本教程假定您熟悉网络 MTU。

创建自动模式 VPC 网络

控制台

  1. 在 Google Cloud 控制台中,前往 VPC 网络页面。

    进入 VPC 网络页面

  2. 在项目下拉菜单中选择一个项目。

  3. 点击创建 VPC 网络。

  4. 输入网络的名称。

  5. 为子网创建模式选择自动。

  6. 设置最大传输单元 (MTU)。

    如需让虚拟机发送和接收巨型帧,虚拟机的虚拟 NIC 需要连接到 MTU 值等于或大于机器 MTU 的 VPC 网络。将 MTU 设置为虚拟机的最大可能值,例如 8896。如果您使用的是 GPU 机器,请参阅巨型帧和 GPU 机器。

  7. 点击创建。

创建防火墙规则

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 点击创建防火墙规则。

  3. 输入防火墙规则的名称。
    该名称在项目中必须是唯一的。

  4. 在网络下拉菜单中,指定您创建的网络的名称。

  5. 在目标下拉菜单中,选择网络中的所有实例。

  6. 从来源过滤条件下拉菜单中,选择 IPv4 范围。

  7. 在该字段中输入 10.128.0.0/16。

  8. 在协议和端口中,选择指定的协议和端口。

  9. 选中 tcp 复选框,并在字段中输入 22。

  10. 选中其他协议复选框,然后在字段中输入 icmp。

  11. 点击创建。

创建虚拟机

本部分介绍了如何创建两个虚拟机实例以进行测试。

控制台

执行这些步骤两次,以在同一可用区中获取两个虚拟机。

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 点击创建实例。

  3. 为第一个虚拟机指定名称。

  4. 点击网络、磁盘、安全、管理、单租户。

  5. 点击网络。

  6. 在网络接口中,点击默认值 (10.128.0.0/20)。

  7. 在网络下拉菜单中,选择您创建的网络。

使用 SSH 连接到虚拟机实例

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 在第一个实例的连接列中,点击 SSH。

  3. 在第二个实例的连接列中,点击 SSH。

验证 MTU

  1. 在第一个虚拟机的终端中,运行以下命令:

    /sbin/ifconfig | grep mtu
    

    报告的 MTU 应为 8896。

    ens4: flags=4163  mtu 8896
    lo: flags=73  mtu 65536
    

  2. 在第二个虚拟机的终端中,安装 tcpdump:

    sudo apt-get install tcpdump --yes
    

  3. 在第二个虚拟机的终端中,启动 tcpdump。将 FIRST_VM_NAME 替换为第一个虚拟机的名称。

    sudo tcpdump host FIRST_VM_NAME -v
    

  4. 在第一个虚拟机的终端中,对第二个虚拟机执行 ping 操作。ping 命令必须指定比网络 MTU 小 28 字节的数据包大小。将 SECOND_VM_NAME 替换为第二个虚拟机的名称。

    ping SECOND_VM_NAME -c 10 -M do -s 8868
    

  5. 检查您的第二个虚拟机。您应该会看到类似以下所示的内容:

    tcpdump: listening on ens4, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    19:43:57.116005 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 8896)
    FIRST_VM_NAME.c.PROJECT_ID.internal > SECOND_VM_NAME.c.PROJECT_ID.internal: ICMP echo request, id 5253, seq 1, length 8876
    19:43:57.116053 IP (tos 0x0, ttl 64, id 23961, offset 0, flags [none], proto ICMP (1), length 8896)
    SECOND_VM_NAME.c.PROJECT_ID.internal > FIRST_VM_NAME.c.PROJECT_ID.internal: ICMP echo reply, id 5253, seq 1, length 8876
    

    这些变量的含义如下:

    • FIRST_VM_NAME 是第一个虚拟机的名称。
    • SECOND_VM_NAME 是第二个虚拟机的名称。
    • PROJECT_ID 是包含虚拟机的项目的 ID。
  6. 在第二个虚拟机上,按 Ctrl-c 以停止 tcpdump。

  7. 完成测试后,请按以下顺序删除资源:

    1. 防火墙规则和虚拟机实例
    2. VPC 网络

后续步骤