一、MPLS 简介
MPLS(Multi-Protocol Label Switching,多协议标签交换)是一种IP 骨干网技术。MPLS起源于IPv4,其核心技术可扩展到多种网络协议,包括IPv6、IPX和CLNP等。MPLS可以支持多种高层协议和业务,而在一定程度上可以保证信息传输的安全性。
二、基本术语 LSR、MPLS Domain、LER、LSP、Ingress LSR、Egress LSR、Transit LSR、FEC
LSR(Lable Switch Router,标签交换路由器):支持MPLS的路由器、支持MPLS的交换机或其他网络设备,该设备能根据报文的MPLS标签头对其进行转发(如图:R1、R2、R3)。
MPLS Domain(MPLS 域):由连续的LSR构成的一个MPLS域。
LER(Label Edge Router):位于MPLS域边缘的LSR,(如图:R1、R3)。
LSP(Label Switch path,标签交换路径):是标签报文穿越MPLS域到达目的地所走的路径。
(1)LSP实际上是一种类拟Tunnel的概念,LSP的建立过程实际上也是报文转发路径中,沿途设备关于特定FEC的标签的确定过程。
(2)LSP可以通过手工的方式建立(静态LSP),或者通过标签分发协议自动建立(动态LDP)。
Ingress LSR(入站LSR):LSP的入口LSR(如图:R1)。
Transit LSR(中转LSR):位于LSP中间的LSR(如图:R2)。
Egress LSR(出站LSR):LSP的出口LSR(如图:R3)。
注:在图中,对于去往 3.3.3.0/24的数据流量而言,R1是Ingress LSR、R2是Transit LSR、R3是Egress LSR,一条LSP可以有0个、一个或多个Transit LSR,但有且只有一个Ingress LSR和一个Egress LSR。
FEC(Forwarding Equivalence Class,转发等价类):是在转发过程中具有相同处理方式和处理待遇的数据流,可通过IP地址、隧道、COS等方式来标识一个FEC。例如:在传统的采用最长匹配算法的IP转发中,在同一条路由的所有报文就是一个转发等价类。
(1)通常在一台设备上,对于一个FEC分配相同的标签。
(2)属于一个FEC的流量具有相同的转发方式、转发路径和转发待遇。但是并不是所有拥有相同标签的报文都属于一个FEC,因为这些报文的EXP值可能不相同,执行方式可能不同。
(3)决定报文属于哪一个FEC的设备是Ingress LSR,因为是它对报文进行分类和压入标签。
三、MPLS架构
3.1 MPLS 控制和数据平面
控制平面(Control plane)
(1)控制平面是无连接的,主要功能是负责产生和维护路由信息以及标签信息。
(2)控制平台中IP路由协议(IP Routing Protocol)模块用来传递路由信息,生成路由信息表,标签分发协议(Label Distributilon Protocol)模块用来完成标签信息的交换,建立标签转发路径。
数据平面(Data plane)
(1)数据平台也称为转发平面,是面向连接的,主要功能是负责普通IP报文的转发以及带MPLS标签报文的转发。
(2)数据平面包括IP转发信息表(Forwarding Information Base)和标签转发信息表(Label Forwarding Information Base),当收到普通IP报文时,则查找IP路由表转发,如果需要标签转发,则查找标签转发信息表。
3.2 MPLS 控制和数据表项
控制平面(Control plane)
(1)路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)生成,用于选择路由。
(2)标签分析协议LDP(Label Distribution Protocol):负责标签的分配、标签转发信息表的建立、标签交换路径的建立、析除。
(3)标签信息表LIB(Label Information Base):由标签分发协议生成,用于管理标签信息。
数据平面(Data plane)
(1)转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
(2)标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,由标签转发协议在LSR上建立LFIB,负责带 MPLS标签报文的转发。
四、MPLS标签结构
Label(20bit):标签字段,用于存储标签值。
EXP(3bit):实验位,通常用做Cos(Class of Service),当设备阻塞时,优先发送优先级高的报文。
Bos(1bit):栈底位,用于标识标签头部是否为最后一层标签。如为1,则表示当前标签为栈底;如为0,则表示当前标签头部后还有标签。
TTL(8bit):防止无限转发。
注:LSR收到数据帧后,如何判断封装的是IP报文还是标签?以以太环境为例,以太帧头中的Type字段用于标识封装的报文类型,如果值为0x800,则表示为IP报文,如值为8847(单播)或8848(组播),则表示MPLS标签报文。
五、MPLS标签的处理
标签的操作类型包括 标签压入(Push,或Insert)、标签交换(Swap)、标签弹出(Pop),它们是标签转发的基本动作,是标签转发信息表的组成部分。
Push:指当IP报文进入MPLS域时,LER设备在报文二层头部和IP头部之间插入一个新标签;或者中转LSR设备,在标签栈顶增加一个新的标签(即标签嵌套)。
Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
Pop:当报文离开MPLS域时,将MPLS报文的标签去掉。
六、LSP的建立
MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种。
静态LSP的建立:
(1)静态LSP不能使用标签发布协议,不需要交互控制报文,因此消耗资源小,适用于拓扑结构简单并且稳定的小型网络。
动态LSP的建立(MPLS可以使用多种标签发布协议):
(1)LDP:是专为标签发布而制定的协议。LDP根据IGP、BGP路由信息通过逐跳方式建立LSP。
(2)RSVP-TE:是RSVP的扩展,用于建立基于约束的LSP,它拥有普通LSP没有的功能,如带宽预留、带宽约束、显式路径等。
(3)MP-BGP:是在BGP协议基本上扩展的协议,MP-BGP支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配标签。
七、静态LSP
(1)静态LSP是用户通过手工为各个转发等价类分配标签而建立的。
(2)手式分配标签遵循的原则是:上游LSR出标签的值就是下游LSR入标签的值。
八、静态LSP实例
1、在网络中部署OSPF,使得MPLS Domain内的路由实现互通。
2、在设备上激活MPLS
R1的配置如下(R2、R3、R4配置类拟):
[R1] mpls lsr-id 1.1.1.1 //配置lSR-ID
[R1] int gi0/0/0
[R1-Gi0/0/0] mpls en //在接口激活mpls
[R1-Gi0/0/1] mpls en //两个方向的接口 激活mpls
3、配置静态LSP
R1的配置
[R1] static-lsp ingress to4 destination 4.4.4.0 24 nexthop 12.1.1.2 out-label 200
R2的配置
[R2] static-lsp transit to4 in-label 200 nexthop 23.1.1.3 out-label 300
R3的配置
[R3]static-lsp transit to4 in-label 300 nexthop 34.1.1.4 out-label 400
R4的配置
[R4] static-lsp egress to4 in-label 400
注:LSP需要配置两个方向的LSP,即两条LSP。
八、相关命令
dis ip routing-table //查看全局路由表
dis fib //查看转发表
dis mpls static-lsp //查看lsp路径
ping mpls
tracert mpls