第200篇:广域网链路质量监测:NQA 与 BFD
关键词
NQA、网络质量分析、BFD、双向转发检测、链路质量监测、SLA 保障、故障检测、联动机制
一、为什么需要链路质量监测
1.1 广域网链路的挑战
广域网(WAN)链路与局域网不同,存在各种质量问题:
局域网(LAN) 广域网(WAN)
─────────────── ─────────────────
低延迟(<1ms) 高延迟(10-500ms)
无抖动 抖动不可预测
丢包率≈0% 丢包率 0.1%-5%
带宽持续 带宽可能波动
故障少 链路故障常见(光纤被挖断等)
所以,广域网需要持续监测链路质量,以便:
1. 及时发现故障(秒级甚至毫秒级)
2. 量化链路质量指标(时延、抖动、丢包)
3. 联动路由协议切换(故障时绕行)
1.2 NQA 与 BFD 的定位
| 对比项 | NQA | BFD |
|---|---|---|
| 全称 | Network Quality Analysis | Bidirectional Forwarding Detection |
| 本质 | 主动探测、质量分析工具 | 快速故障检测协议 |
| 检测速度 | 秒级(1-60s) | 毫秒级(3.3ms-1s) |
| 检测内容 | 时延、抖动、丢包、吞吐 | UP/DOWN 状态 |
| 适用场景 | SLA 监控、性能基线 | 路由/FRR 联动 |
| 是否消耗带宽 | 定期发送探测报文 | 定期发送 Hello 报文 |
| 标准 | 厂商私有 + 部分 RFC | RFC 5880-5885 |
二、NQA 详解
2.1 NQA 的探测类型
NQA 支持多种探测类型:
NQA 探测类型 1. ICMP NQA ── ping 类,测时延和可达性 2. TCP NQA ── TCP 端口连通性 3. UDP NQA ── UDP 时延和抖动 4. UDP Jitter ── 专测抖动(会记录抖动值) 5. HTTP NQA ── HTTP 响应时间 6. DHCP NQA ── DHCP 服务器可用性 7. DNS NQA ── DNS 解析时延 8. LSP NQA ── MPLS LSP 连通性 9. SNMP NQA ── 查询设备指标
2.2 NQA 配置示例
# 基本 ICMP NQA(检测对端可达性)
nqa test-instance admin_icmp ISP_LINK_1
test-type icmp # ICMP 探测
destination-address ipv4 8.8.8.8 # 目标地址
source-address ipv4 10.0.0.1 # 源地址
source-port 2000
interval seconds 5 # 每 5 秒探测一次
timeout 2 # 超时 2 秒
probe-count 2 # 每次探测发 2 个包
frequency 30 # 每 30 秒一次完整测试
!
start now # 立即启动
2.3 UDP Jitter 监测
# UDP Jitter 探测(监测时延和抖动)
nqa test-instance admin_jitter WAN_LINK_1
test-type jitter # Jitter 探测
destination-address ipv4 10.0.1.2
source-address ipv4 10.0.0.1
source-port 3000
destination-port 3000
interval milliseconds 20 # 20ms 发包间隔
probe-count 10 # 每次 10 个包
frequency 60 # 每 60 秒测试一次
!
start now
# 查看 Jitter 结果
display nqa results test-instance admin_jitter WAN_LINK_1
NQA 测试结果:
最小时延: 5 ms
最大时延: 25 ms
平均时延: 12 ms
平均抖动: 3 ms
丢包率: 0.1%
SD 抖动: 2 ms ← 正向抖动(源到目标)
DS 抖动: 4 ms ← 反向抖动(目标到源)
2.4 NQA 与路由联动
# NQA 检测到链路质量恶化后触发路由切换
配置步骤:
1. 创建 NQA 测试实例
nqa test-instance admin_icmp ISP_1
test-type icmp
destination-address ipv4 8.8.8.1
frequency 10
!
start now
2. 配置静态路由 + NQA 联动
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0 10.0.1.1
track nqa admin_icmp ISP_1
description "NQA track - 如果 ISP_1 不通则撤销默认路由"
3. 备选路由(NQA 检测到主链路故障后启用)
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/1 10.0.2.1
preference 70 # 低优先级作为备份
# 联动效果:
# 主链路不通 → NQA 检测失败 → 主路由被撤销 → 启用备选路由
# 切换时间:NQA 检测周期(10s)+ 路由收敛(< 1s)≈ 11s
2.5 NQA 结果与报告
# 查看 NQA 历史记录
display nqa history test-instance admin_icmp ISP_1
Index Response Status Time RTT(ms)
1 Success 2024-03-15 10:00:01 12
2 Success 2024-03-15 10:00:11 15
3 Timeout 2024-03-15 10:00:21 - ← 故障发生
4 Timeout 2024-03-15 10:00:31 -
5 Success 2024-03-15 10:00:41 18 ← 链路恢复
# 计算 SLA(过去 24 小时)
display nqa statistics test-instance admin_icmp ISP_1
测试总数: 8640
成功: 8597 (99.5%)
超时: 43 (0.5%)
平均 RTT: 14 ms
最大 RTT: 256 ms
最小 RTT: 3 ms
三、BFD 详解
3.1 BFD 基本原理
BFD(Bidirectional Forwarding Detection)是一种轻量级快速故障检测协议:
正常状态: | R1 | ─── BFD Hello ─→ ←── BFD Hello ─ | R2 | | --- | --- | --- | 每 10ms 发一次 Hello 检测倍数 3,共 30ms 可检测故障
故障状态: | R1 | ─── BFD Hello ─→ (无回复) 3 次超时后 → DOWN | (R2 故障) | | --- | --- | --- | R1 在 30ms 内检测到故障 立即通知上层协议(OSPF/BGP/LDP)
3.2 BFD 的三种模式
| 模式 | 说明 | 应用场景 |
|---|---|---|
| 异步模式(默认) | 双方周期性发送 Hello | 大多数场景 |
| 查询模式 | 平时不发,需时才启动 | 省带宽场景 |
| 回声模式 | 一端发,另一端反射回来 | 减少处理开销 |
3.3 BFD 参数
关键参数及其影响:
| 参数 | 默认值 | 最小值 | 说明 |
|---|---|---|---|
| Tx Interval Rx Interval Detect Mult 总检测时间 | 100ms 100ms 3 300ms | 3.3ms 3.3ms 2 6.6ms | 发送间隔 接收间隔 检测倍数 Tx × Detect Mult |
配置注意: - 太快的检测间隔(<10ms)可能消耗 CPU - 对等体协商较慢一方的参数 - 实际检测时间 = max(local_tx, peer_rx) × detect_mult
3.4 BFD 配置示例
# 全局使能 BFD
bfd
!
# BFD for OSPF
ospf 1
bfd all-interfaces enable # OSPF 所有接口启用 BFD
bfd block interface GigabitEthernet0/0/1 # 排除不需要的接口
!
interface GigabitEthernet0/0/0
ospf bfd enable
ospf bfd min-tx-interval 10 # 发送间隔 10ms
ospf bfd min-rx-interval 10 # 接收间隔 10ms
ospf bfd detect-multiplier 3 # 检测倍数 3(30ms 检测)
# BFD for BGP
bgp 100
peer 10.0.0.2 bfd enable
peer 10.0.0.2 bfd min-tx-interval 10
peer 10.0.0.2 bfd min-rx-interval 10
peer 10.0.0.2 bfd detect-multiplier 3
# BFD for LDP
mpls ldp
bfd all-interfaces enable
bfd min-tx-interval 10
bfd min-rx-interval 10
bfd detect-multiplier 3
# BFD for Static Route
bfd 1 bind peer-ip 10.0.1.2 interface GigabitEthernet0/0/0
discriminator local 1
discriminator remote 1
commit
!
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0 10.0.1.1
track bfd-session 1
四、NQA vs BFD 协同定位
4.1 各司其职
实时性: BFD NQA
< 50ms 1-60s
功能: UP/DOWN 检测 时延、抖动、丢包
适用: 故障快速切换 SLA 监控、性能评估
联动对象: IGP/BGP/LDP 静态路由、策略路由
4.2 协同工作示例
链路故障场景:
时间轴:
0ms 链路中断(光纤被挖断)
10ms BFD 检测失败(连续 3 次丢包)
11ms 通知 OSPF/ISIS
12ms OSPF 重新计算 SPF
15ms-50ms 路由收敛完成,流量切换
30s NQA 第一次探测超时
60s NQA 第二次探测超时
90s NQA 标记链路为 DOWN(确认持续故障)
91s 发送告警到网管系统
120s 记录到 SLA 报告(该时段可用性 = 99.97%)
两台工具协同:
BFD:负责截止到 50ms 的快速切换
NQA:负责秒级以上的质量评估和报告
4.3 典型配置模板
# 推荐配置:BFD 快速检测 + NQA 质量监控
bfd
!
# BFD:快速故障检测(用于路由联动)
ospf 1
bfd all-interfaces enable
bfd min-tx-interval 10
bfd min-rx-interval 10
bfd detect-multiplier 3
# NQA:链路质量监控(用于 SLA 报告)
nqa test-instance sla_icmp WAN_LINK_1
test-type icmp
destination-address ipv4 10.0.0.2
interval seconds 5
probe-count 2
frequency 60
!
nqa test-instance sla_jitter WAN_LINK_1
test-type jitter
destination-address ipv4 10.0.0.2
interval milliseconds 20
probe-count 100
frequency 300
!
start now
五、SLA 报告生成
5.1 SLA 指标定义
基于 NQA 的 SLA 报告指标:
SLA 可用性 = 成功探测次数 / 总探测次数 × 100%
NQA:每 5 秒一次,每天 17280 次
99.99% = 允许 1.7 次失败/天
99.999% = 允许 0.17 次失败/天 ≈ 1.5 秒中断/天
SLA 时延 = NQA 探测的平均 RTT
< 10ms:优秀(同城专线)
< 30ms:良好(省内骨干)
< 80ms:可接受(长途骨干)
> 80ms:需要优化
SLA 抖动 = NQA Jitter 探测结果
< 3ms:优秀
< 10ms:良好
> 10ms:可能影响实时业务
SLA 丢包率 = 丢包数 / 总发送数
< 0.01%:优秀(金融级)
< 0.1%:良好
> 0.5%:需要关注
> 1%:严重影响应用
5.2 月度 SLA 报告输出示例
链路:WAN_LINK_1 (PE1 ↔ PE2 核心链路)
月份:2024年3月
指标 目标值 实际值 达标情况
──────────────────────────────────────────────
可用性 ≥ 99.99% 99.993% ✔
平均时延 < 20ms 12ms ✔
最大时延 < 100ms 45ms ✔
平均抖动 < 5ms 2ms ✔
丢包率 < 0.1% 0.02% ✔
本月故障事件:
3月15日 10:00:21-10:00:31(10秒中断)→ BFD 在 30ms 切换
3月22日 14:22:10-14:22:15(时延飙升至200ms)→ 未切换,NQA 标记为事件
六、总结
| 知识点 | 核心要点 |
|---|---|
| NQA | 主动探测工具,检测时延/抖动/丢包/可达性 |
| BFD | 快速故障检测协议,毫秒级检测 UP/DOWN |
| 检测速度 | BFD 毫秒级 < NQA 秒级 |
| 联动机制 | BFD 联动 IGP/BGP/LDP,NQA 联动静态路由/策略路由 |
| 协同 | BFD 负责快速切换,NQA 负责质量评估和 SLA 报告 |
| SLA 报告 | 基于 NQA 数据生成可用性/时延/抖动/丢包报告 |
| 检测类型 | NQA 支持 ICMP/TCP/UDP/Jitter/HTTP/DNS 等 |
七、思考
- NQA 和 BFD 在广域网链路监测中各承担什么角色?为什么需要两者并存?
- BFD 的检测时间是如何计算的?最小可以达到多少?
- 如果一条链路的 BFD 检测间隔设置为 10ms,检测倍数为 3,链路中断后最快多久能感知到?
- NQA 的 UDP Jitter 探测如何计算正向抖动(SD)和反向抖动(DS)?
- 请画出一个完整的 NQA+BFD 协同故障切换的时间线(从故障发生到流量切换完成)。
下篇预告:第201篇《防火墙安全区域与安全策略》——开启第五篇章「网络安全技术」,从防火墙的基础安全模型开始,详解区域隔离和策略控制。