学习笔记——MPLS基础

MPLS基础

  • 1. 简介
    • 1.1 MPLS特点
  • 2 MPLS术语
    • 标签(Label)
    • FEC
    • LSR
    • LSP
    • LFIB
    • 控制平面
    • 转发平面
  • 3 MPLS报文头结构
  • 4 MPLS网络结构
    • 4.1 入节点( Ingress)
    • 4.2 中间节点(Transit)
    • 4.3 出节点(Egress)
  • 5 建立LSP的方式
    • 5.1 手工配置静态LSP
    • 5.2 利用标签分发协议(LDP)动态建立LSP
  • 6. MPLS转发过程中的标签操作
  • 7. MPLS转发过程
  • 8. 倒数第二跳弹出(PHP)
    • 8.1 隐式空标签
    • 8.2 显式空标签
  • 9. 总结

1. 简介

MPLS(Multiprotocol Label Switching)多协议标签交换,其发挥IP路由灵活性的同事兼具二层交换的间接性,被广泛用于大规模网络中。

1.1 MPLS特点

  • 在MPLS网络中,设备根据短而定长的标签转发报文,省去了查找IP路由表的过程,为数据在骨干网络中的传送提供了一种高速高效的方法。
  • MPLS位于链路层和网络层中间,可以建立在链路层协议(如PPP, ATM, 帧中继, 以太网等)之上,为网络层(如IPv4, IPv6, IPX等)提供面向连接的服务。
  • 支持多层标签,面向连接,使MPLS有良好的扩展性,在MPLS网络基础上提供服务。

2 MPLS术语

标签(Label)

标签是定长的标识,通常只具有局部意义

FEC

Forwarding Equivalence Class, 转发等价类。MPLS 讲具有相同特征(目的相同或具有相同服务等级等)的报文归为一类,称为FEC。

LSR

Label Switching Router, 标签交换路由器。具有标签分发能力和标签交换能力的设备

LSP

Label Switching Path, 同属一个FEC的报文在MPLS网络中经过的路径叫LSP。
· LSP是单向报文的转发路径
· 在一条LSP中,沿着数据方向,相邻的LSP分别为上游LSR和下游LSR。

LFIB

Label Forwarding Information Base, 标签转发信息库(表)。与IP网络中的FIB类似,在MPLS网络中LSR接收到报文后查找LFIB信息库,获取对应的标签操作类型、出标值、下一条等,以确定如何转发报文。

控制平面

Control Plane, 负责标签分配,FEC-标签映射的交换,标签转发表的建立,标签交换路径的建立和拆除。

转发平面

Forwarding Plane, 依据标签转发表对收到的报文进行转发。

3 MPLS报文头结构

MPLS报文头有32bit,其中:

  1. 20bit 标签(Label),标识FEC
  2. 3bit EXP,协议中没有明确表示,但通常用作CoS(服务类别)
  3. 1bit 的栈底标识,表明这个标签是否为栈底,说明MPLS标签可以嵌套
  4. 8bit 的TTL(生存时间)
Label TC S TTL
20bits 3bits 1bits 8bits

4 MPLS网络结构

4.1 入节点( Ingress)

报文入口LSR,负责为进入MPLS的报文添加标签。

4.2 中间节点(Transit)

MPLS网络内部LSR,根据标签沿着由一系列的LSR构成的LSP将报文送给出口LSR。

4.3 出节点(Egress)

报文出口LSR,负责剥离报文标签,并转发给目的网络。

5 建立LSP的方式

5.1 手工配置静态LSP

  • 消耗资源少,但是不能动态调整
  • 适用于拓扑结构简单且稳定的小型网络

5.2 利用标签分发协议(LDP)动态建立LSP

  • 标签分发协议是MPLS的信令协议
  • 负责划分EFC,通告FEC-标签的绑定,建立维护LSP等。

6. MPLS转发过程中的标签操作

  • 压入(Push)
  • 交换(Swap)
  • 弹出(Pop)

7. MPLS转发过程

  1. 在Ingress接受报文时,根据报文IP查找FIB 获得出标签(假设为X),下一跳LSR(假设为LSR2,属于Transit节点)和出接口,Ingress Push标签,并将报文转发给下一LSR。
  2. LSR2根据标签X查找LFIB获取报文标签操作(Swap),出标签(假设为Y),下一跳LSR和出接口,节点将标签X替换为Y后,通过出接口将报文转发给下一LSR。
  3. 当Egress收到报文,根据标签Y查找LFIB表获取操作(Pop),下一跳LSR和出接口,Egress删除标签,从相应出接口发出,如果没有记录下一跳和出接口,则查询FIB根据IP发出报文。

8. 倒数第二跳弹出(PHP)

Penultimate Hop Popping,倒数第二跳弹出。
在MPLS网络中,Egress节点接收到带标签的报文后,查找标签转发表,弹出标签后在进行下一层的标签转发或IP转发。也就是Egress节点在转发报文之前要查找两次表:两次LFIB或者一次LFIB一次FIB。
利用PHP(Penultimate Hop Popping,倒数第二次弹出)功能,在Egress的前一节点处将标签弹出,这样在Egress节点只需要查找一次转发表就能直接将报文转发出去。

  • 减轻Egress的负担
  • 提高MPLS网络对报文的处理能力
  • 通过分配空标签实现

8.1 隐式空标签

隐式空标签取值为3,当一个LSR发现下游LSR他通告的标签为隐式空标签(LSR发现下一由LSR是Egress,Egress向上游通告标签值为3),则这个LSR不用值替换(Swap)原来的标签,而是直接将标签弹出,并将报文转发给下游LSR(即Egress)。Egress收到报文后,直接进行下一层转发处理。

8.2 显式空标签

显式空标签取值为0或者2(0用于IPv4网络,2用于IPv6网络)。在某些情况下,Egress需要根据签栈中的一些信息(例如TC,Traffic Class)进行QoS策略决定,显式空标签可以保留标签内容发送到Egress。当Egress收到报文时,检测到标签值为0或者2,Egress直接将标签弹出(Pop)而不去查表,再进行下一层转发处理。

9. 总结

MPLS是一种为了简化查找IP路由表,而使用标签功能指路,在报文进入Ingress时将具有相同FEC的报文压入(Push)标签,通告Transit,每个LSR通过查找LFIB,交换(Swap)标签后,将报文送入下一跳,使报文沿着LSP快速转发,使用PHP功能将标签(Label)在倒数第二跳弹出(Pop),最终到达Egress,再Egress中进行下一层转发处理。

你可能感兴趣的:(数通基础)