MPLS总说标签交换,到底是怎么工作的?跟传统的IP路由有什么不同?
MPLS的核心是“一次路由,多次交换”,它在网络边缘给数据包打上一个短小定长的标签,核心设备只看标签转发,不再分析IP头。

一、标签分发:建立标签转发表
MPLS网络由标签边缘路由器和标签交换路由器组成。首先,LSR通过标签分发协议相互交换标签绑定信息。每个LSR为去往特定目标网段(比如一个IP前缀)分配一个本地标签,并告知上游邻居。这样,沿途所有LSR就形成了一张标签转发表。
二、标签压入:边缘路由器打标
当数据包进入MPLS网络时,入口LER根据目的IP查找FIB,找到对应的FEC,然后执行标签压入操作,将一个标签栈(通常只有一层或多层)插入到二层帧头和IP头之间。例如,一个发往192.168.1.0/24的IP包被压入标签100。
三、标签交换:核心节点快速转发
中间LSR收到带标签的数据包后,不再解封装查看IP头,而是直接以标签为索引查询LFIB。LFIB中记录:入标签→出标签+出接口+下一跳MAC。LSR将旧标签替换为新标签,并在对应的出接口转发。这个过程非常快,因为标签长度固定,查表时间恒定,且无需进行IP最长前缀匹配。
四、标签弹出:边缘路由器还原IP包
当数据包到达出口LER时,LSR执行标签弹出操作,去掉标签,还原原始IP包,然后基于IP路由表转发给最终目的地。有时倒数第二跳会提前弹出,减少最后一跳的负担。
五、标签栈与流量工程
MPLS支持多层标签栈,可以嵌套。外层标签用于隧道转发,内层标签用于区分VPN或业务。这种机制使得MPLS能轻松实现MPLS VPN、流量工程、快速重路由等高级功能。