MPLS多协议标签交换

1.简介
1.1 MPLS(Multiprotocol Label Switching,多协议标签交换),主要用于骨干网数据包路由交换,通过使用标签交换的概念,
  在第二层和第三层数据包中加入标签,路由器通过标签转发数据包,提高包转发速率,多协议是因为标签在二三层中,可以为
  多种协议提供交换服务,目前MPLS在vpn、流量工程、Qos应用广泛
1.2 基本概念
  A. FEC(Forwarding Equivalence Class,转发等价类)MPLS将具有相同特征(目的地相同或具有相同服务等级等)的报文
  归为一类,称为FEC,相同的FEC有相同的处理操作
  B. 标签:是一个长度固定、只具有本地意义的标识符,用于唯一标识一个报文所属的FEC,一个标签只能代表一个FEC

  

   Lable:标签值,长度20bits,用来标识一个FEC
   TC(Traffic Class,流量等级):3bits,用于QoS
   S:标签栈底标识位,长度为1bit,用于表示是否多标签,1为是,0为否
   TTL:8bits,和IP报文中的TTL意义相同,可以用来防止环路
  C.LSR(标签交换路由器):是具有标签分发能力和标签交换能力的设备
  E.LFIB(标签转发信息库):标签操作类型、出标签值、下一跳等,以确定如何转发该报文

  

1.3 工作原理
  A. LSP的建立:有两种方式,手动和自动
   手动:在各个LSR上建立各个FEC的标签,适用与小型的网络
      自动:各个LSR利用标签分发协议(LDP、MP-BGP、RSVP-TE)动态建立LSP
  B. 转发过程:

  

   Device B 收到不带标签的报文,检查FIB,查到出标签40,下一跳Device C,出接口Interfce B1,然后把报文加上标签转发出去
   Device C 收到带标签的报文,查找LFIB,查到出标签50,下一跳Device D,出接口Interface C1,用新标签50替换40转发出去
   Device D 收到带标签的报文,因为D是Egress,所以查找LFIT后,删除标签,配置下一跳和出接口转发,如果没有下一跳,就查找
   本地FIB进行转发
2.MPLS术语介绍 - LSR分类
 入站LSR(Ingress LSR):通常是向IP报文中压入MPLS头部并生成MPLS报文的LSR。
 中转LSR(Transit LSR):通常是将MPLS报文进行例如标签置换操作,并将报文继续在MPLS域中转发的LSR。
 出站LSR(Egress LSR):通常是将MPLS报文中MPLS头部移除,还原为IP报文的LSR。

3.MPLS标签的处理
 LSR对标签的操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop)。
   


4.MPLS转发概述
 MPLS转发的本质就是将数据归到对应的FEC并按照提前建立好的LSP进行转发。
 对于整个MPLS域,LSP是某一给定的FEC进入域和离开域的路径,可以看成是LSR的有序集合。
 对于单台LSR,需要建立标签转发表,用标签来标识FEC,并绑定相应的标签处理和转发等行为。
   


5.MPLS体系结构
  

  


6.LSP建立原则
 当网络层协议为IP协议时,FEC所对应的路由必须存在于LSR的IP路由表中,否则该FEC的标签转发表项不生效。
 LSR用标签标识指定FEC,所以该FEC的数据被发送至LSR时,必须携带正确的标签,才能被LSR正确的处理。
   
对某一FEC,设备上存在进(In)标签和出(Out)标签,分别表示该FEC的数据接收时和发送时所携带的标签。
 以R2转发到4.4.4.0/24的数据为例,R1为R2的上游(Upstream)LSR,R3为R2的下游(Downstream)LSR。为确保标签报文能被正确的处理和转发,那么R1发给R2的报文所携带的标签与R2上绑定到4.4.4.0/24的相同,即R1的出标签等于R2的入标签。同理,R2关于4.4.4.0/24这条FEC的出标签必须等于R3的入标签



7.LSP建立方式
 MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种
 1.静态LSP:
 基本概念:
 静态LSP是用户通过手工为各个FEC分配标签而建立的。
 静态LSP不使用标签发布协议,不需要交互控制报文,因此消耗资源比较小。
 通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预。
 应用场景:
 适用于拓扑结构简单并且稳定的小型网络。
 标签分配原则:
 前一节点出标签的值等于下一个节点入标签的值。
 2.动态LSP
 基本概念:
 动态LSP通过标签发布协议动态建立。
 标签发布协议是MPLS的控制协议(也可称为信令协议),负责FEC的分类、标签的分发以及LSP的建立和维护等一系列操作。
 常用标签发布协议:标签分发协议 (LDP)
 全称:Label Distribution Protocol。
 定义:LDP是多协议标签交换MPLS的一种控制协议,负责转发等价类FEC的分类、标签的分配以及标签交换路径LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。
 应用场景:LDP广泛地应用在VPN服务上,具有组网、配置简单、支持基于路由动态建立LSP、支持大容量LSP等优点

8.MPLS标签转发
 LSR处理报文时主要根据FTN、 NHLFE和ILM
   


9.Ingress LSR的处理
 当IP报文进入MPLS域时:
 Ingress LSR查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0(如果Tunnel ID值为0x0,则进入正常的IP转发流程)。
 如果Tunnel ID值不为0x0,根据FIB表的Tunnel ID找到对应的NHLFE表项,将FIB表项和NHLFE表项关联起来。
 查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型。
 在IP报文中压入出标签,同时处理TTL,然后将封装好的MPLS报文发送给下一跳。

10.Transit LSR的处理
 当MPLS报文在MPLS域转发时:
 Transit LSR根据MPLS的标签值查看对应的ILM表,得到Tunnel ID。
 根据ILM表的Tunnel ID找到对应的NHLFE表项。
 查看NHLFE表项,得到出接口、下一跳、出标签和标签操作类型,标签操作类型为Swap,则交换标签

11.Egress LSR的处理
 当MPLS报文需要离开MPLS域时:
 Egress根据ILM查询到该标签对应的操作为Pop,说明需要剥离该标签
 根据当前标签头部的下一层报文头部进行下一步处理
 S=1,表明该标签是栈底标签,直接进行IP转发。
 S=0,表明还有下一层标签,根据下一层标签。

12.MPLS基本配置
 1.配置LSR ID:mpls lsr-id命令用来配置LSR的ID。LSR ID用来在网络中唯一标识一个LSR。LSR没有缺省的LSR ID,必须手工配置。为了提高网络的可靠性,推荐使用LSR某个Loopback接口的地址作为LSR ID并在配置前对网络中所有LSR的LSR ID进行统一规划
 [Huawei] mpls lsr-id lsr-id
 2.使能MPLS
 [Huawei] mpls