MPLS协议
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包头有32Bit,其中有:
20Bit用作标签(Label)在本地有意义
3个Bit的EXP, 协议中没有明确,通常用作COS QOS打标用的
1个Bit的S,用于标识是否是栈底,表明MPLS的标签可以嵌套,S值为1时表明为最底层标签
8个Bit的TTL
二层首部的标签称为栈顶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术语
LSP
LSP(Label Switched Path):标签交换路径,报文在MPLS网络中经过的路径,数据流所走的路径就是LSP。
LSR
LSR:
Label Switching Router,用于标签的交换
LER:
Label Switching Edge Router,在MPLS的网络边缘,在MPLS网络中,用于标签的压入或弹出
Ingress、Transit、 Egress
LSP的入口LER被称为入节点(Ingress)
位于LSP中间的LSR被称为中间节点(Transit)
LSP的出口LER被称为出节点(Egress)
一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点
MPLS北斗阵法图
该阵法分为内外两层,外层由功力高强的弟子担纲(至少是个堂主(LER),在IP报文冲阵时负责接收IP报文,查找标签转发表,给IP报文打标签操作(PUSH)在IP报文出阵时对标签报文进行弹出操作(POP),按IP路由进行转发。
内层由功力较低的入门弟子组成,负责对标签报文进行快速的标签交换操作(SWAP)
上游、下游
下游给上游分发标签
FEC
Forwarding Equivalence Class,FEC(转发等价类),是在转发过程中以等价的方式处理的一组数据分组, MPLS创始人在秘笈本来规定:可以通过地址、隧道、COS等来标识创建FEC,只可惜后辈弟子大多资质愚钝,不能理解其中的精妙之处,所以我们现在看到的MPLS中只是一条路由对应一个FEC。通常在一台设备上,对一个FEC分配相同的标签。
LSP的建立方式
建立LSP的方式有两种:
静态LSP:用户通过手工方式为各个转发等价类分配标签建立转发隧道;
动态LSP:通过标签发布协议动态建立转发隧道
in标签是我分给别人的
Out标签是别人分给我的
实验模拟
实验查看5.5.5.5分配标签的过程
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转发。
路由信息表RIB
转发信息表FIB
标签信息表LIB
标签转发信息表LFIB
Tunnel ID为非0x0
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能力处于未使能状态。