第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 |
三、链路保护(Link 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 汇入主路径的节点 |
十、思考
- MPLS TE FRR 的 50ms 目标来源于什么?
- 链路保护和节点保护分别保护什么范围?
- Bypass Tunnel 和 Detour LSP 有什么区别?各有什么优劣?
- FRR 切换时,PLR 如何修改 LFIB 以实现流量重定向?
- BFD 在 FRR 中扮演什么角色?为什么 BFD 比 RSVP Hello 更适合故障检测?
下篇预告:第162篇《MPLS TE 与 DiffServ 结合:DS-TE》——如何在 TE 隧道上叠加 QoS,为不同优先级业务提供差异化的带宽和转发保障。