一.简介
- MPLS,称之为多协议标签交换,在九十年代中期被提出来,用于解决传统IP报文依赖查表转发而产生的瓶颈,现多用于VPN技术,MPLS报头封装在数据链路层之上,网络层之下。
- 本文为结合了华为技术和新华三技术的大成,即结合了HCIA,HCIP,HCIE Datacom和H3CNE-RS+,H3CSE-RS+,H3CIE-RS+。本文将主要介绍MPLS的基本概念,博主将会在MPLS专栏中持续更新关于MPLS的进阶内容。
二.MPLS基础
1.MPLS概述
(1)传统IP路由转发
- 传统的IP转发采用的是逐跳转发。数据报文经过每一台路由器,都要被解封装查看报文网络层信息,然后根据路由最长匹配原则查找路由表指导报文转发。各路由器重复进行解封装查找路由表和再封装的过程,所以转发性能低。
(2)MPLS基本概念
- MPLS位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。
- 通过在数据链路层和网络层之间增加额外的MPLS头部,基于MPLS头部实现数据快速转发。
- 本模块仅介绍MPLS在IP网络中的应用。
2.MPLS术语
(1)LSR与MPLS域
- MPLS域(MPLS Domain):一系列连续的运行MPLS的网络设备构成了一个MPLS域。
- LSR(Label Switching Router,标签交换路由器):支持MPLS的路由器(实际上也指支持MPLS的交换机或其他网络设备)。位于MPLS域边缘、连接其它网络的LSR称为边沿路由器LER(Label Edge Router),区域内部的LSR称为核心LSR(Core LSR)。
(2)LSR分类
- 除了根据LSR在MPLS域中的位置进行分类之外,还可以根据对数据处理方式的不同进行分类:
- 入站LSR(Ingress LSR):通常是向IP报文中压入MPLS头部并生成MPLS报文的LSR。
- 中转LSR(Transit LSR):通常是将MPLS报文进行例如标签置换操作,并将报文继续在MPLS域中转发的LSR。
- 出站LSR(Egress LSR):通常是将MPLS报文中MPLS头部移除,还原为IP报文的LSR。
(3)FEC
- FEC(Forwarding Equivalence Class,转发等价类)是一组具有某些共性的数据流的集合,这些数据流在转发过程中被网络节点以相同方式处理。
- 在MPLS网络中,FEC可以通过多种方式划分,例如基于目的IP地址及网络掩码、DSCP等特征来划分。
- 数据属于哪一个LSP,由数据进入MPLS域时的Ingress LSR决定。
- MPLS标签通常是与FEC相对应的,必须有某种机制使得网络中的LSR获得关于某FEC的标签信息。
(4)LSP
- LSP(Label Switched Path,标签交换路径)是标签报文穿越MPLS网络到达目的地所走的路径。
- 同一个FEC的报文通常采用相同的LSP穿越MPLS域,所以对同一个FEC,LSR总是用相同的标签转发。
3.MPLS标签
(1)MPLS标签介绍
- IP报文进入MPLS域之前,会被入站LSR压入MPLS头部(又叫MPLS标签),形成一个MPLS标签报文。标签报文可以包含一个或多个MPLS标签。
- 标签(Label):用于携带标签值,长度20bit。
- EXP(Experimental Use):主要用于CoS(Class of Service),长度3 bit。
- S(Bottom ofStack):栈底位,用于指示该标签头部是否为最后一层标签,长度1bit。如果该字段为1,则表示当前标签头部为栈底;如果该字段为0,则表示当前标签头部之后依然还有其他标签头部。
- TTL(Time To Live):用于当网络出现环路时,防止标签报文被无限制转发,与IP报文头部中的TTL具有相同的意义,长度8 bit。
(2)MPLS标签栈
- MPLS支持一层或多层标签头部,这些标签头部的有序集合被称为标签栈(Label Stack)。
- 当标签栈中存在多个标签时,这些标签的顺序是非常讲究的:
- 最靠近二层头部的标签是栈顶标签,标签中的S字段为0。
- 最靠近IP头部的标签是栈底标签,标签中的S字段为1。
(2)标签空间
标签是一个短而定长的、只具有本地意义的标识符。标签空间就是指标签的取值范围。标签值的范围及规划如下:
(3)MPLS标签的处理
- LSR对标签的操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop)。
三.MPLS转发
1.基本概念
(1)MPLS转发概述
- MPLS转发的本质就是将数据归到对应的FEC并按照提前建立好的LSP进行转发。
- 对于整个MPLS域,LSP是某一给定的FEC进入域和离开域的路径,可以看成是LSR的有序集合。
- 对于单台LSR,需要建立标签转发表,用标签来标识FEC,并绑定相应的标签处理和转发等行为。
- 同一个FEC,若进入MPLS域的Ingress LSR(入站LSR)不同,转发时的LSP也不相同。
- 同一个FEC,LSR的处理方式相同,不论这个FEC来自哪里(进入设备的接口)。
- LSR的转发动作决定了LSP,而标签转发表确定转发动作,所以建立标签转发表也可以理解为建立LSP。
- 如图所示,因为有着相同的目的地,所以这三份数据属于同一个转发等价类FEC1。同时由于入站LSR不同,这些数据将分别在LSP1、LSP2和LSP3上被转发。因为标签仅具有本地意义,所以每台LSR上给同一FEC分配的标签,可以相同,也可以不同。
(2)MPLS体系结构
- MPLS的体系结构由控制平面(Control Plane)和转发平面(Forwarding Plane)组成。
- 控制平面
- 控制平面是无连接的,主要功能是负责产生和维护路由信息以及标签信息。
- 控制平面包括:
- 路由信息表RlB(RoutingInformation Base):由IP路由协议(IP Routing Protocol)、静态路由和直连路由共同生成,用于选择路由。
- 标签信息表LIB(Label Information Base):用于管理标签信息,LIB中的表项可由标签交换协议(LDP、RSVP等协议)或静态配置生成。
- 转发平面:
- 转发平面也称为数据平面,是面向连接的,主要功能是负责普通IP报文的转发以及带MPLS标签报文的转发。
- 转发平面包括:
- 转发信息表FlB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
- 标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,负责带MPLS标签报文的转发。
2.LSP建立
(1)LSP建立原则
- 当网络层协议为IP协议时,FEC所对应的路由必须存在于LSR的IP路由表中,否则该FEC的标签转发表项不生效。
- LSR用标签标识指定FEC,所以该FEC的数据被发送至LSR时,必须携带正确的标签,才能被LSR正确的处理。
(2)LSP建立方式
MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种。
(3)MPLS标签转发
- LSR处理报文时主要根据FTN、NHLFE和ILM。
3.标签转发
(1)Ingress LSR的处理
- 在Ingress LSR,通过查询FIB表(得到FTN信息)和NHLFE表指导报文的转发。
- 当IP报文进入MPLS域时,首先查看FIB表,检查目的IP地址对应的TunnelID值是否为0x0。
- 如果TunnelID值为0x0,则进入正常的IP转发流程。
- 如果TunnelID值不为0x0,则进入MPLS转发流程。
(2)Transit LSR的处理
- 在Transit LSR,通过查询ILM表和NHLFE表指导MPLS报文的转发。
(3)Egress LSR的处理
- 在Egress LSR,通过查询ILM表指导MPLS报文的转发。
(4)MPLS详细转发流程
四.静态LSP配置
1.基本配置命令
标签:IP,标签,报文,配置,MPLS,LSR,转发,原理 From: https://blog.csdn.net/Lxyand1/article/details/145233000说明:MPLS配置实验会在本专栏持续更新,可以持续关注。