IPRAN中MPLS的基础(上)

IPRAN中MPLS的基础(上)

MPLS基本概念

1、MPLS网络结构

MPLS网络的典型结构如下图,MPLS网络的基本组成单元是标签交换路由器LSR(Label Switching Router),由LSR构成的网络区域称为MPLS域(MPLS Domain)。位于MPLS域边缘、连接其它网络的LSR称为边缘路由器LER(Label Edge Router),区域内部的LSR称为核心LSR(Core LSR)。如果一个LSR有一个或多个不运行MPLS的相邻节点,那么该LSR就是LER。如果一个LSR的相邻节点都运行MPLS,则该LSR就是核心LSR。

MPLS基于标签进行转发。IP包进入MPLS网络时,MPLS入口的LER分析IP包的内容并且为这些IP包添加合适的标签,所有MPLS网络中的节点都是依据标签来转发数据的。当该IP包离开MPLS网络时,标签由出口LER删除。

IP包在MPLS网络中经过的路径称为标签交换路径LSP(Label Switched Path)。LSP是一个单向路径,与数据流的方向一致。

LSP的起始节点称为入节点(Ingress);位于LSP中间的节点称为中间节点(Transit);LSP的末节点称为出节点(Egress)。一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和出节点。

2、转发等价类

转发等价类FEC(Forwarding Equivalence Class)是一组具有某些共性的数据流的集合。这些数据流在转发过程中被LSR以相同方式处理。

FEC可以根据地址、业务类型、QoS等要素进行划分。例如,在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个转发等价类。

3、标签

标签(Label)是一个短而定长的、只具有本地意义的标识符,用于唯一标识一个分组所属的FEC。在某些情况下,例如要进行负载分担,对应一个FEC可能会有多个入标签,但是一台CX设备上,一个标签只能代表一个FEC。标签与ATM的VPI/VCI以及Frame Relay的DLCI类似,是一种连接标识符。

标签长度为4个字节,封装结构如下图所示:

标签共有4个域:

  • Label:20bit,标签值域。
  • Exp:3bit,用于扩展。现在通常用做CoS(Class of Service),其作用与Ethernet802.1p的作用类似。
  • S:1bit,栈底标识。MPLS支持多层标签,即标签嵌套。S值为1时表明为最底层标签。
  • TTL:8bit,和IP分组中的TTL(Time To Live)意义相同。

标签封装在链路层和网络层之间,也就是在2、3层之间,所以我们常称MPLS为2.5层。这样,标签能够被任意的链路层所支持。标签在分组中的封装位置如下图所示:

4、标签空间

标签空间就是指标签的取值范围。CX600实现中,标签空间划分如下:

  • 0~15:特殊标签。特殊标签的详细介绍请参见下表。

  • 16~1023:静态LSP和静态CR-LSP共享的标签空间。

  • 1024以上:LDP、RSVP-TE、MP-BGP等动态信令协议的标签空间。

    动态信令协议的标签空间不是共享的,而是独立且连续的,互不影响。各个动态信令协议的标签空间由设备的许可证文件定义。如果要修改标签空间,需要修改许可证文件。

标签值 含义 描述
0 IPv4 Explicit NULL Label 表示该标签必须被弹出,且报文的转发必须基于IPv4。如果出节点分配给倒数第二跳节点的标签值为0,则倒数第二跳LSR需要将值为0的标签正常压入报文标签值顶部,转发给最后一跳。最后一跳发现报文携带的标签值为0,则将标签弹出。0标签只有出现在栈底时才有效。
1 Router Alert Label 只有出现在非栈底时才有效。类似于IP报文的“Router Alert Option”字段,节点收到Router Alert Label时,需要将其送往本地软件模块进一步处理。实际报文转发由下一层标签决定。如果报文需要继续转发,则节点需要将Router Alert Label压回标签栈顶。
2 IPv6 Explicit NULL Label 表示该标签必须被弹出,且报文的转发必须基于IPv6。如果出节点分配给倒数第二跳节点的标签值为2,则倒数第二跳节点需要将值为2的标签正常压入报文标签值顶部,转发给最后一跳。最后一跳发现报文携带的标签值为2,则直接将标签弹出。2标签只有出现在栈底时才有效。
3 Implicit NULL Label 倒数第二跳LSR进行标签交换时,如果发现交换后的标签值为3,则将标签弹出,并将报文发给下最后一跳。最后一跳收到该报文直接进行IP转发或下一层标签转发。
4~13 保留 -
14 OAM Router Alert Label MPLS OAM(Operation Administration & Maintenance)通过发送OAM报文检测和通告LSP故障。OAM报文使用MPLS承载。OAM报文对于Transit LSR和倒数第二跳LSR(penultimate LSR)是透明的。
15 保留 -

5、标签栈

标签栈(Label stack)是指标签的排序集合。MPLS报文支持同时携带多个标签,靠近二层首部的标签称为栈顶标签或外层标签;靠近IP首部的标签称为栈底标签,或内层标签。理论上,MPLS标签可以无限嵌套。

标签栈按后进先出(Last In First Out)方式组织标签,从栈顶开始处理标签。

6、标签操作类型

标签的操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作,是标签转发信息表的组成部分。

  • Push:指当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。
  • Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
  • Pop:当报文离开MPLS域时,将MPLS报文的标签去掉;或者MPLS倒数第二跳节点处去掉栈顶标签,减少标签栈中的标签数目。

除了上述三种基本的标签操作类型之外,在跨域VPN-OptionC的应用场景中,还存在以下两种特殊的标签操作类型:

  • Swappush:先将数据报文的内层标签交换,再压入另一个隧道的标签。
  • Popgo:先将数据报文的内层标签弹出,再压入另一个隧道的标签。

7、倒数第二跳弹出

在最后一跳节点,标签已经没有使用价值。这种情况下,可以利用倒数第二跳弹出特性PHP(Penultimate Hop Popping),在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。

PHP在Egress节点上配置。支持PHP的Egress节点分配给倒数第二跳节点的标签只有一种:

标签值3:表示隐式空标签(implicit-null),这个值不会出现在标签栈中。当一个LSR发现自己被分配了隐式空标签时,它并不用这个值替代栈顶原来的标签,而是直接执行Pop操作。Egress节点直接进行IP转发或下一层标签转发。

8、标签交换路由器

标签交换路由器LSR(Label Switching Router)是指可以进行MPLS标签交换和报文转发的网络设备,也称为MPLS节点。LSR是MPLS网络中的基本元素,所有LSR都支持MPLS协议。

9、LER

位于MPLS域边缘的LSR称为LER(Label Edge Router)。如果一个LSR有一个不运行MPLS的相邻节点,那么该LSR就是LER。

LER负责对进入MPLS域的报文划分FEC,并为这些FEC压入标签,进行MPLS转发。当报文离开MPLS域时弹出标签,恢复成原来的报文,再进行相应的转发。

10、标签交换路径

一个转发等价类在MPLS网络中经过的路径称为标签交换路径LSP(Label Switched Path)。

LSP在功能上与ATM和Frame Relay的虚电路相同,是从入口到出口的一个单向路径。

11、入节点、中间节点和出节点

标签交换路径LSP是一个单向路径,LSP中的LSRs可以分为:

  • 入节点(Ingress):LSP的起始节点,一条LSP只能有一个Ingress。

    Ingress的主要功能是给报文压入一个新的标签,封装成MPLS报文进行转发。

  • 中间节点(Transit):LSP的中间节点,一条LSP可能有多个Transit。

    Transit的主要功能是查找标签转发信息表,通过标签交换完成MPLS报文的转发。

  • 出节点(Egress):LSP的末节点,一条LSP只能有一个Egress。

    Egress的主要功能是弹出标签,恢复成原来的报文进行相应的转发。

12、上游和下游

根据数据传送的方向,LSR可以分为上游和下游。

  • 上游:以指定的LSR为视角,根据数据传送的方向,所有往本LSR发送MPLS报文的LSR都可以称为上游LSR。
  • 下游:以指定的LSR为视角,根据数据传送的方向,本LSR将MPLS报文发送到的所有下一跳LSR都可以称为下游LSR。

如下图所示,对于发往192.168.1.0/24的数据流来说,LSR-A是LSR-B的上游节点,LSR-B是LSR-A的下游节点。同理,LSR-B是LSR-C上游节点。LSR-C是LSR-B的下游节点。

13、标签分发

将目的地址相同的分组报文划分为一个FEC,然后从MPLS标签资源池中取出一个标签,分配给这个FEC。LSR记录该标签和FEC的对应关系,并将该对应关系封装成消息报文,通告给上游的LSR,这个过程称为标签分发。

如下图,LSR-B和LSR-C对去往192.168.1.0/24的报文划分为一个FEC,然后为该FEC分配标签,并向上游通告。因此标签是由下游分配的。

14、标签发布协议

标签发布协议是MPLS的控制协议(也可称为信令协议),负责FEC的分类、标签的分发以及LSP的建立和维护等一系列操作。

MPLS可以使用多种标签发布协议,例如LDP(Label Distribution Protocol)、RSVP-TE(Resource Reservation Protocol Traffic Engineering)和MP-BGP(Multiprotocol Border Gateway Protocol)。

15、MPLS的体系结构

MPLS的体系结构由控制平面(Control Plane)和转发平面(Forwarding Plane)组成。

MPLS体系结构如下图:

  • 控制平面是无连接的,主要功能是负责标签的分配、标签转发表的建立、标签交换路径的建立、拆除等工作。
  • 转发平面也称为数据平面(Data Plane),是面向连接的,可以使用ATM、帧中继、Ethernet等二层网络。转发平面的主要功能是对IP包进行标签的添加和删除,同时依据标签转发表对收到的分组进行转发。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xumeng32@126.com

文章标题:IPRAN中MPLS的基础(上)

文章字数:2.9k

本文作者:F_numen

发布时间:2020-04-12, 22:36:39

最后更新:2020-04-12, 23:21:02

原始链接:https://netheroone.cn/archives/7ca61859.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
/*baidu统计*/