MPLS 原理与配置
- MPLS 基础
- 1. MPLS 概述
- (1)传统IP路由转发的特点
- (2)MPLS 基本概念
- 2. MPLS术语
- (1)MPLS 域:
- (2)LSR(标签交换路由器):
- (3)LSR分类(对数据处理方式的不同)
- (4)FEC(转发等价类)
- (5)LSP(标签交换路径)
- 3. MPLS 标签
- (1)MPLS 标签(mpls_vpn_test)
- (2)MPLS标签栈
- (3)标签空间
- (4)MPLS标签的处理
- MPLS 转发
- 1. 基本概念
- (1)MPLS 转发概述
- (2)MPLS 体系结构
- (3)控制平面与转发平面
- 2. LSP建立
- (1)LSP建立原则
- (2)LSP建立方式
- 3. 标签转发
- (1)MPLS 标签转发概述
- (2)Ingress LSR的处理
- (3)Transit LSR的处理
- (4)Egress LSR的处理
- (5)MPLS详细转发流程
- 静态 MPLS 转发
- 1. MPLS基本配置命令:
- 2. 静态LSP配置命令:
- 3. 配置注意事项
MPLS 基础
1. MPLS 概述
(1)传统IP路由转发的特点
所有路由器需要知道全网的路由;
IP头部不定长,处理效率低;
传统IP转发是面向无连接的,无法提供较好的端到端QoS保证。
(2)MPLS 基本概念
MPLS起源于IPv4,其核心技术可扩展到多种网络协议,包括IPv6、IPX、CLNP等。
MPLS以标签交换替代IP转发。
2. MPLS术语
(1)MPLS 域:
一系列连续的运行MPLS的网络设备构成了一个MPLS域。
(2)LSR(标签交换路由器):
支持MPLS的路由器
LER(边沿路由器):位于MPLS域边缘、连接其它网络的LSR
Core LSR(核心LSR):区域内部的LSR
(3)LSR分类(对数据处理方式的不同)
入站LSR(Ingress LSR):通常是向IP报文中压入MPLS头部并生成MPLS报文的LSR。
中转LSR(Transit LSR):通常是将MPLS报文进行例如标签置换操作,并将报文继续在MPLS域中转发的LSR。
出站LSR(Egress LSR):通常是将MPLS报文中MPLS头部移除,还原为IP报文的LSR。
(4)FEC(转发等价类)
FEC是一组具有某些共性的数据流的集合,这些数据流在转发过程中被网络节点以相同方式处理。
在传统的采用最长匹配算法的IP转发中,匹配到同一条路由的所有报文就是一个转发等价类。
在MPLS中,FEC可以通过多种方式划分:
基于目的IP地址及网络掩码(最常见)
DSCP(差分服务代码点)等
(5)LSP(标签交换路径)
标签报文穿越MPLS网络到达目的地所走的路径。
一条LSP包含一台入站LSR、一台出站LSR以及数量可变的中转LSR,因此LSP也可以看做是这些LSR的有序集合。
LSP可通过静态和动态(LDP协议)两种方式建立。
注意:LSP是一个从“起点”到“终点”的单向路径,若需要双向数据互通,则需要在双方之间建立双向的LSP。
3. MPLS 标签
(1)MPLS 标签(mpls_vpn_test)
关键字段:
标签(Label):用于携带标签值,长度20bit。
EXP(Experimental Use):主要用于CoS(Class of Service),长度3bit。
S(Bottom of Stack):栈底位,
用于指示该标签头部是否为最后一层标签,长度1bit。
如果值为1,则表示当前标签头部为栈底;
如果值为0,则表示当前标签头部之后依然还有【其他标签头部】。
TTL(Time To Live):用于当网络出现环路时,防止标签报文被无限制转发,与IP报文头部中的TTL具有相同的意义,长度8bit。
(2)MPLS标签栈
MPLS支持一层或多层标签头部,这些标签头部的有序集合被称为标签栈(Label Stack)。
当标签栈中存在多个标签时,这些标签的顺序是非常讲究的:
最靠近二层头部的标签是栈顶标签,标签中的S字段为0。
最靠近IP头部的标签是栈底标签,标签中的S字段为1。
(3)标签空间
标签是一个短而定长的、只具有本地意义(每一台LSR之间的标签空间是相互独立的,即每台路由器都可以使用完整的标签空间)的标识符。
标签空间就是指标签的取值范围。
0~15:特殊标签值。
16~1023:静态LSP、静态CR-LSP的共享标签空间
1024~1048575:LDP、RSVP-TE、MP-BGP等动态信令协议的标签空间;
(4)MPLS标签的处理
LSR对标签的操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop)。
标签压入:报文进入MPLS域时,MPLS边界设备插入一个新标签;
中间设备可根据需要,在标签栈顶增加一个新的标签。
标签交换:报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
标签弹出:报文离开MPLS域时,将MPLS报文的标签去掉。
MPLS 转发
1. 基本概念
(1)MPLS 转发概述
MPLS转发的本质就是将数据归到对应的FEC并按照提前建立好的LSP进行转发。
对于整个MPLS域,LSP是某一给定的FEC进入域和离开域的路径,可以看成是LSR的有序集合。
对于单台LSR,需要建立标签转发表,用标签来标识FEC,并绑定相应的标签处理和转发等行为。
LSR的转发动作决定了LSP,而标签转发表确定转发动作,所以建立标签转发表也可以理解为建立LSP。
(2)MPLS 体系结构
控制平面 (Control Plane):
控制平面是无连接的,负责产生和维护路由信息以及标签信息。
控制平面包括IP路由协议和路由信息表,标签分发协议和标签信息表。
转发平面(Forwarding Plane):
也称数据平面(Data Plane),负责普通IP报文的转发以及带MPLS标签报文的转发。
转发平面包括IP转发信息表和标签转发信息表。
(3)控制平面与转发平面
2. LSP建立
(1)LSP建立原则
当网络层协议为IP协议时,FEC所对应的路由必须存在于LSR的IP路由表中,否则该FEC的标签转发表项不生效。
LSR用标签标识指定FEC,所以该FEC的数据被发送至LSR时,必须携带正确的标签,才能被LSR正确的处理。
(2)LSP建立方式
静态LSP:
概念:用户通过手工为各个FEC分配标签而建立的。
优点:静态LSP不使用标签发布协议,不需要交互控制报文,因此消耗资源比较小。
缺点:通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预。
动态LSP:
概念:动态LSP是通过标签发布协议动态建立。
标签发布协议是MPLS的控制协议,负责FEC的分类、标签的分发以及LSP的建立和维护等一系列操作。
常用标签发布协议:标签分发协议 (LDP)
其他标签分布协议:RSVP-TE、MP-BGP等
3. 标签转发
(1)MPLS 标签转发概述
LSR处理报文时主要根据FTN、 NHLFE和ILM。
FTN(FEC-to-NHLFE):当LSR收到IP报文并需要进行MPLS转发时使用,FTN只在Ingress存在,包括:Tunnel ID、FEC到NHLFE的映射信息。
NHLFE(下一跳标签转发表项):LSR对报文进行MPLS转发时使用,NHLFE在Ingress和Transit存在,包括Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息。
ILM(入标签映射):用于指导MPLS报文的转发,ILM只在Transit和Egress存在,包括:Tunnel ID、入标签、入接口、标签操作类型等信息。
[R3]diagnose
[R3-diagnose]display mpls nhlfe
[R3-diagnose]display mpls ilm
(2)Ingress LSR的处理
在Ingress LSR,通过查询FIB表(得到FTN信息)和NHLFE表指导报文的转发。
当IP报文进入MPLS域时,首先查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0(如果Tunnel ID值为0x0,则进入正常的IP转发流程);
如果Tunnel ID值不为0x0,根据FIB表的Tunnel ID找到对应的NHLFE表项,将FIB表项和NHLFE表项关联起来;
查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型;
在IP报文中压入出标签,同时处理TTL,然后将封装好的MPLS报文发送给下一跳。
(3)Transit LSR的处理
在Transit LSR,通过查询ILM表和NHLFE表指导MPLS报文的转发。
Transit LSR根据MPLS的标签值查看对应的ILM表,得到Tunnel ID;
根据ILM表的Tunnel ID找到对应的NHLFE表项;
查看NHLFE表项,得到出接口、下一跳、出标签和标签操作类型,标签操作类型为Swap,则交换标签。
(4)Egress LSR的处理
在Egress LSR,通过查询ILM表指导MPLS报文的转发。
Egress根据ILM查询到该标签对应的操作为Pop,说明需要剥离该标签;
根据当前标签头部的下一层报文头部进行下一步处理。
(5)MPLS详细转发流程
静态 MPLS 转发
1. MPLS基本配置命令:
[R2]mpls lsr-id 10.0.2.2 //LSR ID唯一标识一个LSR。无缺省的LSR ID,须手工配置。
[R2]mpls //来使能本节点的全局MPLS能力
2. 静态LSP配置命令:
[R2]static-lsp ingress 2to5to4 destination 46.0.0.0 24 nexthop 25.0.0.5 out-label 200
[R5]static-lsp transit 2to5to4 incoming-interface GigabitEthernet0/0/0 in-label 200 nexthop 45.0.0.4 out-label 500
[R4]static-lsp egress 2to5to4 incoming-interface GigabitEthernet0/0/1 in-label 500
3. 配置注意事项
配置静态LSP时需要遵循的原则是:前一节点出标签的值等于下一个节点入标签的值。
配置静态LSP时,需要注意配置的静态LSP的路由一定要和路由信息完全匹配。如下面所示:
如果在配置静态LSP时指定了下一跳,则在配置IP静态路由时也必须指定下一跳,否则不能建立静态LSP。
如果LSR之间使用动态路由协议互通,则LSP的下一跳IP地址必须与路由表中的下一跳IP地址一致。