MPLS基础

MPLS标签

mpls的标签长度是定长的(4字节)bytes [跟IP长度一样大小,所以对报文带来的负担不特别大]只加了4个字节的固定长度,对于报文来说还是很好处理的

20位的标签位+3位的EXP位(兼容IPQos的优先级位)+1位栈底位(靠近IP层的就是栈底位)+8位的ttl位(防环)

栈底位为0 代表不是最后一个标签 为1代表是最后一个标签

--把多个标签的集合称为标签栈

TTL 在标签转发的时候没有必要对IP的ttl值做处理,但是会把ip的ttl值放入标签头部的ttl值字段上做处理

在链路层上也要对标签之后的报文做标识,告诉设备报文后有标签

----在以太网的类型字段里会加上0*8847,告诉设备二层处理完后,处理标签 ppp链路的协议字段为0*8281

标签空间

标签空间就是指标签的取值范围

0-15:特殊标签,所有厂商几乎如此

0:IPv4显式空标签 (在报文抓包的时候,报文会携带一个标签等于0的标签,告诉路由器把标签叫换成0发给下游设备,用于保留标签中的报文优先级,用于不丢失标签中的exp信息,方便下游设备根据exp对qos进行优化)

1:路由告警标签(只有出现在非栈底时才有效,需要前往本地软件模块进一步处理,实际报文转发由下一层标签决定)

2:IPv6的显式空标签

3:隐式空标签(告诉路由器要把顶部标签弹出,所以抓包的时候永远抓不到这个标签)

4-13:保留

14:OAM路由告警标签(通过发送OAM报文检测和通告LSP故障,OAM报文使用MPLS承载,OAM报文对于transitLSR和倒数第二跳LSR是透明的

15:保留

16-1023:华为上是静态的LSP和静态的CR-LSP(流量工程)共享的标签空间

1024~1048575:LDP,RSVP-TE,MP-BGP等动态信令协议的标签空间

思科跟华为是不一样的除了0-15的特殊标签

MPLS标签的处理

push(压入)

如果没有标签就压入一个标签,如果已经有了标签还可以再压入标签,push会让标签变多

swap(交换)

不会导致标签数量的变化,把标签换成另外一个标签,数量不变,对顶部标签进行交换,不会对内部标签进行交换

pop(弹出)

弹出顶部标签,如果2个标签动作是pop把顶部标签弹出,根据内部标签作转发

null(空)

当动作为null时,就是把所有标签(整个标签栈)弹出,基于IP转发

转发决策都是基于顶部标签进行

MPLS转发概述

MPLS转发的本质是将数据归到对应的FEC并按照提前建立好的LSP进行转发

对于整个MPLS域,LSP是某一给定的FEC进入域和离开域的路径,可以看成LSR的有序集合

对于单台LSR,需要建立标签转发表,用标签来标识FEC,并绑定相应的标签处理和转发等行为

MPLS体系结构

MPLS的体系结构由控制平面和转发平面组成

控制平面

负责产生和维护路由信息以及标签信息

控制平面包括IP路由协议和路由信息表,标签分发协议和标签信息表

转发平面

数据平面,负责普通IP报文的转发以及带MPLS标签报文的转发

转发平面包括IP转发信息表和标签转发信息表

LDP 标签发布协议 (标准协议)

----用来负责为FEC去生成标签的一个协议,并且进行标签发布的一个协议

TDP 标记发布协议 (思科私有)

LDP 是根据TDP进行标准化

路由协议负责路由产生和发布 FEC的产生

LDP协议 负责标签的生成和发布 根据FEC进行标签产生,发布,维护

IP报文或者带有标签的报文在设备收到后在转发平面上执行表项的查表就可以执行转发的动作,无需送到控制层面进行处理

一个报文进入的时候能不能找到对应的FEC,取决于路由条目

静态LSP

[huawei]mplslsr-id //配置LSR的ID,推荐使用loopback口作为LSR ID

[huawei]mpls //mpls命令用来使能本节点的全局MPLS能力

[huawei-g0/0/0]mpls //在互联的物理接口之间开启mpls

静态LSP要完全匹配路由表上的条目才生效

中间节点没有做FEC的区分,只要根据标签转发就行了,出节点也不需要做FEC的区分

MPLS的转发过程

Ingress节点收到目的地址为4.4.4.2的报文,压入标签Z并转发

Transit节点收到该标签报文,进行标签交换,将标签Z换成标签Y

倒数第二跳Transit节点收到带标签Y的报文,因为Egress分给它的标签值为3,所以进行PHP操作,弹出标签Y并转发报文,从倒数第二跳转发给Egress的报文以IP报文形式传输

Egress节点收到该IP报文,将其转发给目的地4.4.4.2/32

TunnelID

为了给使用隧道的上层应用(如VPN,路由管理)提供统一的接口,系统自动为隧道分配一个ID,也称tunnelID,该TunnelID的长度为32比特,只是本地有效

NHLFE

下一跳标签转发表项NHLFE用于指导MPLS报文的转发

NHLFE包括:TunnelID,出接口,下一跳,出标签,标签操作类型等信息

FEC到一组NHLFE的映射称为FTN,通过查看FIB表中TunnelID值不为0x0的表项,能够获得FTN的详细信息,FTN只在Ingress存在

ILM

入标签到一组下一跳标签转发表项的映射称为入标签映射ILM

ILM包括:TunnelID,入标签,入接口,标签操作类型等信息

ILM在Transit节点的作用是将标签喝NHLFE绑定,通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息

你可能感兴趣的:(华为数通,网络)