3、测试环境搭建:硬件选型(服务器、网卡、交换机)、软件选型(iPerf3、Ping、MTR、Traceroute)、网络拓扑设计。
好,咱们进入正题。测试环境搭建,说白了就是给这场「专线大考」准备好考场和监考老师。硬件选错了,软件配歪了,拓扑画错了,那测出来的数据就是一堆废纸。我见过太多人拿着 iPerf3 跑了个 9.8Gbps 就欢呼雀跃,结果发现是交换机端口限速没关——嗯,这种坑我踩过,所以今天咱们一步到位。
3.1 硬件选型:别让设备拖后腿
硬件选型有个核心原则:测试设备的性能,必须高于被测专线的极限。你想想看,用一台百兆网卡的服务器去测千兆专线,那瓶颈到底在专线还是服务器?
3.1.1 服务器选型
我个人习惯用两台配置完全相同的服务器,分别作为客户端和服务端。为什么?因为对称配置能消除「硬件差异」带来的干扰。
- CPU:至少 4 核,主频 2.5GHz 以上。iPerf3 是单线程应用,单核性能很重要。我建议用 Intel Xeon E-2200 系列或 AMD EPYC 7002 系列。
- 内存:8GB 起步。其实 iPerf3 不怎么吃内存,但操作系统和后台监控工具会占一些。
- 硬盘:SSD 是必须的。如果你要跑长时间吞吐测试,日志文件会写得很频繁。机械硬盘的 IO 延迟可能会干扰测试结果。
- 操作系统:Ubuntu 20.04 LTS 或 CentOS 7.9。我个人更倾向 Ubuntu,因为包管理方便,内核版本也新。
3.1.2 网卡选型
网卡是测试的「咽喉」。我建议用 Intel X710-DA2 或 Mellanox ConnectX-4 Lx。这两款都是万兆网卡,驱动成熟,兼容性好。
| 网卡型号 | 接口类型 | 速率 | 适用场景 |
|---|---|---|---|
| Intel X710-DA2 | SFP+ | 10Gbps | 通用万兆测试 |
| Mellanox ConnectX-4 Lx | SFP28 | 25Gbps | 25G 专线测试 |
| Broadcom BCM57414 | SFP28 | 25Gbps | 兼容性较好 |
这里有个坑:网卡固件版本。我曾经遇到过一块 Intel X710,跑 iPerf3 时总是丢包 0.1%,换了固件版本就好了。所以拿到网卡后,先去官网更新到最新固件。
3.1.3 交换机选型
交换机的作用是「透明转发」。你肯定不希望它成为瓶颈。我建议用 Cisco Nexus 3000 系列 或 Mellanox SN2010。这两款都是数据中心级交换机,延迟低、缓存大。
- 端口速率:至少 10Gbps,最好 25Gbps。
- 缓存:至少 4MB。缓存小的交换机在突发流量下会丢包。
- 功能:关闭流控(Flow Control)、关闭节能以太网(EEE)。这些功能会干扰测试结果。
3.2 软件选型:工具要趁手
软件选型其实很简单:用最通用的工具,做最专业的测试。下面这四款工具,是我在项目中反复验证过的。
3.2.1 iPerf3:吞吐量测试的「金标准」
iPerf3 是专线测试的核心工具。它能测 TCP 和 UDP 的吞吐量、丢包率、延迟抖动。我个人习惯用 iperf3 -c server_ip -t 30 -P 4 来跑 30 秒的并行流测试。
# 服务端启动
iperf3 -s -p 5201
# 客户端测试(TCP)
iperf3 -c 192.168.1.100 -p 5201 -t 30 -P 4
# 客户端测试(UDP,指定带宽)
iperf3 -c 192.168.1.100 -p 5201 -u -b 1000M -t 30
为什么要用 -P 4?因为 iPerf3 默认是单线程,单线程很难打满万兆带宽。4 个并行流基本能压到 9.5Gbps 以上。
3.2.2 Ping:最基础的连通性检查
Ping 虽然简单,但能快速发现大问题。我建议用 ping -c 100 -s 1472 来测 100 个包,每个包 1472 字节(接近 MTU 上限)。
ping -c 100 -s 1472 192.168.1.100
如果丢包率超过 0.1%,那专线肯定有问题。我曾经用 Ping 发现过运营商光模块故障——丢包率 5%,换了模块就好了。
3.2.3 MTR:路径质量分析利器
MTR 是 Ping 和 Traceroute 的结合体。它能逐跳显示延迟和丢包率。我个人习惯用 mtr -r -c 100 来生成报告。
mtr -r -c 100 192.168.1.100
输出结果中,重点关注 Loss% 和 Avg 两列。如果某一跳的丢包率突然升高,那可能就是瓶颈所在。
3.2.4 Traceroute:路径追踪
Traceroute 能显示数据包经过的每一跳。我建议用 traceroute -n -q 3 来避免 DNS 解析干扰。
traceroute -n -q 3 192.168.1.100
注意:有些运营商节点会屏蔽 ICMP 包,导致 Traceroute 显示 * * *。这不一定代表故障,可能是节点配置了防火墙。
3.3 网络拓扑设计:画好图,少踩坑
拓扑设计是测试环境的「骨架」。我建议采用 点对点直连拓扑,避免中间设备引入干扰。
下面是我用 SVG 画的一个标准测试拓扑图:
这个拓扑图的核心逻辑是:服务器 A → 网卡 A → 交换机 → 网卡 B → 服务器 B。交换机只做二层转发,不开启任何优化功能。
如果你要测的是 跨运营商专线,拓扑会复杂一些。我建议在两端各加一台路由器,模拟真实网络环境。但记住:路由器也要关闭 NAT、QoS 等功能。
好了,硬件选好了,软件装上了,拓扑也画完了。接下来就是动手测试了。记住一句话:测试环境越简单,结果越可靠。别搞花里胡哨的,直连就是王道。