创建并验证巨型帧 MTU 网络
本页面将指导您创建虚拟私有云 (VPC) 网络和一对虚拟机以进行测试。本教程假定您熟悉网络 MTU。
创建自动模式 VPC 网络
控制台
在 Google Cloud 控制台中,进入 VPC 网络页面。
在项目下拉菜单中选择一个项目。
点击创建 VPC 网络。
输入网络的名称。
为子网创建模式选择自动。
将最大传输单元 (MTU) 字段设置为
8896
。点击创建。
创建防火墙规则
控制台
在 Google Cloud 控制台中,转到防火墙页面。
点击创建防火墙规则。
输入防火墙规则的名称。
该名称在项目中必须是唯一的。在网络下拉菜单中,指定您创建的网络的名称。
在目标下拉菜单中,选择网络中的所有实例。
从来源过滤条件下拉菜单中,选择 IPv4 范围。
在该字段中输入 10.128.0.0/16。
在协议和端口中,选择指定的协议和端口。
选中 tcp 复选框,并在字段中输入 tcp。
选中其他协议复选框,然后在字段中输入 icmp。
点击创建。
创建虚拟机
本部分介绍了如何创建两个虚拟机实例以进行测试。
控制台
执行这些步骤两次,以在同一可用区中获取两个虚拟机。
在 Google Cloud 控制台中,前往虚拟机实例页面。
点击创建实例。
为第一个虚拟机指定名称。
点击网络、磁盘、安全、管理、单租户。
点击网络。
在网络接口中,点击默认值 (10.128.0.0/20)。
在网络下拉菜单中,选择您创建的网络。
使用 SSH 连接到虚拟机实例
控制台
在 Google Cloud 控制台中,转到虚拟机实例页面。
在第一个实例的连接列中,点击 SSH。
在第二个实例的连接列中,点击 SSH。
验证 MTU
在第一个虚拟机的终端中,运行以下命令:
/sbin/ifconfig | grep mtu
报告的 MTU 应为
8896
。ens4: flags=4163
mtu 8896 lo: flags=73 mtu 65536 在第二个虚拟机的终端中,安装
tcpdump
:sudo apt-get install tcpdump --yes
在第二个虚拟机的终端中,启动
tcpdump
。将 FIRST_VM_NAME 替换为第一个虚拟机的名称。sudo tcpdump host FIRST_VM_NAME -v
在第一个虚拟机的终端中,对第二个虚拟机执行 ping 操作。ping 命令必须指定比网络 MTU 小 28 字节的数据包大小。将 SECOND_VM_NAME 替换为第二个虚拟机的名称。
ping SECOND_VM_NAME -c 10 -M do -s 8868
检查您的第二个虚拟机。您应该会看到类似以下所示的内容:
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。
在第二个虚拟机上,按
Ctrl-c
以停止tcpdump
。完成测试后,请按以下顺序删除资源:
- 防火墙规则和虚拟机实例
- VPC 网络
后续步骤
- 详细了解 MTU。
- 创建具有指定 MTU 的 VPC 网络。