网络里最尴尬的故障不是「设备挂了」,而是设备都活着,但中间不通了。物理接口检测不到这种情况,必须靠协议层探测。

接口物理 Down、BFD 与 NQA 三种故障检测方式的对比
▲ 三种检测方式的能力边界

为什么物理 Down 不够

经典场景
R1 ──── [光传输设备 A] ════ [光传输设备 B] ──── R2
             │                      │
         光纤断了(中间)         本端物理口还是 Up

R1 的接口状态:Up(因为光模块和传输设备之间是通的)
R1 的协议状态:Up
R1 认为:一切正常,继续把流量往这条链路发
实际:全部丢包

→ 靠路由协议的 Hello 超时能恢复,但 OSPF 默认 40 秒、BGP 默认 180 秒
→ 这段时间业务全断

BFD 要解决的就是这个「感知太慢」的问题

BFD:毫秒级检测

BFD(Bidirectional Forwarding Detection)是一个极轻量的协议,只干一件事:快速判断两个端点之间的双向转发是否还通。

工作方式

方式怎么工作适用
控制报文模式(异步)两端定期互发 BFD 控制报文(UDP 3784),一段时间收不到就判定 Down最常用,两端都要配
Echo 模式本端发 Echo 报文,对端只负责原路回环,本端收不到就判 Down只需一端配置;但要求对端能正确回环
检测时间怎么算
检测时间 = 发送间隔 × 检测倍数

例:min-tx-interval 10 ms  +  detect-multiplier 3
    → 10 × 3 = 30 ms 内没收到 3 个报文就判定 Down

★ 两端会协商,取【较大】的间隔和倍数(保证双方节奏一致)
★ 配得越激进(间隔越小),CPU 和带宽开销越大
  生产环境常用 100~300 ms,而不是极限的 3 ms

BFD 要绑定到别的东西上才有用

BFD 自己不会切路由,它只是「感知器」。要把它绑到 VRRP、静态路由、OSPF、BGP 上,才能触发切换。

huawei · BFD 的四种典型绑定
# ① 绑定静态路由(最常见)
bfd
bfd bind peer-ip 10.0.0.2 interface GigabitEthernet0/0/0
 discriminator local 1
 discriminator remote 2
 min-tx-interval 100
 min-rx-interval 100
 detect-multiplier 3
# 静态路由联动:
ip route-static 192.168.2.0 24 10.0.0.2 track bfd-session 1

# ② 绑定 VRRP
vrrp vrid 1 track bfd-session 1 reduced 40

# ③ 绑定 OSPF(让 OSPF 快速感知邻居失效)
ospf 1
 bfd all-interfaces enable
 bfd all-interfaces min-tx-interval 100 min-rx-interval 100

# ④ 绑定 BGP
bgp 100
 peer 10.0.0.2 bfd enable
 peer 10.0.0.2 bfd min-tx-interval 100 min-rx-interval 100

# ★ discriminator(本地/远端标识符)两端必须【互为镜像】:
#   本端 local 1 / remote 2  ←→  对端 local 2 / remote 1
#   这是 BFD 配置最常见的错误

NQA:不只是「通不通」

NQA(Network Quality Analysis)是主动发包探测,能测出具体指标:

测试类型测什么
ICMP最基本的连通性与时延
UDP jitter时延、抖动、丢包率——语音/视频质量评估必用
TCP测特定端口的可达性(能验证应用层)
HTTP测网站响应时间
DNS / DHCP测这两类服务是否正常
huawei · NQA 配置
nqa test-instance admin icmp-test
 test-type icmp
 destination-address ipv4 10.0.0.2
 frequency 10                     # 每 10 秒测一次
 probe-count 3                    # 每次发 3 个包
 timeout 3                        # 单包超时 3 秒
 start now

nqa test-instance admin jitter-test
 test-type udp-jitter
 destination-address ipv4 10.0.0.2
 destination-port 9000
 frequency 60
 start now

# 结果与联动
display nqa results
# 与静态路由联动(质量不达标就切走):
ip route-static 192.168.2.0 24 10.0.0.2 track nqa admin icmp-test

IP FPM 与 SPR:再往上一层

技术解决什么
IP FPM(IP Flow Performance Measurement)在真实业务流上做逐包染色统计,测出真实业务的丢包和时延,而不是靠探测包推测
SPR(Smart Policy Routing)把 NQA 的探测结果和路由联动,自动选质量最好的链路转发

三者定位不同:BFD 管「快」(毫秒级知道通不通),NQA 管「细」(测出质量指标),IP FPM 管「真」(在真实业务流上测,不靠探测包推测)。

排错

huawei
display bfd session all                    # ★ 所有 BFD 会话状态
display bfd session all verbose            # 详细:间隔、倍数、收发包数
display bfd configuration all              # BFD 配置

display nqa results                        # ★ NQA 测试结果
display nqa history                        # 历史记录
display nqa test-instance admin icmp-test  # 单个实例

display ip routing-table                   # 看 track 是否生效(路由是否消失)

一句话总结:物理 Down 只覆盖「线断了」,中间有传输设备时必须靠协议探测。BFD 管快、NQA 管细、IP FPM 管真。BFD 的关键是 discriminator 镜像和 track 绑定。

📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)

合并了原始笔记中「BFD / 链路探测 / NQA / IP FPM / SPR」五页。
原笔记各页独立,本文按「为什么需要 → BFD → NQA → IP FPM/SPR」串成一条线,并补上了 discriminator 镜像这个高频配置错误。
配置命令保留华为 VRP 原样。