4.9 多协议标签交换 MPLS

MPLS (MultiProtocol Label Switching):互联网建议标准。

多协议:在 MPLS 的上层可以采用多种协议。

标签:MPLS 利用面向连接技术,使每个分组携带一个叫做标签 (label) 的小整数。标签交换路由器用标签值检索转发表,实现分组的快速转发。

1、MPLS 特点

MPLS 并没有取代 IP,而是作为一种 IP 增强技术。

特点: 支持面向连接的服务质量; 支持流量工程,平衡网络负载; 有效地支持虚拟专用网 VPN。

4.9.1  MPLS 的工作原理

当网络很大时,查找路由表要花费很多时间。

在出现突发通信时,缓存会溢出,引起分组丢失、传输时延增大和服务质量下降。

1、MPLS 基本工作过程

1)MPLS 特点:

在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度标签。

对打上标签的 IP 数据报在第二层(链路层)用硬件进行转发。

采用硬件技术对打上标签的 IP 数据报进行转发就称为标签交换。

可以使用多种数据链路层协议,如 PPP、以太网、ATM 以及帧中继等。

2)MPLS 协议的基本原理

3)MPLS 域

MPLS 域 (MPLS domain) :指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR (Label Switching Router)。

LSR 同时具有标记交换和路由选择这两种功能。标记交换功能是为了快速转发,路由选择功能是为了构造转发表。

4)MPLS 的基本工作过程

(1)找出标签交换路径 LSP。

各 LSR 使用标签分配协议 LDP (Label Distribution Protocol) 交换报文,找出和标签相对应的标签交换路径 LSP (Label Switched Path)。整个标签交换路径就像一条虚连接一样。

(2)打标签,然后转发。

入口节点 (ingress node) 给进入 MPLS 域的 IP 数据报打上标签(实际上是插入一个 MPLS 首部),并按照转发表把它转发给下一个 LSR。以后的所有 LSR 都按照标签进行转发。

给 IP 数据报打标签的过程叫做分类 (classification)。

(3)标签对换。

一个标签仅在两个 LSR 之间才有意义。

LSR 要做两件事:转发,更新标记。

更新标记:把入标记更换成为出标记。称之为标签对换 (label swapping)。

(4)去除标签。

当分组离开 MPLS 域时,MPLS 出口节点 (egress node) 把分组的标签去除。

把 IP 数据报交付给非 MPLS 的主机或路由器。

这种“由入口 LSR 确定进入 MPLS 域以后的转发路径”称为显式路由选择 (explicit routing)。

与互联网中通常使用的“每一个路由器逐跳进行路由选择”有着很大的区别。

2、转发等价类 FEC

1)给 IP 数据报打标签的过程叫做分类 (classification)。

第三层(网络层)分类:只使用 IP 首部中的源和目的 IP 地址等。

大多数运营商实现了第四层(运输层)分类:除了要检查 IP 首部外,运输层还要检查 TCP 或 UDP 端口号。

有些运营商则实现了第五层(应用层)分类:进一步地检查数据报的内部并考虑其有效载荷。

2)转发等价类 FEC (Forwarding Equivalence Class) :路由器按照同样方式对待的分组的集合。

按照同样方式对待含义:从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。

例如: (1) 目的 IP 地址与某一个特定 IP 地址的前缀匹配的 IP 数据报; (2) 所有源地址与目的地址都相同的 IP 数据报; (3) 具有某种服务质量需求的 IP 数据报。

3)划分 FEC 的方法不受限制,由网络管理员来控制。

入口节点并不是给每一个 IP 数据报指派一个不同的标签,而是将属于同样 FEC 的 IP 数据报都指派同样的标签。

FEC 和标签是一一对应的关系。

3、FEC 用于负载平衡

自定义的 FEC 可以更好地管理网络的资源。这种均衡网络负载的做法也称为流量工程 TE (Traffic Engineering) 或通信量工程。

4.9.2  MPLS 首部的位置与格式

MPLS 不要求下层的网络都使用面向连接的技术。

MPLS 采用封装技术:在把 IP 数据报封装成以太网帧之前,先要插入一个 MPLS 首部。

1、MPLS 首部的格式

给 IP 数据报打上标记就是在以太网帧首部和 IP 数据报首部之间插入一个 4 字节的 MPLS 首部。

(1)标签值(占 20 位),可以同时容纳高达 220 个流(即 1048576 个流)。

(2)试验(占 3 位)。保留用作试验。

(3) 栈S(占 1 位)。在有“标签栈”时使用。

(4)生存时间 TTL(占 8 位),用来防止 MPLS 分组在 MPLS 域中兜圈子。

4.9.3  新一代的 MPLS

MPLS 存在的问题:

控制协议(如 LDP)比较复杂,扩展性差,运行维护较困难。

协议 LDP 无法做到基于时延或带宽等要求的流量调度。

为灵活地选择流量的转发路径,还需要再使用资源预留协议 RSVP。但是: RSVP 的信令非常复杂,每个节点都要维护一个庞大的链路信息数据库。 RSVP 只会选择一条最优路径,不支持等价多路径路由选择 ECMP (Equal-Cost Multipath Routing) 。

1、段路由选择协议 SR 

新一代的 MPLS:段路由选择协议 SR (Segment Routing)。

段 (segment):标签,是转发指令的一种标识符。

SR 工作原理: 基于标签交换,但不需要使用协议 LDP。 由源节点为发送的报文指定路径,并将路径转换成有序的段列表 (Segment List),即 MPLS 标签栈,它被封装在分组首部。 网络中的其他节点就执行首部中的指令(即标签)进行转发。

2、控制器

即 SDN 控制器。负责: 收集并掌握全网的拓扑信息和链路状态信息,计算出分组应传送的整个路径。 给分组分配 SR 标签,指明分组从源点到终点的路径。

注:SR 向 IPv6 演进,这就是 SRv6。 SRv6 直接利用 IPv6 字段作为标签寻址 (Locator)。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐