视频加载失败

MPLS 与 Segment Routing 基础

2706 字
14 分钟
MPLS 与 Segment Routing 基础

MPLS 与 Segment Routing 基础#

一、MPLS 概述#

  • MPLS(Multiprotocol Label Switching):多协议标签交换
  • MPLS 是一种介于数据链路层和网络层之间的 2.5 层技术(Shim 层,位于 PPP/Ethernet 头与 IP 头之间)
  • MPLS 核心思想:用 短而定长的标签(32bit)替代 长而不定长的 IP 地址进行转发
  • MPLS 优势:
    • 快速转发(硬件查表,一次分类多次转发)
    • 支持 VPN(L2VPN / L3VPN)
    • 支持 TE(流量工程,RSVP-TE)
    • QoS 保障(EXP 字段)
    • 兼容性好(承载 PPP、Ethernet、FR、ATM;承载 IPv4/IPv6/二层帧)

二、MPLS 基本概念 🏷️高频考点#

概念说明
LSR(Label Switching Router)支持 MPLS 的路由器
LER(Label Edge Router)边缘 LSR,负责 IP↔MPLS 转换
Ingress入口 LSR,IP 报文进入 MPLS 网络
Transit中间 LSR,执行标签交换
Egress出口 LSR,标签弹出并恢复 IP 转发
LSP(Label Switched Path)标签交换路径,从 Ingress 到 Egress 的单向隧道
FEC(Forwarding Equivalence Class)转发等价类,相同转发处理的数据流集合
NHLFE(Next Hop Label Forwarding Entry)下一跳标签转发项(Ingress 使用)
ILM(Incoming Label Map)入口标签映射(Transit/Egress 使用)
FTN(FEC-To-NHLFE Map)FEC 到 NHLFE 的映射表

关键记忆点:FEC 的划分在 Ingress 节点完成,相同 FEC 的报文走相同 LSP。

三、MPLS 标签结构 🏷️高频考点#

MPLS 标签共 4 字节(32bit)

字段长度说明
Label20bit标签值,范围 0–1048575
EXP3bit实验位,用于 QoS(现用作优先级)
S1bit栈底标志,1=最底层标签
TTL8bit生存时间,类似 IP TTL,每跳减 1
  • 标签值 0–15 保留
    • 0:IPv4 Explicit Null
    • 1:Router Alert
    • 2:IPv6 Explicit Null
    • 3:Implicit Null(PHP 标志)
  • 标签栈:多层标签嵌套(VPN 典型 2 层,条码堆栈),S=1 表示最底层
  • 标签位于二层帧头与三层 IP 头之间,二层 Protocol Type 字段标识:
    • Ethernet:0x8847(单播 MPLS)/ 0x8848(多播 MPLS)
    • PPP:0x0281

四、MPLS 工作原理 🏷️高频考点#

MPLS 报文处理三阶段:

4.1 Ingress 节点(入口 LSR)#

  • 收到 IP 报文 → 查找 FEC(FTN 表) → 分配标签 → 压入(Push)标签 → 按 NHLFE 转发

4.2 Transit 节点(中间 LSR)#

  • 收到 MPLS 报文 → 查找 ILM → 弹出(Swap)旧标签 → 压入新标签 → 转发
  • 仅依据标签转发,不再查 IP 头

4.3 Egress 节点(出口 LSR)#

  • 收到 MPLS 报文 → 弹出(Pop)标签 → 恢复 IP 报文 → 按 IP 转发

4.4 PHP(Penultimate Hop Popping) 🏷️高频考点#

  • 倒数第二跳弹出:在倒数第二跳(倒数第二台 P/LSR)就弹出标签,减少 Egress 查表负担
  • 特殊标签 3 = Implicit Null(隐式空标签),表示使用 PHP
  • 倒数第二跳收到标签 3 后,弹出外层标签,以纯 IP 报文送给 Egress
  • 优点:Egress 仅做一次 IP 查表;缺点:Egress 无法基于标签做 QoS

显式空标签(0/2)隐式空标签(3) 区别:显式空标签仍保留标签头用于 QoS,隐式空标签直接弹出。

五、LDP 协议 🏷️高频考点#

  • LDP(Label Distribution Protocol):标签分发协议
  • LDP 使用 UDP 646(Hello 发现)TCP 646(会话建立)
  • LDP 消息类型:
    • Discovery Hello:发现邻居(UDP 组播 224.0.0.2,发往 All Routers)
    • Initialization:建立会话(协商参数、标签空间)
    • Keepalive:维护会话
    • Label Mapping:标签映射消息(FEC↔Label)
    • Label Withdraw:标签撤销
    • Label Release:释放标签
    • Label Request:按需请求标签(DoD 模式)
  • LDP 标签分配方式:
    • 下游自主分配(DU,Downstream Unsolicited):主动分配标签(华为默认)
    • 下游按需分配(DoD,Downstream On Demand):上游请求才分配
  • 标签保持方式:
    • 自由模式(Liberal):保留所有邻居分配的标签(利于快速切换,华为默认)
    • 保守模式(Conservative):仅保留下一跳分配的标签(节省内存)
  • 标签分发控制方式:
    • 有序方式(Ordered):只有 Egress 为 FEC 分配标签后,上游才分配(华为默认)
    • 独立方式(Independent):各节点独立分配标签
LSR R2LSR R1LSR R2LSR R1会话建立完成UDP Hello (224.0.0.2)UDP HelloTCP SYN (646)TCP SYN-ACKInitializationInitialization + KeepaliveKeepaliveLabel Mapping (FEC=10.1.1.0/24, L=3)Label Mapping (FEC=10.2.2.0/24, L=5)
LSR R2LSR R1LSR R2LSR R1会话建立完成UDP Hello (224.0.0.2)UDP HelloTCP SYN (646)TCP SYN-ACKInitializationInitialization + KeepaliveKeepaliveLabel Mapping (FEC=10.1.1.0/24, L=3)Label Mapping (FEC=10.2.2.0/24, L=5)

六、MPLS VPN 🏷️高频考点#

MPLS L3VPN 核心概念:

6.1 VPN 架构#

  • CE(Customer Edge):用户边缘路由器,仅与 PE 交互路由
  • PE(Provider Edge):运营商边缘路由器,维护 VRF、MP-BGP、MPLS
  • P(Provider):运营商核心路由器,仅做 MPLS 转发

6.2 VRF(VPN Routing and Forwarding) 🏷️高频考点#

  • VRF:VPN 路由转发表,PE 上为每个 VPN 维护独立的路由表
  • VRF 包含:路由表(RIB)、转发表(FIB)、接口集合
  • RD(Route Distinguisher):路由区分符,8 字节,使不同 VPN 的相同路由可区分
    • 格式:AS:NNIP:NN
    • 附加在 IPv4 前缀前形成 VPNv4 地址族(96bit)
  • RT(Route Target):路由目标,BGP 扩展团体属性,控制 VPN 间路由的引入和导出
    • Export RT:PE 在发布路由时携带
    • Import RT:PE 在接收路由时匹配,决定路由加入哪个 VRF
    • 一条路由可配多个 Export/Import RT,实现 Hub-Spoke、Extranet 等拓扑

6.3 MPLS VPN 数据转发 🏷️高频考点#

  • 外层标签(LDP/IGP 标签):P 路由器间的 MPLS 标签(LDP 分配),用于 P 间转发
  • 内层标签(VPN 标签):PE 间的 VPN 标签(MP-BGP 分配),用于 Egress PE 识别 VPN
  • 双层标签栈:外层用于 P 间转发,内层用于 PE 识别 VPN
  • Egress PE 通过内层标签查找 VRF,再查 VRF 转发表将报文发给 CE

MPLS核心

BGP/OSPF/Static

MP-BGP VPNv4

内层标签 L3

LDP

外层标签 L1

LDP

外层标签 L2

LDP

外层标签 L3

BGP/OSPF/Static

CE1

Site-A

PE1

VRF-A

PE2

VRF-A

P1

P2

CE2

Site-A

MPLS核心

BGP/OSPF/Static

MP-BGP VPNv4

内层标签 L3

LDP

外层标签 L1

LDP

外层标签 L2

LDP

外层标签 L3

BGP/OSPF/Static

CE1

Site-A

PE1

VRF-A

PE2

VRF-A

P1

P2

CE2

Site-A

CE1 发送 IP 报文

PE1 查 VRF 路由表

PE1 压入内层 VPN 标签 + 外层 LDP 标签

P 路由器仅交换外层标签

倒数第二跳弹出外层标签 - PHP

Egress PE 弹出内层标签

查 VRF 转发表 发往 CE2

CE2 收到 IP 报文

CE1 发送 IP 报文

PE1 查 VRF 路由表

PE1 压入内层 VPN 标签 + 外层 LDP 标签

P 路由器仅交换外层标签

倒数第二跳弹出外层标签 - PHP

Egress PE 弹出内层标签

查 VRF 转发表 发往 CE2

CE2 收到 IP 报文

七、Segment Routing 概述 🏷️高频考点#

  • SR(Segment Routing):段路由,源路由机制,由 IETF RFC 8402 定义
  • SR 优势:
    • 简化控制平面:无需 LDP/RSVP-TE,IGP 直接扩展承载 SID
    • 与 IGP 集成:OSPF/IS-IS 扩展泛洪 SID
    • 可扩展性强:SRv6 基于 IPv6 地址空间
    • 集中控制:与 SDN/控制器(PCEP/BGP-LS)天然契合
    • 快速重路由(TI-LFA):收敛亚秒级
  • SR 核心概念:
    • Segment(段):网络指令,指导报文转发(类似 MPLS 标签 / IPv6 指令)
    • Segment List:有序的段列表,定义端到端转发路径
    • SID(Segment ID):段的标识
    • SRGB(Segment Routing Global Block):全局标签块,节点配置,建议全网一致
    • SRAB(SRLB):本地标签块,用于 Adjacency SID 等

八、SR-MPLS vs SRv6 🏷️高频考点#

对比项SR-MPLSSRv6
标签格式MPLS 标签IPv6 地址(128bit)
数据平面MPLSIPv6(扩展头 SRH)
SID 长度32bit(MPLS 标签)128bit(IPv6 地址/位置 + 功能 + 参数)
与 IGP 集成OSPF/IS-IS 扩展OSPFv3/IS-IS 扩展
可扩展性中(20bit 标签空间)强(128bit 地址空间)
兼容性需 MPLS 网络原生 IPv6 网络
应用场景VPN、TE、FRR5G 承载、SD-WAN、云网融合
控制器下发PCEP/BGP SR PolicyBGP SR Policy/PCEP

SRv6 SID 结构Locator(位置)+ Function(功能)+ Args(参数),典型 128bit = 32+16+80 等。

九、SR-MPLS Segment 类型 🏷️高频考点#

Segment 类型说明
Node Segment节点段,标识一个节点(类似严格源路由)
Adjacency Segment邻接段,标识一个接口/邻接(类似松散源路由)
Prefix Segment前缀段,标识一个前缀(常与 Node Segment 重合)
  • Node SID / Prefix SID:全局 SID,由 IGP 泛洪,取值来自 SRGB + Index
  • Adjacency SID:本地 SID,仅在邻接间有效,取值来自 SRLB,不随 IGP 泛洪到全网
  • Anycast SID:标识一组节点,实现任播/负载分担

重点:Node SID 支持负载分担(ECMP),Adjacency SID 严格指定接口。

十、SR 控制平面#

  • IGP 扩展
    • OSPF:RFC 8665,Opaque LSA 携带 SID/Adj-SID
    • IS-IS:RFC 8667,TLV 144(SR-Capabilities)、TLV 22/23(Adj-SID)
  • BGP-LS:将链路状态信息(含 SID)上报给控制器
  • PCEP(PCE Communication Protocol):控制器与设备间路径计算通信,下发 SR Policy
  • BGP SR Policy:控制器下发 SR 路径(Color + Endpoint 标识业务)
  • BGP-LS / BGP SR Policy / PCEP 是 SDN 控制的三大协议

十一、华为设备配置命令示例#

11.1 MPLS 基础配置(使能 MPLS、LDP)#

Terminal window
# 全局使能 MPLS
mpls lsr-id 1.1.1.1
mpls
# 使能 LDP
mpls ldp
# 接口使能 MPLS LDP
interface GigabitEthernet0/0/0
ip address 10.1.12.1 255.255.255.0
mpls
mpls ldp
# 配置 LDP 会话保护(可选)
mpls ldp session protection
# 配置 PHP(默认开启,标签 3)
display mpls lsp

11.2 VRF 配置#

Terminal window
# 创建 VRF
ip vpn-instance VPN-A
ipv4-family
route-distinguisher 100:1
vpn-target 100:1 export-extcommunity
vpn-target 100:1 import-extcommunity
# 接口绑定 VRF
interface GigabitEthernet0/0/1
ip binding vpn-instance VPN-A
ip address 192.168.1.1 255.255.255.0

11.3 MP-BGP VPNv4 配置#

Terminal window
bgp 100
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
#
address-family vpnv4
peer 3.3.3.3 enable
peer 3.3.3.3 advertise-community

11.4 PE-CE 路由交换配置#

Terminal window
# PE-CE 静态
ip route-static vpn-instance VPN-A 192.168.10.0 255.255.255.0 192.168.1.2
# PE-CE OSPF
ospf 1 vpn-instance VPN-A
area 0
network 192.168.1.0 0.0.0.255
# BGP 与 VPNv4 交叉
bgp 100
ipv4-family vpn-instance VPN-A
peer 192.168.1.2 as-number 65001

11.5 SR-MPLS 配置#

Terminal window
# 全局使能 SR
segment-routing
# 配置 SRGB
segment-routing global-block 16000 23999
# IGP 使能 SR(IS-IS 示例)
isis 1
segment-routing enable
segment-routing global-block 16000 23999
# Prefix SID 绑定 Loopback0
interface LoopBack0
isis prefix-priority critical
isis segment-routing prefix 16001

11.6 SRv6 基础配置#

Terminal window
# 全局使能 IPv6 与 SRv6
ipv6 enable
segment-routing ipv6
encapsulation source-address 2001:db8::1
# 配置 Locator
segment-routing ipv6 locator MAIN loc-type:
algo 0
prefix 2001:db8:1::/64 block-len 48
# IGP 使能 SRv6(IS-IS 示例)
isis 1
ipv6 enable
segment-routing ipv6 locator MAIN
segment-routing ipv6 enable

十二、常见故障排查#

12.1 LDP 会话不建立#

  • 检查:display mpls ldp session
  • 常见原因:
    • LSR-ID 不可达(必须能 Ping 通)
    • TCP 646 端口被防火墙拦截
    • Hello 间隔不一致
    • 认证密码不匹配(mpls ldp md5-password

12.2 MPLS 标签分发异常#

  • 检查:display mpls ldp lsp
  • 常见原因:
    • LDP 会话 Down
    • 路由不可达(无 FEC)
    • 标签保持模式为 Conservative 时非下一跳邻居标签被释放

12.3 VPN 路由不通#

  • 检查:display bgp vpnv4 alldisplay ip routing-table vpn-instance VPN-A
  • 常见原因:
    • RT 配置错误(Import/Export 不匹配)
    • RD 重复
    • PE-CE 路由未引入 BGP
    • 内层标签丢失(MPLS 转发断裂)

12.4 常用诊断命令#

Terminal window
display mpls ldp session # 查看 LDP 会话
display mpls ldp peer # 查看 LDP 邻居
display mpls lsp # 查看 LSP 与标签
display mpls lsp statistics # LSP 统计
display mpls interface # 查看 MPLS 使能接口
display ip vpn-instance # 查看 VPN 实例
display bgp vpnv4 all # 查看 VPNv4 路由
display bgp vpnv4 vpn-instance VPN-A
display ip routing-table vpn-instance VPN-A
display segment-routing prefix-sid # SR Prefix SID
display segment-routing adjacency-sid # SR Adj-SID
display isis segment-routing routing # IS-IS SR 信息
ping -vpn-instance VPN-A 192.168.10.2 # VPN Ping
tracert –vpn-instance VPN-A 192.168.10.2 # VPN Tracert

附录:关键对比速记#

LDPRSVP-TESR-MPLS
标签分发DU/DoD下游按需IGP 泛洪 Prefix-SID
控制平面LDPRSVP-TEOSPF/IS-IS 扩展
TE 能力有(DS-TE)有(SR Policy + TI-LFA)
扩展性
华为默认DU + Liberal + OrderedSRGB 16000-23999

附录:高频考点提示#

  • MPLS 标签 4 字节(Label 20 + EXP 3 + S 1 + TTL 8)
  • PHP 用 Implicit Null(标签 3),在倒数第二跳弹出
  • LDP:UDP 646 发现,TCP 646 建会话;Hello 发往 224.0.0.2
  • VRF 三要素:RD(区分)、RT(控制导入导出)、独立路由表
  • L3VPN 双层标签:外层 LDP(P 间)、内层 MP-BGP VPNv4(PE 间)
  • SR 三大 Segment:Node / Adjacency / Prefix
  • Node SID 全局(SRGB),Adjacency SID 本地
  • SRv6 SID = Locator + Function + Args

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
MPLS 与 Segment Routing 基础
https://blog.zs13.tech/posts/网络/01-路由协议/mpls与sr基础/
作者
zs13
发布于
2026-08-05
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
zs13
Hello, I'm Zs13.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
22
分类
1
标签
46
总字数
64,717
运行时长
0
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.15.10
文章许可
CC BY-NC-SA 4.0