2. MPLS基础原理与Comware实现

MPLS(Multi-Protocol Label Switching,多协议标签交换)在Comware设备上并不是一个孤立的功能,而是一套“转发面靠标签、控制面靠协议”的完整体系。理解它,需要先弄清几个核心对象:标签(Label)、转发等价类(FEC)、标签交换路径(LSP)、标签边缘路由器(LER)和标签交换路由器(LSR),然后再看标签分发协议如何把这些对象串起来。

一、标签与FEC:MPLS转发的两个基本概念

传统IP转发是逐跳查路由表,每台设备都根据目的IP前缀决定下一跳。MPLS则不同:入口设备为报文打上一个短而定长的标签,后续设备只根据标签值查标签转发表(LFIB),不再逐跳分析IP头。标签本身只有本地意义,一台LSR上的标签值“100”与另一台LSR上的“100”可以指向完全不同的路径。

标签与FEC是绑定的。FEC(Forwarding Equivalence Class,转发等价类)是一组被同样方式转发的报文集合,最常见的形式就是一条IP前缀,例如10.1.1.0/24。当一条FEC被映射到某个标签时,就形成了“标签—FEC”绑定关系。Comware中,这个绑定关系由标签分发协议动态建立,也可以手工静态配置。

标签栈是MPLS的重要特征。一个报文可以携带多层标签,外层标签用于骨干网转发,内层标签用于区分VPN或业务实例。栈顶标签决定当前转发行为,弹出栈顶标签后,下一层标签继续指导转发。这种“标签嵌套”能力,正是MPLS能够承载L2VPN、L3VPN和流量工程的基础。

二、LER与LSR:MPLS域中的两种角色

MPLS域由LER和LSR共同组成。LER(Label Edge Router,标签边缘路由器)位于MPLS域边缘,负责标签的压入(Push)和弹出(Pop)。入口LER根据目的FEC为IP报文压入标签,出口LER则弹出标签,把报文还原为普通IP报文交给下游网络。LSR(Label Switching Router,标签交换路由器)位于MPLS域内部,只做标签交换(Swap):把入标签替换为出标签,并从对应接口转发出去。

在Comware设备上,一台路由器可以同时承担LER和LSR角色,具体取决于接口位置和配置。例如,PE设备通常作为LER,P设备作为LSR。判断一台设备当前是LER还是LSR,可以看它是否对某条FEC执行Push/Pop操作,还是只执行Swap操作。

三、LSP:标签交换路径的建立

LSP(Label Switched Path,标签交换路径)是报文在MPLS域中经过的一系列LSR和标签组成的单向路径。一条LSP的建立方向与数据转发方向一致,从入口LER开始,经过若干LSR,到出口LER结束。LSP的建立方式主要有两种:静态LSP和动态LSP。

静态LSP由管理员手工配置每个节点的入标签、出标签和下一跳,适合小型网络或需要精确控制的场景。动态LSP则由标签分发协议自动建立,设备之间交换标签映射信息,逐跳形成LSP。Comware支持LDP(Label Distribution Protocol,标签分发协议)作为最常用的动态标签分发协议。

四、标签分发协议概述

标签分发协议的核心任务是:让LSR之间交换“FEC—标签”绑定关系,从而建立LSP。LDP通过TCP会话交换标签映射消息,主要消息类型包括Discovery、Session、Advertisement和Notification。LDP的标签分配模式有DU(Downstream Unsolicited,下游主动)和DoD(Downstream on Demand,下游按需)两种,Comware默认使用DU模式。

LDP的标签保持方式有Liberal和Conservative两种。Liberal模式下,设备保留所有收到的标签映射,即使当前没有使用;Conservative模式只保留用于转发的标签映射。Comware默认使用Liberal方式,这样在路由变化时能够更快切换。

除了LDP,MPLS还可以使用RSVP-TE建立流量工程LSP,或使用BGP扩展团体属性分发标签用于跨域VPN。本节聚焦LDP,因为它是Comware MPLS基础实验中最常使用的协议。

五、Comware中的基本配置与验证

下面以两台路由器直连为例,说明LDP建立LSP的基本过程。假设R1和R2之间运行OSPF,接口G0/0的IP分别为10.0.0.1/30和10.0.0.2/30,R1上有一个Loopback0:1.1.1.1/32,R2上有一个Loopback0:2.2.2.2/32。

# R1关键配置
mpls lsr-id 1.1.1.1
mpls ldp
interface GigabitEthernet0/0
 ip address 10.0.0.1 30
 mpls enable
 mpls ldp enable
interface Loopback0
 ip address 1.1.1.1 32
 mpls enable
 mpls ldp enable

# R2关键配置
mpls lsr-id 2.2.2.2
mpls ldp
interface GigabitEthernet0/0
 ip address 10.0.0.2 30
 mpls enable
 mpls ldp enable
interface Loopback0
 ip address 2.2.2.2 32
 mpls enable
 mpls ldp enable

配置完成后,R1和R2会通过UDP 646端口发现对端,然后建立TCP会话。可以使用以下命令验证:

display mpls ldp peer
display mpls ldp session
display mpls lsp
display mpls ldp lsp

正常情况下,display mpls ldp session会显示会话状态为Operational,display mpls lsp会显示到2.2.2.2/32的LSP,出标签由对端分配。此时从R1 ping 2.2.2.2,报文会携带标签转发,而不是纯IP转发。

判断LSP是否真正建立,不能只看LDP会话是否Up,还要看display mpls lsp中是否存在对应FEC的转发表项,以及出标签、出接口是否与预期一致。如果会话Up但没有LSP,通常是路由不可达或标签分配被过滤。

六、标签转发与IP转发的对比

为了更直观地理解MPLS转发过程,下面用一张信号链式示意图展示从入口LER到出口LER的标签操作。图中左侧为入口LER,右侧为出口LER,中间为LSR。报文进入时是IP包,入口LER压入标签,LSR交换标签,出口LER弹出标签,最终还原为IP包。

MPLS标签转发信号链:IP → Push → Swap → Pop → IP 入口 LER 识别FEC Push 标签 LSR 查LFIB Swap 标签 出口 LER Pop 标签 还原IP包 IP报文 目的 2.2.2.2 标签报文 Label 100 → 200 IP报文 目的 2.2.2.2 标签栈:外层骨干 + 内层业务

从图中可以看到,MPLS转发路径上的每一台设备只关心标签值,而不关心IP报文的具体内容。入口LER负责分类和压标签,LSR负责标签交换,出口LER负责弹出标签。这种分工使得MPLS域内部转发效率更高,也更容易实现流量工程和VPN隔离。

七、常见验证要点与排障思路

在实际工程中,LDP邻居建立失败或LSP未生成是常见问题。排查时建议按以下顺序检查:

  • 接口是否使能了MPLS和LDP,display mpls interface是否显示接口状态Up。
  • LSR-ID是否配置且唯一,通常使用Loopback地址,且该地址必须被IGP发布。
  • 底层IGP是否可达,display ip routing-table中是否有对端LSR-ID的32位主机路由。
  • LDP会话是否Operational,display mpls ldp session中State字段是否为Operational。
  • 标签映射是否收到,display mpls ldp lsp中是否有对应FEC的入标签和出标签。
Comware中,如果接口没有使能MPLS,即使LDP会话建立,也不会生成标签转发表项。另外,LDP的传输地址默认使用LSR-ID,如果LSR-ID不可达,TCP会话无法建立,LSP自然无法形成。

掌握以上对象和验证方法后,就可以进一步学习MPLS L3VPN、跨域Option A/B/C等更复杂的业务承载场景。本节的重点是建立“标签—FEC—LSP—LER/LSR—LDP”这条完整的逻辑链,并在Comware设备上通过实际命令观察每一步的状态变化。