4. 链路质量探测与实时监测

SD-WAN选路的前提是“知道每条链路此刻好不好”。如果控制器只依赖接口UP/DOWN或静态带宽,就无法在丢包突增、时延抖动或ISP绕行时及时切换。链路质量探测要解决三个问题:探测什么指标(时延、抖动、丢包、带宽、可用性)、用什么机制探测(BFD、IP SLA、TWAMP、主动/被动监测)、以多大频率探测(精度与开销的权衡)。

一、机制定位:从快速故障检测到精细质量测量

BFD(Bidirectional Forwarding Detection)是轻量级双向转发检测,通常以UDP 3784/4784封装,在毫秒级发送短小探测包,用于快速判断路径是否“活着”。它擅长故障检测,但本身不直接给出精确时延和抖动,除非扩展STAMP。IP SLA是Cisco体系中的主动探测框架,可通过ICMP Echo、UDP Jitter、TCP Connect等操作测量RTT、抖动、丢包和连通性,适合作为SD-WAN的SLA探针。TWAMP(Two-Way Active Measurement Protocol)是标准化的双向主动测量协议,分为控制连接和测试会话,能提供更规范的双向时延、抖动和丢包统计,常用于跨厂商环境。被动监测则不注入额外探测包,而是通过NetFlow/IPFIX、接口计数器、应用响应时间或DPI数据推断质量,开销低但采样粒度受流量分布影响。

链路质量探测机制与指标采集链路 探测机制 BFD 毫秒级故障检测 · UDP 3784 IP SLA ICMP/UDP Jitter · RTT/丢包 TWAMP 标准双向测量 · 控制+测试 被动监测 IPFIX/NetFlow · 零注入开销 主动探测 合成流量 · 可控频率 探测参数 发送间隔 100ms ~ 5s 检测倍数 ×3 ~ ×5 探测包大小 64 ~ 512 Byte DSCP标记 EF / AF41 超时阈值 RTT × 2 或固定值 开销 = 频率 × 包长 × 链路数 质量指标采集与可视化 时延 RTT 均值 / P95 / P99 单位 ms 抖动 Jitter 相邻RTT差值 单位 ms 丢包率 (发送-接收)/发送 单位 % 可用性 探测成功比例 单位 % 可视化呈现 时序曲线 · 热力图 · 拓扑着色 · SLA仪表盘 阈值告警 · 历史对比 · 链路排名 选路决策输入 SLA满足 → 保持;不满足 → 切换/负载均衡 结合带宽、成本、优先级综合评分 反馈至SD-WAN控制器策略引擎

二、探测频率与开销的权衡

探测频率越高,故障发现越快,但探测包本身会占用带宽、消耗CPU,并可能被误判为攻击流量。以BFD为例,若发送间隔为100ms、检测倍数为3,则约300ms未收到回应即判定故障;若间隔改为1s、倍数3,则需3s。对于语音和视频,通常要求故障切换在200ms~500ms内完成,因此BFD间隔常设为50~150ms。但若在100条链路上同时以100ms发送64字节BFD包,每条链路每秒约10个包、640字节,100条链路合计约64KB/s,带宽开销可忽略,但设备CPU和会话表压力会上升。

IP SLA的UDP Jitter操作默认每60秒发送一组探测,每组包含若干包,用于计算抖动。若将频率提高到每10秒一次,虽然能更快发现质量劣化,但探测流量和控制器采集频率同步增加。实际部署中,建议对关键链路采用“BFD快速检测 + IP SLA分钟级质量采样”的组合:BFD负责秒级故障切换,IP SLA负责SLA趋势和选路评分。TWAMP则适合对测量精度要求高、且需要跨厂商互操作的场景,其控制连接建立后,测试会话可按需启动,频率可配置为1~30秒。

经验参考:BFD间隔50~150ms用于实时业务链路;IP SLA间隔30~60s用于质量趋势;TWAMP间隔1~10s用于精细SLA验证。所有频率需结合设备规格和链路数量做容量核算。

三、质量指标采集与可视化

探测产生的原始数据需要经过采集、聚合、存储和展示。以IP SLA为例,设备端通过show ip sla statistics可查看最新RTT、丢包和抖动;SD-WAN控制器通常通过NETCONF/gRPC或SNMP定期拉取,写入时序数据库(如Prometheus、InfluxDB),再以Grafana或内置仪表盘展示。关键指标包括:RTT均值、P95/P99、抖动、丢包率、可用性和MOS估值。可视化时,建议按链路维度绘制时序曲线,并用红/黄/绿着色表示SLA状态。

# 示例:IP SLA UDP Jitter 配置片段(Cisco IOS-XE)
ip sla 100
 udp-jitter 10.10.10.2 16384 source-ip 10.10.10.1 num-packets 20 interval 20
 frequency 30
ip sla schedule 100 life forever start-time now

# 查看统计
show ip sla statistics 100
# 输出关注:RTT Min/Avg/Max、Jitter、Packet Loss

被动监测方面,NetFlow/IPFIX可提供流级字节数、包数和时间戳,但无法直接给出单向时延。若结合TCP时间戳或应用层响应时间,可估算部分质量指标。被动监测的优势是零探测开销,适合高带宽链路或探测受限环境;劣势是当流量稀疏时,采样不足会导致指标失真。因此,实际SD-WAN常采用“主动探测为主、被动监测为辅”的混合模式。

四、一个可落地的监测策略示例

假设某企业有两条互联网链路:MPLS主链路和5G备用链路。策略如下:对MPLS链路启用BFD,间隔100ms、倍数3,用于快速切换;同时启用IP SLA UDP Jitter,每30秒探测一次,采集RTT、抖动和丢包;对5G链路启用TWAMP,每5秒测量一次,因为5G质量波动较大。控制器每10秒聚合一次数据,若MPLS的丢包率连续3个周期超过1%或RTT超过150ms,则将语音流量切换至5G;若5G的抖动超过30ms,则仅切换非实时流量。所有指标在仪表盘上以链路为行、时间为列展示,并保留7天历史数据用于复盘。

注意:BFD和IP SLA探测包应标记DSCP EF或AF41,确保在网络拥塞时仍能获得优先转发,否则探测结果可能因探测包被丢弃而误判链路故障。

总结来看,链路质量探测不是单一机制的选择,而是“快速故障检测 + 精细质量测量 + 低开销被动补充”的组合。BFD解决“通不通”,IP SLA和TWAMP解决“好不好”,被动监测解决“省不省”。频率设置要在业务切换要求和设备开销之间找到平衡点,采集到的指标必须经过聚合和可视化,才能真正驱动SD-WAN的智能选路。