概念(Multi-Protocol Label Switching,多协议标签交换)
- 一种根据标签转发的技术
- 可以承载在各种链路层协议上,如:PPP、ATM、帧中继、以太网
- 可以承载各种网络层报文,如:IPV4、IPV6
- 采用无连接的控制平面,实现路由信息的传递和标签的分发
- 采用面向连接的数据平面,实现报文在建立的标签转发路径上传送

实际应用场景
- VPN(Virtual Private Network,虚拟专用网)
- TE(Traffic Engineering,流量工程)
- QoS(Quality of Service,服务质量)
MPLS VPN应用
基于MPLS的VPN通过LSP将私有网络的不同分支联结起来,形成一个统一的网络,用户设备无需为VPN配置GRE、L2TP等隧道,网络时延被降到最低

MPLS TE应用
通过动态监控网络的流量和网络单元的负载,实时调整流量管理参数、路由参数和资源约束参数等,使网络运行状态迁移到理想状态,优化网络资源的使用,避免负载不均衡导致的拥塞

报文结构

| 字段 | 备注 |
|---|
| Label | 20bit,用于报文转发 |
| EXP(Experimental Use) | 20bit,用于报文转发 |
| S(Bottom of Stack) | 1bit,栈底标志,表明是否是最后一个标签(MPLS标签可以多层嵌套) |
| TTL | 8bit,类似IP头部的TTL,用来防止报文环路 |
Label
较短,定长,只有本地意义,用于唯一标识去往同一目的地址的报文分组,标签空间如下:
| 标签空间 | 备注 |
|---|
| 0-15 | 特殊保留标签,如标签3(隐式空标签,用于倒数第二跳弹出) |
| 16-1023 | 静态LSP和静态CR-LSP共享的标签空间 |
| 1024及以上 | LDP、RSVP-TE、MP-BGP等动态信令协议的标签空间 |
LSP的建立

| 方式 | 备注 |
|---|
| 静态LSP | 通过手动方式为各个FEC分配标签建立转发隧道 |
| 动态LSP | 通过标签发布协议动态建立转发隧道 |
静态LSP
- 不使用标签发布协议,不需要交互控制报文,资源消耗比较小
- 通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预
- 适用于拓扑结构简单并且稳定的小型网络

配置原则:上游节点出标签=下游节点入标签
动态LSP
- 通过标签发布协议(LDP、MP-BGP、RSVP-TE)动态建立
- 实现对FEC的分类、标签的分配以及LSP的建立和维护等
- 组网配置简单,易于管理和维护
- 网络拓扑发生变化时,能及时反应网络状况
- 标签由下游LSR分配,按从下游到上游的方向分发

MPLS转发过程


| 术语 | 备注 |
|---|
| Tunnel ID | 为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID的长度为32bit,只是本地有效 |
| NHLFE | Next Label Forwarding Entry,下一跳标签转发表项;用于指导MPLS报文的转发。包括Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息。FEC到一组NHLFE的映射称为FTN(FEC-to-NHLFE)。FIB表中Tunnel ID值不为0x0的表项,能够获得FTN的详细信息。FTN只在Ingress存在 |
| ILM | Incoming Label Map,入标签映射;入标签到一组下一跳标签转发表项的映射;ILM在Transit节点的作用是将标签和NHLFE绑定。通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息 |
MPLS环路检测机制
| 机制 | 备注 |
|---|
| IGP环路检测机制 | RIP、OSPF各自的防环机制 |
| TTL环路检测 | 帧模式的MPLS中使用TTL;信元模式的MPLS中无TTL,使用LDP环路检测机制 |
| LDP环路检测机制 | 距离向量法;最大跳数法 |
TTL环路检测

MPLS对TTL的处理模式
| 模式 | 备注 |
|---|
| Uniform | MPLS TTL和IP TTL相互同步,中间节点只处理MPLS TTL |
| Pipe | MPLS TTL设置为固定值,IP TTL只在入和出节点分别减1 |
LDP环路检测
| 机制 | 备注 |
|---|
| 距离向量法 | LSR发送标签请求时,添加自己的LSR ID |
| 最大跳数法 | LSR发送标签请求时,更新Hop Count,如果到达预设的最大值,丢弃 |
距离向量法

最大跳数法

Uniform

Pipe
