MPLS物种起源/报文格式

IP的危机

在90年代中期,当时路由器技术的发展远远滞后于网络的发展速度与规模,主要表现在转发效率低下、无法提供QOS保证。原因是:当时路由查找算法使用最长匹配原则,必须使用软件查找;而IP的本质就是“只关心过程,不注重结果”的“尽力而为”。当时江湖上流行一种论调:过于简单的IP技术无法承载网络的未来,基于IP技术的因特网必将在几年之后崩溃。

ATM的野心

此时ATM跳了出来,欲收编所有帮派,一统武林。不幸的是:信奉唯美主义的ATM走向了另一个极端,过于复杂的心法与招式导致没有任何厂商能够完全修练成功,而且无法与IP很好的融合。在与IP的大决战中最终落败,ATM只能寄人篱下,沦落到作为IP链路层的地步。

ATM技术虽然没有成功,但其中的几点心法口诀,却属创新

屏弃了繁琐的路由查找,改为简单快速的标签交换
将具有全局意义的路由表改为只有本地意义的标签表
这些都可以大大提高一台路由器的转发功力。
MPLS的创始人“label大师”充分吸取了ATM的精华,但也同时认识到IP为江湖第一大帮派,无法取而代之。遂主动与之修好,甘当IP的承载层,但为了与一般的链路层小帮有所区别,将自己定位在第2. 5层的位置。“label大师”本属于八面玲珑之人,为了不得罪其他帮派,宣称本帮是“multiprotocol”,来者不拒,也可以承载其他帮派的报文。在经过一年多的招兵、上下打点之后,于1997年的武林大会上,正式宣布本帮成立,并命名为MPLS(MultiProtocol label Switch) MPLS可以扩展到多种网络协议(如IPv6,IPX等)

MPLS在TCP/IP模型里面的位置

网工提款机---MPLS协议

MPLS包头结构

通常,MPLS包头有32Bit,其中有:
20Bit用作标签(Label)在本地有意义
3个Bit的EXP, 协议中没有明确,通常用作COS QOS打标用的
1个Bit的S,用于标识是否是栈底,表明MPLS的标签可以嵌套,S值为1时表明为最底层标签
8个Bit的TTL
网工提款机---MPLS协议
网工提款机---MPLS协议
二层首部的标签称为栈顶MPLS标签或外层MPLS标签
靠近IP首部的标签称为栈底MPLS标签或内层MPLS标签
理论上,标记栈可以无限嵌套,从而提供无限的业务支持能力。这是MPLS技术最大的魅力所在。

标签空间

0~15:特殊标签。如标签3,称为隐式空标签,用于倒数第二跳弹出;
16~1023:静态LSP和静态CR-LSP(Constraint-based Routed Label Switched Path,基于约束的标签交换路径)共享的标签空间;
1024及以上:LDP、RSVP-TE(Resource Reservation Protocol-Traffic Engineering,资源预留协议流量工程)、MP-BGP(MultiProtocol Border Gateway Protocol,多协议边界网关协议)等动态信令协议的标签空间。

抓包现象

网工提款机---MPLS协议

MPLS术语

LSP

LSP(Label Switched Path):标签交换路径,报文在MPLS网络中经过的路径,数据流所走的路径就是LSP。
网工提款机---MPLS协议

LSR

LSR:
Label Switching Router,用于标签的交换
LER:
Label Switching Edge Router,在MPLS的网络边缘,在MPLS网络中,用于标签的压入或弹出
网工提款机---MPLS协议

Ingress、Transit、 Egress

LSP的入口LER被称为入节点(Ingress)
位于LSP中间的LSR被称为中间节点(Transit)
LSP的出口LER被称为出节点(Egress)
一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点
网工提款机---MPLS协议

MPLS北斗阵法图

该阵法分为内外两层,外层由功力高强的弟子担纲(至少是个堂主(LER),在IP报文冲阵时负责接收IP报文,查找标签转发表,给IP报文打标签操作(PUSH)在IP报文出阵时对标签报文进行弹出操作(POP),按IP路由进行转发。
内层由功力较低的入门弟子组成,负责对标签报文进行快速的标签交换操作(SWAP)
网工提款机---MPLS协议

上游、下游

下游给上游分发标签
网工提款机---MPLS协议

FEC

Forwarding Equivalence Class,FEC(转发等价类),是在转发过程中以等价的方式处理的一组数据分组, MPLS创始人在秘笈本来规定:可以通过地址、隧道、COS等来标识创建FEC,只可惜后辈弟子大多资质愚钝,不能理解其中的精妙之处,所以我们现在看到的MPLS中只是一条路由对应一个FEC。通常在一台设备上,对一个FEC分配相同的标签。
网工提款机---MPLS协议
网工提款机---MPLS协议

LSP的建立方式

建立LSP的方式有两种:
静态LSP:用户通过手工方式为各个转发等价类分配标签建立转发隧道;
动态LSP:通过标签发布协议动态建立转发隧道
网工提款机---MPLS协议
in标签是我分给别人的
Out标签是别人分给我的

实验模拟

实验查看5.5.5.5分配标签的过程
网工提款机---MPLS协议

MPLS网络模型

控制平面:负责产生和维护路由信息以及标签信息。
路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)生成,用于选择路由。
标签分发协议LDP(Label Distribution Protocol):负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作。
标签信息表LIB(Label Information Base):由标签分发协议生成,用于管理标签信息。

转发平面:即数据平面(Data Plane),负责普通IP报文的转发以及带MPLS标签报文的转发。
转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,由标签分发协议建立LFIB,负责带MPLS标签报文的转发。

MPLS路由器上,报文的转发过程:
当收到普通IP报文时,查找FIB表,如果Tunnel ID为0x0,则进行普通IP转发;如果查找FIB表,Tunnel ID为非0x0,则进行MPLS转发。
网工提款机---MPLS协议

路由信息表RIB

网工提款机---MPLS协议

转发信息表FIB

网工提款机---MPLS协议

标签信息表LIB

网工提款机---MPLS协议

标签转发信息表LFIB

网工提款机---MPLS协议

Tunnel ID为非0x0

网工提款机---MPLS协议
网工提款机---MPLS协议
网工提款机---MPLS协议

MPLS基础配置

配置LSR ID

LSR ID用来在网络中唯一标识一个LSR。LSR没有缺省的LSR ID,必须手工配置。为了
提高网络的可靠性,推荐使用LSR某个Loopback接口的地址作为LSR ID

执行命令mpls lsr-id lsr-id,配置本节点的LSR ID

如果要修改已经配置的LSR ID,必须先在系统视图下执行undo mpls命令
执行undo mpls命令会删除所有MPLS配置,导致MPLS业务中断。因此,请配置前对
网络中每个LSR的LSR ID进行统一规划,避免出现修改LSR ID的情况

使能MPLS

执行命令system-view,进入系统视图。 
执行命令mpls,使能本节点的MPLS,并进入MPLS视图。 

缺省情况下,节点的MPLS能力处于未使能状态。

执行命令interface interface-type interface-number,配置需要转发MPLS报文的接口。
执行命令mpls,使能接口的MPLS。 

缺省情况下,接口的MPLS能力处于未使能状态。