MPLS 术语介绍
MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPv6(Internet Protocol version 6)、IPX(Internet Packet Exchange)、Appletalk、 DECnet、CLNP(Connectionless Network Protocol)等。MPLS中的“Multiprotocol”指的就是支持多种网络协议。
- MPLS以标签交换替代IP转发。标签是一个短而定长的、只具有本地意义的标识符,MPLS标签是MPLS头部。.
- MPLS位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。
- 在网络层和数据链路才能增加MPLS协议头部,实现快速转发。
- MPLS域: 一系列连续的运行MPLS的网络设备构成了一个MPLS域
- LSR (Label Switching Router,):标签交换路由器。支持MPLS路由器(实际上也指支持MPLS交换机或其他网络设备)。LSR需要建立标签转发表,用标签来标识FEC,并绑定相应的标签处理和转发行为。
- LSP(Label Switching Path,标签交换路径):?是标签报文穿越MPLS网络到达目的地所走的路径。对于整个MPLS域LSP是某一个给定的FEC进入域和离开域的途径,MPLS域可以看成是LSP的有序集合
- LER(Label Edge Router,边沿路由器): 位于MPLS域边缘。连接其他网络的LSR被称为边沿路由器LER。区域内部的LSR称为核心LSR(Core LSR)
- LDP(Label Distribution Portocol,标签分发协议):LDP是多协议标签交换MPLS的一种控制协议,负责转发等价类FEC的分类、标签的分配以及标签交换路径LSP的建立和维护等操作
- 入站LSR(Ingress LSR); 通常是向IP报文中压入MPLS头部并生成MPLS报文的LSR数据属于哪一个LSP,有数据进入MPLS域时的Ingress LSR决定
- 中转LSR(Transit LSR): 通常是将MPLS报文进行置换操作,并将报文继续在MPLS域中转发的LSR
- 出站LSR(Egress LSR): 通常是将MPLS报文中MPLS头部移除,还原为IP报文的LSR
- 一条LSP包含一台入站LSR、一台出站LSR以及数量可变的中转LSR,因此LSP也可以看做是这些LSR的有序集合。LSP需要在数据转发开始前建立完成,只有这样报文才能顺利穿越MPLS域。?? LSP可通过静态和动态两种方式建立。需要注意的是,LSP是一个从“起点”到“终点”的单向路径,若需要双向数据互通,则需要在双方之间建立双向的LSP。
- FEC (Forwarding Equnivalence Class,转发等价类): 是一组具有某些共性的数据流的集合,这些数据流在转发的过程中被网络节点以相同的方式处理、
- 在MPLS网络组FEC可以通过多种方式划分,例如基于目的IP,网络掩码,DSCP等特征来划分。
- MPLS标签通常与FEC相对应的,必须有某种机制使得网络中的LSR获得 关于某FEC的标签信息。
- 在传统的采用最长匹配算法的IP转发中,匹配到同一条路由的所有报文就是一个转发等价类。
- 在MPLS中,关于FEC最常见的例子是:目的IP地址匹配同一条IP路由的报文被认为属于同一个FEC
MPLS 标签
P报文在进入MPLS域之前会被LSP压入MPLS标签(这个地方,华为教材上说是 ?LSR创建MPLS标签,个人理解更具体准确的应该是LER。)
1、MPLS包头
- Iabel:20bits,代表标签范围(0~2^20)
- EXP:3bits,实验位(experimenal行eld),用于做QOS
- S: 1bit,栈底位,用于表示紧跟着标签的下一个头部是另外一个标签,还是IP包(栈底位为0 代表不是最后一个标签 为1代表是最后一个标签)
- TTL:8bits,用于防环
- 标签小于1024都有特殊意义,给普通路由分发的标签大于等于1024。
- EXP字段在早期的MPLS标准中被定义,意为试验性的字段,但实际上该字段主要被用于CoS。为了避免歧义,RFC5462重新定义了该字段,命名为流分类(Traffic Class)
2、标签栈
- MPLS支持一层或者多层标签头部,这些标签头部的有序集合被称为标签栈(Label Stack)。
- 标签排序:最靠近二层的标签S字段为0,靠近IP头部的标签S字段为1.
- 当上层为MPLS标签栈时,以太网头部中的Type字段为0x8847,PPP头部中的Protocol字段为0x8281。
3、标签空间
- 标签是一个短而且定长的、只具有本地意义的标识符。
- 标签空间就是指标签的取值范围。
- 只具有本地意义说明每一台LSR之间的标签空间是相互独立的,即每台路由器都可以使用完整的标签空间。
4、MPLS标签的处理
- LSR对标签的操作类型包括标签压入(Push )、标签交换(Swap )和标签弹出(Pop)。
- 压入:IP报文进入MPLS域时,MPLS边界设备在报文二层头部和IP头部之间插入一个新标签;MPLS中间设备也可很据需要,在标签栈顶增加一个新的标签。
- 转发:当报文在MPLS域内转发时,根据标签转发,用下一跳分配的标签替换MPLS报问的钱顶标签。
- 弹出:当报文离开MPLS域时,将MPLS痕文的标签去掉。
MPLS转发
- MPLS转发本质就是将数据归到对应的FEC,并按照之前创建好的LSP进行转发。
- 同一个FEC,若进入MPLS域的Ingress LSR(入站LSR)不同,转发时的LSP也不相同。
- 同一个FEC,LSR的处理方式相同,不论这个FEC来自哪里(进入设备的接口)。LSR的转发动作决定了LSP,而标签转发表确定转发动作,所以建立标签转发表也可以理解为建立LSP。
- 如图所示,因为有着相同的目的地,所以这三份数据属于同一个转发等价类FEC1。同时由于入站LSR不同,这些数据将分别在LSP1、LSP2和LSP3上被转发。因为标签仅具有本地意义,所以每台LSR上给同一FEC分配的标签,可以相同,也可以不同。
MPLS体系结构
- MPLS体系结构有转发平面(Forwarding Pane)和控制平面(Control Plane)组成
- 控制平面(Control Plane)负责产生和维护路由信息以及标签信息。控制平面包含路由协议和路由信息,标签协议和标签信息表。
- 路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)、静态路由和直连路由共同生成,用于选择路由。
- 标签信息表LIB(Label Information Base):用于管理标签信息,LIB中的表项可由标签交换协议(LDP、RSVP等协议)或静态配置生成。
- 转发平面(Forwarding Pane),也称作数据平面(Data Plane)负责普通IP报文转发以及带MPLS标签的报文转发。是面向连接的。包括IP转发信息表和标签转发信息表。
- IP转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
- ?标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,负责带MPLS标签报文的转发。
MPLS LSP 简述
1、LSP建立的原则
- 当网络层协议为IP协议时,FECP所对应的路由必须存在于LSR的IP路由表中,否则该FEC的标签转发表项不生效。
- LSR用标签标识指定FEC,所以该FEC的数据被发送至LSR时,必须携带正确的标签,才能被LSR正确的处理。
-
2、LSP的建立方式
MPLS需要事先为报文分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种。
? ? ? ? ①静态LSP使用户手工为各个FEC分配标签而建立的。
? ? ? ? ②静态LSP不使用标签发布协议不需要交互控制报文,因此消耗资源较小。
? ? ? ?③ 静态LSP不能根据网络拓扑变化调整,需要管理员干预。
? ? ? ? ④静态LSP应用场景,适用于拓扑比较简单并且固定的小型网络。
? ? ? ? ⑤由于静态LSP各节点上不能相互感知到整个LSP的情况,因此静态LSP是一个本地的概念。
? ? ? ? ①动态LSP通过标签发布协议动态建立
? ? ? ? ②标签的发布协议是MPLS的控制协议(也可以称为信令协议),负责FEC的分类、标签的分发以及LSP的建立和维护等一系列操作
? ? ? ? ③常用的标签分发协议:标签分发协议-LDP(Label Distribution Portocol),LDP是多协议标签交换MPLS的一种控制协议,负责转发等价类FEC的分类、标签的分配以及标签交换路径LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。
? ? ? ? ④应用场景,广分应用于VPN服务上,具有组网、配置简单、支持基于路由动态LSP、支持大容量LSP等优点。
? ? ? ? ⑤其他标签分布协议:
????????????????RSVP-TE:Resource Reservation Protocol Traffic Engineering,它是对RSVP的扩展,用于建立基于约束的LSP。它拥有普通LDP LSP没有的功能,如发布带宽预留请求、带宽约束、链路颜色和显式路径等。
????????????????MP-BGP:Multiprotocol Border Gateway Protocol,MP-BGP是在BGP协议基础上扩展的协议。MP-BGP支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配标签。
? ? ? ? ①静态LSP分配原则:前一个出标签的值等于下一个节点的入标签的值。
? ? ? ? ②动态LSP分配原则,根据不同分配协议来分配,例如LDP、RSVP-TE、MP-BGP。
3、MPLS标签转发
LSP处理报文时候主要是根据FTN、NHLFE和ILM。
Tunnel ID:为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID的长度为32比特,只是本地有效。在MPLS转发过程中,FIB、ILM和NHLFE表项是通过Tunnel ID关联的。
??①Ingress LSR处理过程
????????在Ingress LSR,通过查询FIB表(得到FTN信息)和NHLFE表指导报文的转发。当IP报文进入MPLS域时,首先查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0。
?????????如果Tunnel ID值为0x0,则进入正常的IP转发流程。
?????????如果Tunnel ID值不为0x0,则进入MPLS转发流程。
②Transit LSR处理过程
在Transit LSR,通过查询ILM表和NHLFE表指导MPLS报文的转发。
③Egress LSR处理过程