背景:CN2 GIA 是中国电信的高等级专线互联网络,面向跨境低时延业务(比如游戏、实时音视频、金融)常被优先选用。
目标:本指南目标是给出可复制的测试步骤(从探测到一向延迟测量)、判断标准(丢包、抖动、单向延时)以及优化动作(BGP/MTU/TCP/CDN/链路选择)。
节点准备:准备至少两个测试端:A(源,位于内地或境外需要走 CN2 GIA 的站点)和 B(目的,台湾机房或 ISP)。保证两端均可 SSH 并有管理员权限。
工具清单:安装并确认:ping, traceroute (或 tcptraceroute), mtr, iperf3, hping3, tc(Linux 网络队列),ntpdate/chrony, twamp/owamp 客户端(如果需要一向延迟)。
测点选择:选择台湾不同运营商和区域的 IP(如台北/高雄、中华电信/亚太电信),优先使用提供的 iperf3 公测服务器或在台湾自建一台临时云主机做服务端。
Ping 检查:在源端执行:ping -c 50 -s 1200 <目标IP>,观察平均时延、最小/最大、抖动(通过计算 stddev)。注:-s 1200 用于模拟大包,测试 ICMP 分片问题。
IPv4/IPv6 对比:分别测试 IPv4 与 IPv6(若可用),命令相同。若延迟差异明显,说明运营商路由或优先级不同。
丢包与重复:若 ping 出现丢包,记录丢包率并与 mtr 交叉验证,丢包常发生在中间某一跳则为链路或路由端问题。
TCP/ICMP 路由差异:使用 tcptraceroute 或 traceroute -T -p 443 <目标>(或者 traceroute -I)判断 ICMP 与 TCP 的路径是否一致。
MTR 长跑:mtr -rwzbc100 <目标> 会输出每跳丢包和延迟分布,运行 5-10 分钟观察波动与特定跳点的丢包。
分析 AS 与地理:将 traceroute 的 IP 对照 whois/ASN 信息(可用 ipinfo.io 或 bgp.he.net),确认是否进入 CN2 网络(通常会出现“ctc”或“ChinaTelecom CN2”相关 AS 名称)。
iperf3 基本:在台湾服务器上启动:iperf3 -s,然后从源端测试:iperf3 -c <台服IP> -P 4 -t 60 -R(-R 表示服务器发回流量,测试反向路径)。观察吞吐、重传(retransmits)数量。
并发与队列:通过改变 -P 并发数和 -b 限速,检测链路拥塞点。若吞吐达不到预期且出现高重传,可能为路径 MTU 或中间拥塞。
SYN/ACK 延迟:用 hping3 -S -p 443 -c 100 <目标> 测量 TCP 握手延迟;与 ICMP 比较可发现防火墙或策略导致的差异。
必要性:单向时延(OWD)能更准确反映上行/下行差异,但需要两端时钟同步。
时钟同步:在两端启用 chrony 或 ntp,校准至同一 NTP 服务器;验证时间偏差小于 1 ms。若无法做到,使用 TWAMP/OWAMP 协议工具做测量(客户端/服务器模式)。
TWAMP 测试:在台湾端启动 TWAMP 服务器,在源端运行 twamp-light 客户端,记录上行/下行 OWD 和抖动,连续运行 10 分钟以上以取均值。
BGP 本地优先级调整:与承载 CN2 的上游或带路 ISP 协调,通过设置 local-preference 或使用 ISP 指定的 community(例如要求走 CN2 GIA)来偏好 CN2 路径。
AS-Path 与 Community:如发现流量未走 CN2,可尝试 AS-Path prepending(减少优先)或与 ISP 签订特定 community 策略;记录每次变更并重复 traceroute 验证。
多出口/策略路由:配置基于源/目的的策略路由(PBR),对延迟敏感业务指定出口;或者采用 BGP 流量工程(community + MED)实现精细控制。
MTU 检测:使用 ping -M do -s
TCP 参数:在主机侧启用 BBR:sysctl -w net.ipv4.tcp_congestion_control=bbr,调整 net.ipv4.tcp_mtu_probing=1,必要时增大 send/recv buffer(net.core.rmem_max, wmem_max)。
队列管理:启用 fq_codel 或 cake:tc qdisc replace dev eth0 root cake bandwidth 100mbit 等,减少队列膨胀带来的时延。
指标采集:在测试端部署 node_exporter + blackbox_exporter,配置 probe 去定期 ping/traceroute/iperf3,采集 RTT、丢包、抖动与带宽利用率。
可视化与告警:在 Grafana 建面板展示 5m/1h/24h 的 RTT 与丢包趋势,Prometheus Alertmanager 配置报警规则(例如丢包率>1% 持续 5 分钟触发)。
自动化流程:当报警触发后自动跑一套诊断脚本(mtr 60s 抓包、iperf3 一次),并将结果通过邮件/Slack 发给运维以便快速定位。
问题:如何确认当前流量走的是 CN2 GIA 路径?
回答:使用 traceroute/tcptraceroute 观察中间跳与 AS 名称,若出现 ChinaTelecom/CN2 或带有“CN2 GIA”字样的节点,同时用 whois/bgptable 查 ASN(如 AS4134 下属 CN2 路由信息),且从承载商提供的 Route Server/Looking Glass 可见相同路径,即可确认是走 CN2 GIA。同时比较延迟和跨境跳数,CN2 通常跳数更少、时延更稳定。
问题:间歇性高延迟与丢包如何快速定位原因?
回答:第一步:用 mtr 连续抓 5-10 分钟定位哪一跳出现丢包/高延迟;第二步:在该跃点对应的 ASN/运营商处查询是否有已知维护;第三步:做 iperf3 压力测试检验是否为链路拥塞;第四步:验证 MTU/fragment 问题(ping -M do)和是否为主机端队列造成(查看 ifconfig/tc stats)。若问题集中在上游某跳,联系该 ISP 并提供 traceroute/mtr 输出作为证据。
问题:怎样把 CN2 GIA 的测试流程自动化并长期运行?
回答:搭建监控架构:在多个源点配置 blackbox_exporter probes(ICMP/TCP/HTTP/iperf3 脚本),Prometheus 定时抓取并存储指标。设置 Alertmanager 的阈值告警(如 RTT > 80ms 持续 10 分钟、丢包 > 1%)。定期(每日/每小时)触发诊断脚本(mtr+iperf3),并把结果上传到日志存储(Elasticsearch/S3),用于后续分析与长期趋势判断。建议同时保留原始 traceroute 与 pcap(必要时)以便与 ISP 沟通。