第161篇:MPLS TE FRR(快速重路由)

关键词

MPLS TE FRR、快速重路由、保护路径、旁路隧道、设施备份、50ms 切换、链路保护、节点保护


一、为什么需要 FRR?

1.1 故障恢复的挑战

在 MPLS TE 网络中,当一条链路或节点故障时,传统的恢复流程需要:

链路故障 → IGP 邻居 Down → LDP 会话中断 → LSP 标签失效
  → IGP 重新收敛 → LDP 重新分发标签 → 新 LSP 建立
  → 流量恢复

这个过程通常需要:1-10 秒

对于实时业务(语音、视频、金融交易),1 秒钟的中断都是不可接受的

1.2 FRR 的目标

MPLS TE FRR(Fast Re-Route)的目标是:

  • 在故障发生后 50ms 内完成切换
  • 消除流量中断时间(对标 SDH 的 50ms 保护切换)

50ms 这个数字不是随意定的——传统 SDH 环形网的保护切换标准就是 50ms,MPLS TE FRR 用软的方式实现了同样级别的保护。


二、FRR 的基本原理

2.1 核心思想

FRR 的核心理念是预计算+预建立保护路径

正常情况:流量走主路径
故障发生:立即切换到预建立的保护路径
主路径(Primary LSP):
  PE1 ─── P1 ─── P2 ─── P3 ─── PE2

保护路径(Bypass Tunnel / Detour LSP):
  PE1 ─── P1 ─── P4 ─── P3 ─── PE2(用来保护链路 P1-P2)
                  或
  PE1 ─── P1 ─── P4 ─── P5 ─── PE2(用来保护节点 P2)

2.2 两种保护方式

保护方式 描述 英文
链路保护 保护两条相邻 LSR 之间的链路 Link Protection
节点保护 保护一个 Transit LSR(绕开故障节点) Node Protection

3.1 场景

主路径:PE1 → P1 → P2 → PE2 ↑ 保护 P1-P2 链路

保护隧道(Bypass Tunnel):

┌── P4 ──┐ P1 P2 └── P5 ──┘

3.2 工作过程

正常状态:
  PE1(Push 100→P1)→ P1(Swap 100→200→P2)→ P2(Swap 200→300→PE2)→ PE2

  P1 上建立了 Bypass Tunnel(P1 → P4 → P2):
    - 已提前建立完整的 CR-LSP
    - 处于空闲状态(不承载流量)

链路 P1-P2 故障:
  P1 检测到链路 Down(物理信号丢失或 BFD 检测)

  毫秒级响应:
    P1 将主路径的流量重定向到 Bypass Tunnel
    P1 的 LFIB 变化:
      修改前:
        In-Label=100 → Out-Label=200 → Out-IF=GE0/0/1(P1-P2 链路)
      修改后:
        In-Label=100 → Push 标签栈(Bypass)→ Out-IF=GE0/0/2(P4)

  PE1 和 PE2 感知不到切换 → 流量不中断

3.3 标签栈在 FRR 中的变化

故障切换前(主路径):
  MPLS 标签栈:100(单层标签)
  │
  ▼
故障切换后(Bypass 隧道):
  MPLS 标签栈:{51(Bypass 外层)} 200(原内层)
  │              │                    │
  │    外层标签(Bypass P1→P2 路径)  内层标签(保护到 P2)
  │
  ▼
P2 收到后 Pop Bypass 外层标签 → 看到内层标签 200
  → 继续按原 LSP 转发到 PE2

  P2 侧完全不需要感知故障!

四、节点保护(Node Protection)

4.1 场景

主路径:PE1 → P1 → P2 → P3 → PE2
                    ↑
              保护 P2 节点

保护隧道(Bypass Tunnel):
  P1 ── P4 ── P3(绕过 P2)

4.2 与链路保护的区别

对比 链路保护 节点保护
保护范畴 两条 LSR 之间的直连链路 中间节点及其关联链路
Bypass 终点 故障链路的下游 LSR 故障节点的下游 LSR
保护强度 较弱(节点故障仍会中断) 更强(节点+链路均保护)
资源消耗 较少 较多

4.3 配置选择

interface Tunnel1
 mpls te fast-reroute                    # 使能 FRR
 mpls te protection-link                 # 链路保护(默认)
!
interface Tunnel2
 mpls te fast-reroute
 mpls te protection-node                 # 节点保护

五、Bypass Tunnel 与 Detour LSP

5.1 两种 FRR 实现方式

方式 描述 保护粒度 资源消耗
Bypass Tunnel 一条 Bypass 保护多个主路径 统护,粗粒度
Detour LSP 每个主路径独立建立保护路径 每路独占,细粒度

5.2 Bypass Tunnel(设施备份)

Bypass Tunnel(P1 → P4 → P2): 这条 Bypass Tunnel 可以保护经过 P1 的所有主路径(多个 TE 隧道)

受保护的主路径 PE1 → P1 → P2 → PE2(Tunnel 1) PE1 → P1 → P2 → P5 → PE3(Tunnel 2) │ 共享 Bypass ▼ ┌─────────────────────────────────────────┐ │ Bypass: P1 → P4 → P2 │ └─────────────────────────────────────────┘

优势:一条 Bypass 可保护多条主路径,资源消耗小。

5.3 Detour LSP(1:1 保护)

Detour LSP:
  Tunnel 1 主路径:PE1 → P1 → P2 → PE2
  Tunnel 1 保护路径:PE1 → P1 → P4 → P5 → PE2(独立于其他隧道)

  Tunnel 2 主路径:PE1 → P1 → P2 → P5 → PE3
  Tunnel 2 保护路径:PE1 → P1 → P6 → P7 → PE3(另一条独立路径)

优势:保护路径可以精确匹配主路径的需求(带宽、时延等)。 劣势:资源消耗大(N 条主路径需要 N 条保护路径)。


六、FRR 的切换过程

6.1 检测到故障

故障检测方式: | 物理层检测(光信号丢失) | ← 最快(微秒级) | | --- | --- | | BFD(双向转发检测) | ← 可配置 3.3ms 检测间隔 | | RSVP Hello | ← 较慢(秒级) |

最佳实践:BFD for MPLS TE(3.3ms × 3 = 10ms 检测)

6.2 切换步骤(50ms 目标时序)

  链路故障(T=0)
      │
      ▼
  BFD 检测完成(T=10ms)
      │
      ▼
  P1 收到故障通知
      │
      ▼
  P1 查找保护 LSP(Bypass Tunnel)
      │
      ▼
  P1 修改 LFIB(将主路径流量重定向到 Bypass)
      ├─ 更新 ILM/NHLFE
      └─ 插入 Bypass 标签栈(T=15ms)
      │
      ▼
  流量开始通过 Bypass 转发(T=20ms)
      │
      ▼
  P1 向 Ingress 发送 PathErr 通知(T=20ms+)
      │
      ▼
  Ingress 收到故障通知 → 尝试主路径恢复或切换备路径
      │
      ▼
  网络级收敛完成(T=1-5s)
      │
      ▼
  FRR 可能已切换回新的最优路径

七、FRR 配置示例(华为设备)

7.1 使能 FRR 并配置 Bypass Tunnel

# P1 配置
mpls lsr-id 1.1.1.1
mpls
 te tunnel
 rsvp-te
!
# 主路径接口
interface GigabitEthernet0/0/0
 mpls
 mpls te
 rsvp-te
 rsvp-te bandwidth max-reservable 1000000
!
# Bypass Tunnel 接口
interface Tunnel100
 ip address unnumbered interface LoopBack0
 tunnel-protocol mpls te
 destination 2.2.2.2                   # 终点 P2
 mpls te tunnel-id 100
 mpls te bypass-tunnel                 # 标识为 Bypass Tunnel
 mpls te bandwidth 500000              # Bypass 预留带宽
 mpls te path explicit-path bypass-path
 mpls te commit
!
explicit-path bypass-path
 next-hop 10.4.4.2                    # P4
 next-hop 10.2.2.2                    # P2
!
# 在入接口绑定 Bypass Tunnel
interface GigabitEthernet0/0/1
 mpls te fast-reroute bypass-tunnel Tunnel100

7.2 验证 FRR 状态

<P1> display mpls te fast-reroute

FRR Information:
  Tunnel Name   : Tunnel1
  PLR Node      : 1.1.1.1
  MP Node       : 2.2.2.2
  Bypass Tunnel : Tunnel100
  Protection Type : Link
  State         : Ready                    ← 保护路径已就绪

八、FRR 的局限与演进

局限 说明 演进
Bypass 带宽预留 Bypass 需要预留足够的带宽 DS-TE 解决带宽公平性
配置复杂 每段链路/节点都需要手工建立 Bypass Segment Routing TI-LFA 自动保护
回切问题 FRR 切换后流量走次优路径 Make-before-break 回切
单向保护 FRR 只保护主路径方向 BFD + 双向 LSP 协商

九、总结

知识点 核心要点
FRR 目标 50ms 内完成故障切换
链路保护 保护 PLR 和 MP 之间的直接链路
节点保护 绕过故障 Transit LSR
Bypass Tunnel 一条保护路径保护多个主路径
Detour LSP 每条主路径独立保护
PLR Point of Local Repair,执行切换的节点
MP Merge Point,Bypass 汇入主路径的节点

十、思考

  1. MPLS TE FRR 的 50ms 目标来源于什么?
  2. 链路保护和节点保护分别保护什么范围?
  3. Bypass Tunnel 和 Detour LSP 有什么区别?各有什么优劣?
  4. FRR 切换时,PLR 如何修改 LFIB 以实现流量重定向?
  5. BFD 在 FRR 中扮演什么角色?为什么 BFD 比 RSVP Hello 更适合故障检测?

下篇预告:第162篇《MPLS TE 与 DiffServ 结合:DS-TE》——如何在 TE 隧道上叠加 QoS,为不同优先级业务提供差异化的带宽和转发保障。