hcnp-mpls

MPLS基础

mpls(多协议标签交换)其实是一种把三层路由信息映射为二层交换路径的交换方式。因为在mpls交换中,首先是基于IP路由表在通信路径上建立用于指导mpls报文转发的LSP(标签转发路径或MPLS隧道)。mpls其在无连接的IP网络上引入面向连接(邻居设备间必须先建立某种连接)的标签交换概念,将三层路由技术和二层交换技术结合。mpls起源于IPv4网络,但目前其核心技术可以通过扩展支持多种网络层协议(IPv6,IPX,CLNP)以及数据链路层协议(以太网,PPP,HDLC),这也就是‘多协议’的含义。

mpls与传统的IP路由方式相比,在数据转发时,MPLS只需要在网络边缘分析IP报头,而不用在每一跳都分析IP报头,节约了处理时间,提高了转发效率。

MPLS网络架构

mpls网络的典型结构如图1-1。

网络中各路由器称为LSR(Label Switching Router,标签交换路由器)。由这些LSR构成的网络区域称为MPLS域,其中位于MPLS域边缘,连接其他网络的LSR称为LER(Label Edge Router,边缘路由器),mpls域内的LSR称为核心LSR(Core LSR)。IP报文在MPLS网络中所经过的路径称为LSP(Label Swiched Path,标签交换路径)。一条LSP可以有0个,1个或者多个中间节点,但有且只有一个入节点和一个出节点。根据LSP的方向,MPLS报文由Ingress发往Egress,则ingress是transit的上游节点,transit是egress的上游节点。

LSP是单向的,要实现隧道两端所连接网络的互通,需要建立反方向的LSP。

 mpls的基本工作过程如图1-2。首先mpls/ip骨干网中的设备会为隧道两端LER上链接的每个公网网段(称之为FEC,等价转发类)建立一条LSP,路径上每台设备都会为该LSP分配一个用于指导mpls报文转发的下一条和出接口相映射。使得mpls报文在骨干网中传输时可以直接依据各设备上为该报文所分配的mpls标签进行转发。但mpls标签不是固定不变的,随着报文的传输,每经过一个设备都要进行标签替换。本质上来讲,mpls报文在骨干网中的转发过程实质上就是mpls报文中mpls标签的逐跳交换的过程

 当IP报文进入mpls域的LER时,首先根据其目的IP地址找到的是其对应的FIB(转发信息表)表项,如果其中的Tunnel ID值不为0,则表示要进行MPLS标签转发,若为0则表示采用IP路由转发。

MPLS标签

mpls标签是一个短而定长,只具有本地意义(无需全网唯一)的整数形式的数字标识符,用于唯一标识一个分组所属的分类即FEC。一个FEC中的分组数据在同一台设备上都以等价的方式进行处理,且被分配相同的MPLS标签。

MPLS中的FEC

mpls将具有相同特征的报文归为同一FEC,这个相同特征可以根据报文中的源/目的IP地址,源/目的端口,VPN实例,QoS策略等要素中的一个或多个进行划分,通常是根据目的IP地址基于IP路由表项进行划分。

在每台MPLS设备上,每个FEC与MPLS标签之间有一个映射关系,但针对同一FEC,不同设备上分配的标签可以相同,也可以不相同。

MPLS标签封装

在不同应用中MPLS标签嵌入的位置不完全相同,在大多数mpls应用中(BGP/MPLS IP VPN,各种VLL和PWE3),mpls设备从用户端设备接收数据帧后,会在原来数据帧中的二层协议头和三层协议头之间插入一个或多个mpls标签。

 MPLS标签字段

无论使用哪种封装方式,一个MPLS标签占4个字节。

字段 长度 含义
Label 20比特 标签值字段,用来标识一个FEC。该字段的取值范围称为‘标签空间’
EXP 3比特 标识mpls报文的优先级,范围0-7,值越小优先级越低
S 1比特 MPLS支持多重标签。值为1时表示为最底层标签。
TTL 8比特 和IP分组中的TTL意义相同,可以用来防止环路。

MPLS标签栈

如果MPLS报文中封装了多个MPLS标签(如既有LDP LSP标签,又有BGP LSP标签,MPLS CR-LSP标签或VC标签),就形成了标签栈(label stack)。如下图所示是一个包含有两个MPLS标签的示意图,靠近二层帧头的标签称为栈顶MPLS标签或者外层MPLS标签,此时S位置0。

 MPLS标签中‘Lable字段’的取值范围不同,标签的用途也不同

0-15:这是16个特殊标签,如下表

 16-1023:这是专门分配给静态LSP和应用与MPLS TE中的静态CR-LSP共享的标签空间

1024及以上:这是分配给LDP,RSVP-TE及MP-BGP等动态信令协议所分配的标签空间。即动态分配的MPLS标签只能大于1024

MPLS体系结构

MPLS体系结构是由控制平面和转发平面(或者数据平面)两部分组成。

控制平面

用于控制协议报文的转发,其依靠IP路由和MPLS标签两方面来实现。MPLS骨干网中的LSR都是三层设备,需要依靠IP路由实现互通,而外部进入到MPLS骨干网的报文又要直接依靠MPLS进行转发,所以要控制IP报文和MPLS报文的转发就需要有产生,维护路由和标签信息的能力。这就是控制平面得分基本功能。控制平面包括3个子项

RIB(routing information base,路由信息表):RIB由各种IP路由协议生成,用于进行路由选择。骨干网中MPLS标签的分发,LSP的建立仍要依据IP路由表,即先按照FIB(转发信息表)进行MPLS标签分发,建立对应的LSP,然后MPLS域中的设备才可以按照标签进行数据转发

LDP(标签分发协议):是一种动态标签分发协议,负责MPLS标签的动态分发,LFIB(标签转发信息表)的建立,标签交换路径的建立,拆除等工作。

LIB(Label Information Base,标签信息表):MPLS标签与IP路由中的RIB对应的就是LIB,由LDP生成,保存了每个标签与FEC的映射关系。LIB中包含:FEC网段,入标签,出标签,分发出标签的下游节点。

转发平面

转发平面用于指导报文的转发,即数据平面。包括IP报文和MPLS报文的转发。转发平面包括两个子项:

FIB(Forwarding Information Base,转发信息表):用于指导IP报文的转发,是从RIB中提取得到的,仅提取当前有效的路由表项信息。当报文离开MPLS域时要按FIB进行转发。FIB中包含:,目的网段,出接口,下一跳IP地址,路由标记,路由优先级。

LFIB(Label Forwarding Information Base,标签转发信息表):用于指导MPLS报文转发,从LIB中提取得到。LFIB包含:目的网段,出接口,下一跳,入标签,出标签。

 LSP简介

静态LSP

静态LSP是通过手工方式为各个转发等价类分配标签而建立的,不需要标签分发协议的参与,也不需要IP路由参与(但此时仍需要在MPLS域内部署路由,以实现骨干网内各LSR的三层互通)。

在静态LSP配置中,对于MPLS域中不同节点所需配置的标签不一样:
入节点:只需配置出标签

中间节点:同时配置出标签和入标签

出节点:只需配置入标签

静态LSP不使用标签发布协议,不需要交互控制报文,资源消耗较少,适用于网络拓扑简单且稳定的小型网络。

动态LSP

动态LSP是通过标签发布协议(如:LDP,MP-BGP,RSVP-TE)动态建立的,但同时也需要IP路由参与。

LDP:最常用的标签分发协议,它依据IGP和BGP对应的IP路由信息以逐跳的方式建立LSP

MPLS基本工作原理

mpls技术基本工作原理主要涉及MPLS标签动作,MPLS报文转发流程,以及对MPLS报文中的TTL处理三个方面

MPLS标签动作

标签动作:压入(push),交换(swap),弹出(pop)。

push:可能会在Ingress或Transit节点上发生。

swap:会发生在Transit节点上。

pop:会发生在倒数第二跳Transit节点(比如PHP会在倒数第二跳弹出标签)或者Egress节点上。

MPLS报文转发涉及的基本概念

Tunnel ID:为了给使用隧道的上层应用(VPN,路由管理)提供统一接口,系统会自动为隧道分配一个ID(也可手动配置),称为Tunnel ID。该ID长度为32比特,只具有本地意义。

NHLFE(Next Hop Label Forwarding Entry,下一跳标签转发表项):用于指导MPLS报文的转发,它包括:Tunnel ID,出接口,下一跳,出标签,标签操作类型。

FTN(FEC to NHLFE):FEC与NHLFE的映射关系。它只存在于Ingress节点上。因为只有Ingres节点才需要用到FEC中的分类信息查找所需压入的出标签。

ILM(Incoming Label Map):入标签与NHLFE的映射关系。ILM包含:Tunnel ID,入标签,入接口,标签操作类型。

 当IP报文从Ingress节点进入MPLS域时,首先查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0。如果是0x0,则进入正常的IP转发流程;否则进入MPLS转发流程

在MPLS转发过程中,FIB,ILM,NHLFE表项都是通过Tunnel ID关联的。

 MPLS对TTL的处理

MPLS对TTL的处理包括对TTL的处理模式和ICMP响应报文这两个方面。

mpls对TTL的处理模式

MPLS标签中包含一个8比特的TTL字段,其含义与IP报头中的TTL字段相同,都是用于限制报文在传输过程中所经过得分二层设备数。

MPLS对TTL的处理模式:Uniform(统一)和Pipe(管道)。缺省情况下为Uniform。

Uniform模式:该模式下,针对IP报头中的TTL字段,最终在离开MPLS域时其值仍是减少了MPLS中所经过的跳数,只是在MPLS域内传输时,IP报头TTL字段的改变移植到了MPLS标签中的TTL字段,然后在离开MPLS域时再反向移植到IP报头的TTL字段。

 Pipe模式:在该模式下,IP报头中的TTL字段会把所经过的MPLS网络的中间节点忽略,将其看作两端边缘节点通过一个管道的直连。也就是无论在MPLS网络中经过多少三层设备,从MPLS入节点到出节点之间,IP报头的TTL字段只减1。但此时MPLS标签的TTL为某一个值,且还会逐跳减1。

 ICMP响应报文

在MPLS网络中,当LSR收到TTL为1(表示不能再向下传了)的含有标签的mpls报文时,会生成一个ICMP的TTL超时消息。LSR将TTL超时消息回应给报文发送者的方式有两种:

(1)如果LSR上存在到达报发送者的路由,则可以通过IP路由,直接向发送者回应TTL超时消息

(2)如果LSR上不存在到达报文发送者的路由,则ICMP响应报文将按照LSP继续传送,到达LSP出节点后,由Egress节点将该消息返回给发送者。

通常情况下,当收到的MPLS报文只带一层标签时,LSR可以采用第一种方式回应TTL超时消息,因为此时表明LSR是MPLS域的边缘节点LER,可直接通过IP路由传输响应报文。当收到的MPLS报文包含多层标签时,LSR会采用第二种方式回应TTL超时消息。

LSP连通性测试

传统IP网络中的Ping/Tracert无法在MPLS域内只是用,因为他们所使用的ICMP报文是基于IP路由转发的。此时就要利用MPLS Ping/Tracert。MPLS ping主要用于检查LSP的连通性。MPLS Tracert在检查LSP的连通性的同时,也会分析网络在什么地方发生故障。

猜你喜欢

转载自www.cnblogs.com/guang-li/p/12233217.html
今日推荐